你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 767|回复: 0

[STM32F412] [NUCLEO-F412ZG试用体验] 九、Timer实验

[复制链接]

82

主题

636

回帖

121

蝴蝶豆

版主

最后登录
2020-7-12
发表于 2017-3-30 18:00:00 | 显示全部楼层 |阅读模式
Timer属于MCU中作为内外部时间基准的模块,可以完成定时、计数等周期或与时间相关的事件。F412有14个Timer,我们只用其中的1个完成本次实验。本次实验完成计数功能——将原来的cnt程序计数器,放在Timer程序中,由时钟程序自动完成cnt增加的过程。
打开Ticker.h,可以看到例子如下:
* Ticker timer;//定义时间对象
* DigitalOut led1(LED1);
* DigitalOut led2(LED2);
*
* int flip = 0;
*
* void attime() {//时间中断函数
*     flip = !flip;
* }
*
* int main() {
*     timer.attach(&attime, 5);//时间对象绑定时间类,5秒1次
*     while(1) {
*         if(flip == 0) {
*             led1 = !led1;
*         } else {
*             led2 = !led2;
*         }
*         wait(0.2);
*     }
* }
在定义对象的下边增加一行:
Ticker myTime;
在main主函数之前编写一个时钟中断函数:
void mytime(){cnt++;}
在主函数main中加入一行:
myTime.attach(*mytime,0.1f);//0.1S计数增加1
将主函数main中的while循环体中的cnt++;一行删除或注释掉://cnt++;
在循环体中已经没有时钟函数,也没有cnt的计数语句,因为时钟是系统内部中断完成的。编译下载后的结果如照片91。

91-时钟中断完成的10mS计数.jpg
回复

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版