首页->【玩CortexM0】

9 0

实验八 时钟中断产生脉冲和产生计数

本次实验的重点是由单片机内时钟定时器产生中断,在中断函数中完成设计需要。

打开Ticker.h文档,看实例需要定义一个时钟对象类,一个时钟函数,一个绑定此函数和对象的方法。

在定义对象类区域增加:

DigitalOut plus27(P0_27);//P0_27 Pull Output

在定义变量行之前增加:

Ticker tick;

在main主函数前边,增加一行写tick中断执行函数:

void tipInt(void){plus27 =!plus27;}

定义的P0_27在这一次高,一次低,不就是方波脉冲吗。

再在main循环语句前边增加:

tick.attach(&tipInt,0.005f);

此语句将tick对象绑定到中断函数tipInt上,定时为0.005秒,算下来plus27的频率就是100Hz了,因为是中断,所以主循环程序中没有任何语句,我们在P0_27口接1个LED观察[由于速度太快,LED一直亮],再用示波器看就可以了,下载运行,结果见图81,图82。

稍稍扩展一下思路,如果想让程序计数器随此时钟增加应该如何改程序?实在不明白,网上提出讨论。


楼主可见