Dear,
I tried the same code on :
https://devzone.nordicsemi.com/f/nordic-q-a/43774/simple-gpio-example---nrf9160-dk/173275#173275
and my code:
#include <zephyr.h>
#include <device.h>
#include <gpio.h>
/* 1000 msec = 1 sec */
#define SLEEP_TIME 5000
void main(void)
{
int cnt = 0;
struct device *dev;
dev = device_get_binding("GPIO_0");
/* Set LED pin as output */
gpio_pin_configure(dev, 2, GPIO_DIR_OUT); //p0.03 == LED2
gpio_pin_configure(dev, 3, GPIO_DIR_OUT); //p0.04 == LED3
gpio_pin_configure(dev, 4, GPIO_DIR_OUT); //p0.03 == LED2
gpio_pin_configure(dev, 5, GPIO_DIR_OUT); //p0.04 == LED3
gpio_pin_configure(dev, 17, GPIO_DIR_OUT); //p0.17
gpio_pin_configure(dev, 18, GPIO_DIR_OUT); //p0.18
gpio_pin_configure(dev, 19, GPIO_DIR_OUT); //p0.19
while (1) {
/* Set pin to HIGH/LOW every 1 second */
gpio_pin_write(dev, 2, cnt % 2); //p0.03 == LED2
gpio_pin_write(dev, 3, cnt % 2); //p0.04 == LED3
gpio_pin_write(dev, 4, cnt % 2); //p0.03 == LED2
gpio_pin_write(dev, 5, cnt % 2); //p0.04 == LED3
gpio_pin_write(dev, 17, cnt % 2); //p0.17 Toggling pin 17
gpio_pin_write(dev, 18, cnt % 2); //18
gpio_pin_write(dev, 19, cnt % 2); //19
cnt++;
k_sleep(SLEEP_TIME);
}
}
The Led1,2,3,4 will on/off in 5s, but P0.17 P0.18 P0.19 didnt change !!
Something else do we need to setup?
I check my dts file:
/*
* Copyright (c) 2017 Linaro Limited
* Copyright (c) 2018 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <nordic/nrf9160_xxaa.dtsi>
/ {
model = "Nordic PCA10090 Dev Kit";
compatible = "nordic,pca10090-dk", "nordic,nrf9160-xxaa";
chosen {
zephyr,console = &uart0;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
};
aliases {
led0 = &led0;
led1 = &led1;
led2 = &led2;
led3 = &led3;
sw0 = &button2;
sw1 = &button3;
sw2 = &button0;
sw3 = &button1;
};
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 2 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 0";
};
led1: led_1 {
gpios = <&gpio0 3 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 1";
};
led2: led_2 {
gpios = <&gpio0 4 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 2";
};
led3: led_3 {
gpios = <&gpio0 5 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 3";
};
};
buttons {
compatible = "gpio-keys";
button0: button_0 {
gpios = <&gpio0 8 GPIO_PUD_PULL_UP>;
label = "Switch 1";
};
button1: button_1 {
gpios = <&gpio0 9 GPIO_PUD_PULL_UP>;
label = "Switch 2";
};
button2: button_2 {
gpios = <&gpio0 6 GPIO_PUD_PULL_UP>;
label = "Push button 1";
};
button3: button_3 {
gpios = <&gpio0 7 GPIO_PUD_PULL_UP>;
label = "Push button 2";
};
};
sram0_bsd: memory@20010000 {
device_type = "memory";
compatible = "mmio-sram";
};
};
&uart0 {
status = "ok";
current-speed = <9600>;
tx-pin = <10>;
rx-pin = <11>;
rts-pin = <27>;
cts-pin = <26>;
};
&uart1 {
status = "ok";
current-speed = <9600>;
tx-pin = <12>;
rx-pin = <13>;
rts-pin = <14>;
cts-pin = <15>;
};
&gpiote {
status = "ok";
};
&gpio0 {
status = "ok";
};
&timer0 {
status = "ok";
};
&flash0 {
/*
* For more information, see:
* http://docs.zephyrproject.org/devices/dts/flash_partitions.html
*/
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x10000>;
};
slot0_partition: partition@10000 {
label = "image-0";
};
#if defined(CONFIG_ARM_TRUSTZONE_M)
slot0_ns_partition: partition@40000 {
label = "image-0-nonsecure";
};
#endif
slot1_partition: partition@80000 {
label = "image-1";
};
#if defined(CONFIG_ARM_TRUSTZONE_M)
slot1_ns_partition: partition@b0000 {
label = "image-1-nonsecure";
};
#endif
scratch_partition: partition@f0000 {
label = "image-scratch";
reg = <0x000f0000 0xa000>;
};
storage_partition: partition@fa000 {
label = "storage";
reg = <0x000fa000 0x00006000>;
};
};
};
#if defined(CONFIG_ARM_TRUSTZONE_M)
/ {
sram0_ns: memory@20020000 {
device_type = "memory";
compatible = "mmio-sram";
};
};
#endif
/* Include partition configuration file */
#include "nrf9160_pca10090_partition_conf.dts"
the define for gpio;
&gpiote {
status = "ok";
};
&gpio0 {
status = "ok";
};
is it correct?
Plz tell me where is wrong on my code
Thanks
Regards,
hng