Discuz! Board

标题: 初学新人,想请教一下关于nrf51822定时器中断的问题 [打印本页]

作者: 独显    时间: 2020-9-26 14:59
标题: 初学新人,想请教一下关于nrf51822定时器中断的问题
最近想用nrf51822完成动态广播,尝试在main函数里面建立一个定时器,然后在中断服务里每隔50ms更新一次广播数据。但是发现程序并没有达到预期的效果,现在还不知道是定时器创建失败还是中断部分有问题,还请大佬们赐教,程序由官方SDK12.3 s130协议栈 ble_peripheral\ble_app_uart\10028改动而成,主函数定时器相关代码大致如下:
  1. app_timer_id_t my_timer;

  2. APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false);
  3. app_timer_create(&my_timer,APP_TIMER_MODE_REPEATED,my_timer_handler);
  4. app_timer_start(my_timer, APP_TIMER_TICKS(2000,APP_TIMER_PRESCALER), NULL);

  5. //中断服务函数部分
  6. void my_timer_handler(void *p_contex)
  7. {
  8.         advdata_Update();
  9. }
复制代码
有的说法是定时器数量宏MAX_TIMER的问题,但我找了这个协议栈里面并没有用到这个




作者: 独显    时间: 2020-9-26 15:42
解决了,问题出在不能用网上其他方法声明定义的那个my_timer,要用宏APP_TIMER_DEF(my_timer);才可以,谢谢大佬的视频




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3