Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include "uart.h"
- enum
- {
- LED_OFF = 0,
- LED_INIT
- };
- void log(const char *s, ...)
- {
- char buf[256] = { 0 };
- va_list v;
- va_start(v, s);
- uint8_t length = vsnprintf(buf, 256, s, v);
- va_end(v);
- uartSend(CMD_DEBUG, (uint8_t*)buf, length + 1);
- }
- void updateLedState(uint8_t state) { uartSend(CMD_LEDSTATE, &state, 1); }
- volatile bool foobar = false;
- void TIMER1_IRQHandler()
- {
- if(NRF_TIMER1->EVENTS_COMPARE[0])
- {
- foobar = true;
- NRF_TIMER1->EVENTS_COMPARE[0] = 0;
- }
- }
- int main()
- {
- uartInit();
- NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
- NRF_CLOCK->TASKS_HFCLKSTART = 1;
- while(!NRF_CLOCK->EVENTS_HFCLKSTARTED);
- log("init\r\n");
- NVIC_EnableIRQ(TIMER1_IRQn);
- NRF_TIMER1->TASKS_STOP = 1;
- NRF_TIMER1->MODE = TIMER_MODE_MODE_Timer;
- NRF_TIMER1->BITMODE = TIMER_BITMODE_BITMODE_16Bit << TIMER_BITMODE_BITMODE_Pos;
- NRF_TIMER1->PRESCALER = 4;
- NRF_TIMER1->TASKS_CLEAR = 1;
- NRF_TIMER1->CC[0] = 2000 * 1000;
- NRF_TIMER1->INTENSET = TIMER_INTENSET_COMPARE0_Enabled << TIMER_INTENSET_COMPARE0_Pos;
- NRF_TIMER1->SHORTS = TIMER_SHORTS_COMPARE0_CLEAR_Enabled << TIMER_SHORTS_COMPARE0_CLEAR_Pos;
- NRF_TIMER1->TASKS_START = 1;
- while(1)
- {
- if(foobar)
- log("foobar!\r\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement