MSP430G2553与MSP430F5336系列单片机总结[2]——定时器与捕捉比较器以及中断介绍

        在研究定时器与捕捉比较器之前,我们可以先讨论一下,他们能做什么?

        1.定时,产生固定频率的波形,或者使LED等按照固定时间闪亮

        2.产生Timer0定时中断,在一定的时间间隔执行某些功能,例如超声波传感器的使用,可以设置超声波测量距离的测量频率

        3.可以测量脉冲或PWM波的的高低电平时间或频率

        4.脉冲计数

        5.捕捉比较模式可以产生PWM波

        6.可以产生PPM波

        7.可以测量PPM波的各通道占空比 

        所以定时器是单片机中使用频率很高的资源,不要随便使用定时器的IO口直接做输入输出使用,这样有点浪费。

        先对MSP430G2553进行分析,通过用户手册和Datasheet,我们可以知道G2553只有定时器A,没有定时器B,并且没有定时器A2,定时器A只有捕捉比较器0(TA0.CCI0A  引脚P1.1),捕捉比较器1(TA0.CCI1A  引脚P1.2)等资源,Timer_A为16为定时器,也就是说最高可以计数到65536,当定时到实践或者满足捕获比较条件时可以出发定时器A中断。

        在这里对中断进行一定的介绍,中断使暂停CPU正在运行的程序,转去执行相应的中断服务程序,中断完毕后返回被中断的程序并且继续运行的现象和技术,中断的存在是很必要的,可以很好地处理突发事件,并且不与主程序内容冲突。这些解释或许不便于理解,我现在举一个例子来说明中断的必要性。例如,我现在要用MSP430系列的单片机做飞控控制四轴飞行器,首先他需要不断产生200HZ的四路PWM波,还需要不断的读来自MPU6050传递过来的飞信器加速度角速度等数据,还需要获取超声波返回的距离信息以避障,还需要进行四元素融合计算欧拉角以及进行PID迭代,这么多的操作要同时执行,假如说没有中断,我们产生200HZ的PWM波的方式或许会采用延时,也就是写一些延时程序延时到5ms则取反则能产生200HZ的pwm波,但是这样你的程序需要不断执行延时程序,并且不能被打断,因为一旦被打断,你产生的波形的周期也就变了,这样我们将不能加入MPU6050等传感器。但是使用中断可以很好地解决这一问题。我们的主程序不断执行的就是PID迭代这个操作,然后再5ms的计时周期到了之后,进入定时器中断并且产生pwm波,串口中断到了之后进入串口读MPU6050的数据,echo信号的高电平到了之后进入超声波对应的定时器读高电平,在这些中断结束后继续在主函数进行PID

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值