欢迎光临散文网 会员登陆 & 注册

利用Timer中断控制LED

2021-10-11 16:08 作者:中科昊芯  | 我要投稿

导语

在电机控制或者开关电源软件设计中,中断几乎是必用的功能。很多情况下,如何优化中断算法开销成了算法工程师的核心工作。DSP芯片初学者很有必要掌握中断的原理机制、配置方式。本期我们做一个简单中断程序:timer中断控制LED。

什么是中断?

在实时控制(real-time control)中,代码一般顺序执行或者跳转执行。当需要处理某些实时性要求较高的程序时,软件或硬件向CPU发出中断请求,如果请求被接受,CPU将暂停当前指令、保存状态并执行中断服务程序(interrupt service routine,ISR)。执行完ISR后,CPU再恢复中断前的状态,并继续运行。

与跳转指令不同的是,中断是无法预测的,一旦设置使能后,只要满足触发条件,就能产生中断。

在电机或电源的数字化控制中,中断机制是最佳的算法实现手段。毫不夸张地说,几乎的所有的核心算法都是中断函数实现的。昊芯28027支持丰富的中断机制:timer,ADC,PWM,SCI,SPI等外设都支持中断配置。

Timer控制LED的原理

昊芯28027内置3个timer(0/1/2)。利用Timer0每间隔1秒产生一次timer0中断,在中断服务程序中,每次都将LED对应的GPIO口输出电平反转,就能产生LED亮灭的效果。

本程序基于昊芯28027核心板,相关资料可以在中科昊芯官网下载。



程序代码


利用Timer中断控制LED的评论 (共 条)

分享到微博请遵守国家法律