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

查看: 731|回复: 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版