ch592f Peripheral例程如何添加自定义的定时任务,需要做一个1s定时ADC20次采样,采集五秒共100个数据,排序,取中间40个平均值
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
ch592f Peripheral例程如何添加自定义的定时任务,需要做一个1s定时ADC20次采样,采集五秒共100个数据,排序,取中间40个平均值
您好,是否要做低功耗,如果不做低功耗或者说唤醒后有一段时间不用休眠,期间可以用定时器中断置标志+set_event立即执行事件的方式来安排每秒执行一次ADC采样。
如果1s间隔期间也需要做低功耗,期间依赖主频的定时器是不工作的,那么只能通过由RTC提供时钟的TMOS系统,用安排TMOS事件的方式执行1s一次的定时循环。见博客:在TMOS系统的main.c中添加事务处理代码 - JayWell - 博客园 (cnblogs.com)
不需要休眠,用第一种方式直接在中断里set_event就可以是吗,有示例吗
不要直接在中断服务函数中直接调用set_event接口。中断服务函数中的操作是脱离协议栈的,可能导致出中断后被协议栈覆写事件标志。
建议在中断服务函数中置标志变量,并在主循环中根据标志变量来调用set_event接口立即采集ADC。