#申请原创#
我在第一个实验中是使用延时函数来点亮LED灯,现在则使用定时器来对一个全局变量进行计数,然后在主循环中对这个变量检测,到了需要的值之后清零变量并执行LED电平翻转。使用这种方式的目的是尽量减少中断函数中的操作,让中断过程与实际处理的代码分离,不受实际处理的代码影响。
开始我使用定时器TCB1,但反复调试没有效果,后来改用TCA0才成功完成。下面是定时器设置界面,我设置定时时间为10ms:
在main.c中定义一个全局变量ms,并在主循环中对这个变量进行检测,到了500ms时对变量清零,然后翻转LED的电平,并通过串口发送信息:
在tca0.c文件的中断处理函数中这全局变量进行自加:
编译下载后,LED灯按照1秒的周期闪亮起来了,在串口调试助手上可以接收到相应的信息:
|