蜂鸣器概要文件使

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
10个帖子/ 0个新
最后发表
BLEBOT.
离线
最后看到:两个月两个星期前
加入:2017-11-27 16:01
蜂鸣器概要文件使

嗨,对话框中,

我们使用DA14585和SDK 6.0.10定制板。我们想添加一个蜂鸣器,并通过一个服务来控制它。我们已经添加了服务,但我们想要连续的哔哔声,而不是一个音符。我们看到了timer0_pwm示例,并将其作为参考来实现。我们正在使用延长睡眠模式。请问我该如何设置才能听到连续的哔哔声?

设备:
PM_Dialog
离线
最后看到:16小时32分钟前
工作人员
加入:2018-02-08 11:03
嗨blebot,

嗨blebot,

让我在下面问你一些问题,以便更深入地了解你的需求是什么,你想完成什么。

  1. 您提到希望通过自定义服务控制蜂鸣器。你能解释一下吗?你想写一个“开始”命令,开始产生PWM,当写一个“停止”命令,蜂鸣器应该停止?所以,你想要产生一个连续的哔哔声当你停止广播。我的理解正确吗?除非,请提供更多的细节给我。
  2. 请在SDK的Timer0_PWM示例中检查Timer0_pwm_test_expiration_counter变量。变量具有值timer0_pwm_test_expiration_counter_reload_value(默认情况下)。当您获取SWTIM_IRQN中断时,将触发PWM0_USER_CALLBACK_FUNCTION,如果检查源代码,则每次回调命中时,TIMER0_PWM_TEST_EXPION_COUDETER会在每次回调时都会减少。当Timer0_pwm_test_expiration_counter转到零时,Timer0将被停止。
  3. 此外,您提到使用扩展睡眠模式,请注意,当设备进入睡眠模式时,所有外围设备块(包括计时器块)断电。

谢谢,PM_Dialog

BLEBOT.
离线
最后看到:两个月两个星期前
加入:2017-11-27 16:01
你好,

你好,

谢谢回复。

1.是的,没错。

2.在timer0_pwm示例中,正如您所说的,timer0_pwm_test_expiration_counter每次都递减,当它变为0时,timer_0将停止,但我不希望它停止,除非我给命令停止。我想让蜂鸣器发出连续的哔哔声,直到我停止。有办法做到吗?在这个例子中也有一个音符但我不想演奏音符只是简单的哔哔声。

3.我可以使计时器块不关机时,设备进入睡眠模式?如果是,如何?

谢谢,

Blebot。

PM_Dialog
离线
最后看到:16小时32分钟前
工作人员
加入:2018-02-08 11:03
嗨blebot,

嗨blebot,

请查看SDK的ble_app_peripheral示例,并关注user_catch_rest_hndl()回调函数,它处理SDK内部机制没有处理的消息。假设您有一个可写的特征,以便发送START/STOP命令。在ble_app_peripheral示例中,当写入“控制点”特征时,您将得到SVC1_IDX_CONTROL_POINT_VAL,并且user_svc1_ctrl_wr_ind_handler()将被启动,这是控制点写入指示处理程序。“控制点”特性的长度为1字节。你应该为你的情况实现相同的:START: 0x01 - STOP: 0x00例如。写入特征的值被存储到¶m->值[0]中,因此您应该将其复制到" val "中。

  • 如果“val”等于START,那么应该启用-set- START定时器0,如timer0_pwm示例中所示
  • 如果“val”等于STOP,那么您应该停止timer0 (timer0_stop())。

关于Timer0_PWM示例,正如我之前提到的那样,每次生成中断时,触发PWM0_USER_CALLBACH_FUNCTION()。Notes存储在Notes []数组中。在您案例中,您应该发现哪个是蜂鸣声的适当波形,并相应地修改回调。关于你的最后一个问题,这是不可能的。如果您发现任何答案有用,请将其标记为“已接受”。

谢谢,PM_Dialog

BLEBOT.
离线
最后看到:两个月两个星期前
加入:2017-11-27 16:01
嗨,对话框中,

嗨,对话框中,

谢谢你的回复。我们知道如何编写和处理“控制点”特性。

我们有办法在睡眠模式下锻炼功能吗?

谢谢,

Blebot

PM_Dialog
离线
最后看到:16小时32分钟前
工作人员
加入:2018-02-08 11:03
嗨blebot,

嗨blebot,

正如前面提到的,一旦设备进入睡眠状态,所有外围模块就会关闭电源。

谢谢,PM_Dialog

BLEBOT.
离线
最后看到:两个月两个星期前
加入:2017-11-27 16:01
你好,

你好,

谢谢。我可以在设备休眠时发出蜂鸣器的声音,并在设备进入睡眠模式时关闭它吗?

问候,

blebot。

PM_Dialog
离线
最后看到:16小时32分钟前
工作人员
加入:2018-02-08 11:03
嗨blebot,

嗨blebot,

通常,该设备在广告和连接间隔之间进入睡眠。在睡眠前的销的状态,保留但不是PIN的配置或功能。当设备唤醒即将调用PeripH_Init()函数时,以便在每个唤醒中重新配置引脚,引脚返回其默认应用程序状态。因此,如果任何GPIO在睡眠前高,它会在睡眠期间保持高,并且将通过PERIPH_INIT()函数唤醒重新配置。您是否希望在SDK的BLE_APP_SLEEPMODE示例中实现永久睡眠?

谢谢,PM_Dialog

BLEBOT.
离线
最后看到:两个月两个星期前
加入:2017-11-27 16:01
你好,

你好,

是的,我们在ble_app_sleepmode示例中使用了永久睡眠,但没有从OTP复制。我们只是想在设备醒来时发出蜂鸣器的声音。

谢谢,Blebot。

PM_Dialog
离线
最后看到:16小时32分钟前
工作人员
加入:2018-02-08 11:03
嗨blebot,

嗨blebot,

好吧,让我描述你可能的实现。请检查SDK的BLE_APP_SLEEPMODE示例。

  • 该设备进入扩展睡眠模式,在广告和连接间隔之间使用OTP复制。请注意是opt副本的模拟,因为cfg_development_debug在da1458x_config_basic.h中定义。请在主人文件中查看此宏并阅读注释以获取更多信息。
  • 芯片开始发布广告,直到在预定义的APP_ADV_DATA_UPDATE_TO秒后的定时器超时,并触发adv_data_update_timer_cb()回调。
  • 在这个回调中,调用app_easy_gap_advertise_stop(),它向堆栈发送一个GAPM_CANCEL_CMD
  • 当发送消息时,会触发user_app_adv_undirect_complete()。因此,在这个回调中你可以停止PWM -设备进入睡眠。
  • 只有外部设备才能唤醒设备。
  • 一旦按下按钮,app_wakeup_cb()将被触发,广告将重新启动。因此,您可以在app_wakeup_cb()中启动PWM

这是一个可能的实现。如果您发现它有用,请将答案标记为“已接受”

谢谢,PM_Dialog