Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "nrf52840.h"
- #include "nrf52840_bitfields.h"
- void init_gpio_p0_output(uint32_t pin_num)
- {
- NRF_GPIO_Type * reg = ((NRF_GPIO_Type*)NRF_P0_BASE);
- reg->PIN_CNF[pin_num] = ((uint32_t)GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos)
- |((uint32_t)GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos)
- |((uint32_t)GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
- |((uint32_t)GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
- |((uint32_t)GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos);
- }
- void toggle_gpio_p0(uint32_t pin_num)
- {
- NRF_GPIO_Type * reg = ((NRF_GPIO_Type*)NRF_P0_BASE);
- uint32_t pins_state = reg->OUT;
- reg->OUTSET = (~pins_state & (1UL << pin_num));
- reg->OUTCLR = (pins_state & (1UL << pin_num));
- }
- int main()
- {
- // gpio config for board PCA10056 LED1,2,3,4 = P0.13, P0.14, P0.15, P0.16.
- init_gpio_p0_output(13); // LED1 on PCA10056
- init_gpio_p0_output(14); // LED2 on PCA10056
- init_gpio_p0_output(15); // LED3 on PCA10056
- init_gpio_p0_output(16); // LED4 on PCA10056
- while(1)
- {
- // toggling the pin
- toggle_gpio_p0(13);
- toggle_gpio_p0(14);
- toggle_gpio_p0(15);
- toggle_gpio_p0(16);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement