完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 ESP32 进行开发。我有一个应用程序,它在这段时间内每秒计算计数器值。我正在寻找可以每秒计算值的计时器。我正在寻找 1 毫秒周期的定时器中断,这意味着中断应该在 1 毫秒周期触发。我对此做了一些研究,并找到了 tiMER 组 0 的一些文章。
以下问题是关于定时器 0 如何在每 1 ms 的滴答周期使用 ESP32 的定时器。? 如何使用 APB 计算定时器 0 的滴答值(我认为默认时钟是 APB)? |
|
相关推荐
3个回答
|
|
您检查过 esp-idfexamplesperipheralstimer_group 示例了吗?
|
|
|
|
是的,我检查了这个例子。中断工作正常,但我无法计算 1 毫秒的滴答值周期。
|
|
|
|
代码:
static bool IRAM_ATTR timer_group_isr_callback(void *args) { BaseType_t high_task_awoken = pdFALSE; MSD_DeviceTimer.deviceRunTimer.val++; return high_task_awoken == pdTRUE; // return whether we need to yield at the end of ISR } static void timer_core(int group, int timer, bool auto_reload, int tick) { /* Select and initialize basic parameters of the timer */ timer_config_t config = { .divider = TIMER_DIVIDER, .counter_dir = TIMER_COUNT_UP, .counter_en = TIMER_PAUSE, .alarm_en = TIMER_ALARM_EN, .auto_reload = auto_reload, }; // default clock source is APB timer_init(group, timer, &config); /* Timer's counter will initially start from value below. Also, if auto_reload is set, this value will be automatically reload on alarm */ timer_set_counter_value(group, timer, 0); /* Configure the alarm value and the interrupt on alarm. */ timer_set_alarm_value(group, timer, tick * TIMER_SCALE); timer_enable_intr(group, timer); example_timer_info_t*timer_info = calloc(1, sizeof(example_timer_info_t)); timer_info->timer_group = group; timer_info->timer_idx = timer; timer_info->auto_reload = auto_reload; timer_info->alarm_interval = tick; timer_isr_callback_add(group, timer, timer_group_isr_callback, timer_info, 0); timer_start(group, timer); } void timer_initialization(void) { timer_core(TIMER_GROUP_0, TIMER_0, true, 1); } |
|
|
|
只有小组成员才能发言,加入小组>>
1140 浏览 1 评论
576浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
462浏览 4评论
437浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:05 , Processed in 0.996687 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号