嗨,对话框中,
我有一个后续查询从下列线程
//我的ADC配置adc_config_t echo_pin_cfg = {.input_mode = ADC_INPUT_MODE_SINGLE_ENDED, .input = ADC_INPUT_SE_P0_6, .smpl_time_mult = 15, .continuous = true, .interval_mult = 0, .input_attenuator = ADC_INPUT_ATTN_4X, .chopping = false, .过采样= 7};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,counter);uart_send(UART2, (uint8_t *) tempbuff, strlen(tempbuff), UART_OP_BLOCKING);柜台}+ +;}
供参考:定时器0 ISR重新加载值是12.5微秒
项目使用:ble_app_peripheral
当我试着调试我的应用程序时,我得到从我的ADC频道垃圾值,当祝福开始广告.否则我将得到所需的ADC计数。这对每一个3.秒作为BLE间隔设置为这个值user_peripheral.h当我关掉阿包通过设置
// Default Handler Operations静态const struct default_app_operations user_default_app_operations = {.default_operation_adv = NULL, //以前定义为user_app_adv_start};
在user_callback_config.h我从我的ADC通道得到正确的输出。
附注:检查附件和做必要的。
我需要澄清为什么BLE ADV定时器中断ADC通道,如何克服它?
Br,
巴拉。
设备:
嗨,巴拉
谢谢你的帖子。
请您指出您使用的是哪个BLE设备?是DA14580(根据您最初的帖子)还是DA14531 TINY模块(根据您之前的帖子)?
你是否在使用任何一种可用的睡眠模式?在user_config.h头文件中app_default_sleep_mode变量的值是多少?
请记住,设备可以休眠间隔(广告或连接)。当芯片处于休眠状态时,包括ADC、UART和TIMERS在内的所有外围域都将断电。
您可以使用app_easy_timer(),因为它正在使用BLE Timer,并且在睡眠模式下可用。
在user_app_adv_start()中,还可以禁用app_adv_data_update_timer_used计时器,该计时器正在调度下一次发布数据更新。
谢谢,PM_Dialog
嗨,对话框中,
抱歉回复晚了/
我使用DA14531模块,用于开发使用开发套件- USB.
我的睡眠配置
从您的回复中我有以下疑问,
1.什么是BLE_ADV_INTERVAL?和下面的配置(user_peripheral.h)
我推断出它的3秒为每一个ADV和之后30 sec更新ADV参数。如果我错了请纠正我。
因此,如果这是这种情况下,每3秒这个ble_adv中断我的定时器ISR,我卡住了。
我的要求是将计时器0配置为12.5微秒并运行到40毫秒,(计数器值=> 3200 * 12.5),在40毫秒后重置,等待12.5微秒,计时器溢出并循环重复。现在这个BLE_ADV中断了我的40毫秒循环,我在我的ADC通道中得到垃圾值。
注意:BLE是我们在我们的产品中做的主要更新,我们不能把它放到睡眠模式按照我们的产品规格。
我可以分享我的完整代码,因为IP我不能在这里分享,所以如果提供任何邮件ID将更容易复制我的问题。
谢谢提前
Br,
巴拉吉
嗨,巴拉
app_adv_data_update_timer_used计时器每APP_ADV_DATA_UPDATE_TO秒运行一次。因此,在过期时,adv_data_update_timer_cb()将被触发,以便实时更新广告数据(特别是制造商数据)
>>>我对每个ADV推断3秒,30秒后更新ADV参数。如果我错了请纠正我。
你能解释一下这个说法吗?老实说,我没有完全理解你的意思。
让我们逐一讨论一下——SDK包含了一个关于TIMER0的外设示例。因此,如果您在非ble项目上运行它,TIMER0是否正确配置,回调是否如预期的那样被触发?
如果是,请在BLE示例的调试模式下运行,并在timer_0_isr()上添加断点。是否命中了断点,从而执行adc_get_sample() ?
谢谢,PM_Dialog
嗨,对话框中,
我有以下配置user_callback_config.h
这个函数实际上是做什么的。你能解释一下吗?
从SDK 6.0.12.1020的BLE项目中使用的BLE广告间隔是什么?
谢谢提前
Br,
巴拉。
嗨,巴拉
首先,我强烈建议您使用SDK的最新版本,即SDK6.0.14。
这是负责广告的回调函数。如果您删除user_app_adv_start()并放置NULL,该设备将不会开始发布——当然您应该将其置于睡眠模式。如果您检查user_app_adv_start()源代码,您将看到app_easy_gap_undirected_advertise_get_active*(正在创建将发送到BLE堆栈的消息,并且app_easy_gap_undirected_advertise_start()开始发布无向连接。
发布间隔被设置到user_config.h头文件中的user_adv_conf结构中。我建议先检查一下BLE广告教程(HTML)教程。
谢谢,PM_Dialog