Advertisement
Guest User

Untitled

a guest
May 5th, 2015
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. #include <stdbool.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdarg.h>
  5.  
  6. #include "bsp.h"
  7. #include "app_uart.h"
  8.  
  9. void uartEventHandler(app_uart_evt_t *event) {}
  10.  
  11. uint32_t uartInit()
  12. {
  13.     app_uart_comm_params_t uartParams =
  14.     {
  15.         RX_PIN_NUMBER,
  16.         TX_PIN_NUMBER,
  17.         RTS_PIN_NUMBER,
  18.         CTS_PIN_NUMBER,
  19.         APP_UART_FLOW_CONTROL_DISABLED,
  20.         false,
  21.         UART_BAUDRATE_BAUDRATE_Baud115200 // 57600 // 115200
  22.     };
  23.    
  24.     uint32_t error;
  25.     APP_UART_FIFO_INIT(&uartParams, 32, 256, uartEventHandler, APP_IRQ_PRIORITY_LOW, error);
  26.     return error;
  27. }
  28.  
  29. void dbgOut(const char *s, ...)
  30. {
  31.     char buf[256] = { 0 };
  32.     va_list v;
  33.     va_start(v, s);
  34.     vsnprintf(buf, 256, s, v);
  35.     va_end(v);
  36.     for(uint8_t i = 0; i <= 255 && buf[i]; ++i) app_uart_put(buf[i]);
  37. }
  38.  
  39. /*
  40.  * Stuff happens here
  41.  */
  42.  
  43. volatile bool timeout = false;
  44.  
  45. void TIMER1_IRQHandler()
  46. {
  47.     if(NRF_TIMER1->EVENTS_COMPARE[0])
  48.     {
  49.         NRF_TIMER1->EVENTS_COMPARE[0] = 0;
  50.         timeout = true;
  51.     }
  52. }
  53.  
  54. int main()
  55. {
  56.     uartInit();
  57.     dbgOut("Hello World!\r\n");
  58.    
  59.     NRF_TIMER1->TASKS_STOP  = 1;
  60.     NRF_TIMER1->MODE        = TIMER_MODE_MODE_Timer;
  61.     NRF_TIMER1->BITMODE     = TIMER_BITMODE_BITMODE_16Bit << TIMER_BITMODE_BITMODE_Pos;
  62.     NRF_TIMER1->PRESCALER   = 9;
  63.     NRF_TIMER1->TASKS_CLEAR = 1;
  64.     NRF_TIMER1->CC[0]       = 31250;
  65.     NRF_TIMER1->INTENSET    = TIMER_INTENSET_COMPARE0_Enabled << TIMER_INTENSET_COMPARE0_Pos;
  66.     NRF_TIMER1->SHORTS      = TIMER_SHORTS_COMPARE0_CLEAR_Enabled << TIMER_SHORTS_COMPARE0_CLEAR_Pos;
  67.     NVIC_EnableIRQ(TIMER1_IRQn);
  68.     NRF_TIMER1->TASKS_START = 1;
  69.    
  70.     while(1)
  71.     {
  72.         if(timeout)
  73.         {
  74.             dbgOut("timeout\r\n");
  75.             timeout = false;
  76.         }
  77.     }
  78.    
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement