嗨对话框,
从以下线程上有一个后续查询
//我的ADC配置adc_config_t echo_pin_cfg = {.input_mode = adc_input_mode_single_ending,.input = adc_input_se_p0_6,.smpl_time_mult = 15,.continuoul = true,.interval_mult = 0,.input_attenuator = adcput_attn_4x,.chopping = false,.copping = false。adc_init(echo_pin_cfg);//示例ISR代码void timer_0_ISR(){if((计数器%4)== 0)//大约每50微秒{adc_count = adc_get_sample();Sprintf((char *)tempbuff,“%d,%d \ n”,ADC_COUNT,计数器);UART_SEND(UART2,(UINT8_T *)TEMPBUFF,Strlen(TEMPBUFF),UART_OP_BLOCKING);柜台++;}
FYI:定时器0 ISR重载值是12.5微秒
项目使用:ble_app_peripheral.
当我试图调试我的应用程序时,我得到了来自我的ADC频道的垃圾值, 什么时候BLE开始广告。否则我得到了所需的ADC计数。这对每个人重复3.为此值设置为BLE间隔的秒数user_peripheral.h.当我关闭时adv数据包通过环境
//默认处理程序操作static const struct default_app_operations user_default_app_operations = {.default_operation_adv = null,//以前其定义为user_app_adv_start};
在user_callback_config.h.我从我的ADC频道获得了正确的输出。
P.S.检查附件并进行需要。
我需要澄清为什么ble adv timer中断ADC通道,如何克服它?
布罗尔,
巴拉吉。
关键词:
设备:
嗨巴拉吉,
谢谢你的帖子。
您能否说明您使用的BLE设备?它是DA14580(根据您的初始帖子)或DA14531微小模块(根据您之前的帖子)吗?
您是否使用了任何可用的睡眠模式?user_config.h标题文件中app_default_sleep_mode变量的值是什么?
请记住,设备可以在间隔(广告或连接)之间睡眠。当芯片睡觉时,所有包括ADC,UART和定时器的外围域都会断电。
您可以使用app_easy_timer(),因为它使用BLE定时器,可在睡眠模式下提供。
在User_App_Adv_start()中,您还可以禁用App_add_data_update_timer_ed timer,该计时器调度下一个广告数据更新。
谢谢,PM_DIALOG.
嗨对话框,
抱歉回复晚了/
我正在使用DA14531模块,用于开发使用开发套件 - USB。
我的睡眠配置
我有回复的疑问,
1.什么是ble_adv_interval?从下面的配置(user_peripheral.h)
我推断出来3秒对于每个adv和之后30 SE.c它更新了ADV参数。如我错了请纠正我。
因此,如果这是这种情况,每3秒都会中断我卡住的定时器ISR。
我的要求是将计时器0配置为12.5微秒,并运行它到40 ms,(计数器值=> 3200 * 12.5),在40 ms后重置,等待12.5微秒和定时器溢出和循环重复。现在这个ble_adv中断了我的40 ms循环,我在我的ADC通道中获得垃圾值。
注意:BLE是我们在产品中制作的主要更新,我们不能根据我们的产品规格将其放在睡眠模式。
我可以分享我的完整代码,我无法在这里分享的IP,所以如果提供了任何邮件ID,则可以更轻松地复制我的问题。
提前致谢
布罗尔,
巴拉吉
嗨巴拉吉,
app_add_data_update_timer_ed timer经过每个app_add_data_update_to秒。因此,在其到期时,触发ADV_DATA_UPDATE_TIMER_CB()以便在飞行中更新广告数据(特别是制造商数据)
>>>我推断每一个adv和30秒后的3秒钟更新ADV参数。如我错了请纠正我。
你能澄清这句话 - 诚实我没有得到你的意思。
让我们参加部分 - SDK包括Timer0的外围示例。因此,如果您在非BLE项目上运行它,则TIMER0是否正确配置,并按预期触发回调?
如果是,请在BLE示例中以调试模式运行它,并在Timer_0_ISR()上添加断点。断点是否命中,以便执行adc_get_sample()?
谢谢,PM_DIALOG.
嗨对话框,
我在user_callback_config中有以下配置
那么这个功能实际上是什么。你能解释一下吗?
来自SDK 6.0.12.1020的BLE项目中使用的BLE广告间隔是什么?
提前致谢
布罗尔,
巴拉吉。
嗨巴拉吉,
首先,我强烈建议您使用这是SDK6.0.14的那个持续版本的SDK。
这是负责广告的回调函数。如果删除user_app_adv_start()并放置NULL,那么设备将无法启动广告 - 当然您应该将其放入睡眠模式。如果检查user_app_adv_start()源代码,您将看到app_easy_gap_undircated_advertise_get_active *(正在创建将发送到BLE堆栈的消息,App_easy_gap_undircted_advertise_start()开始为无向连接进行广告。
广告间隔被设置为user_config.h头文件中的user_adv_conf结构。我建议首先检查BLE广告教程(HTML)教程。
谢谢,PM_DIALOG.