"); //-->
每个mcu都有定时器功能,如果要实现在1秒,或者1毫秒,或1微妙等时间间隔的定时操作,则需要mcu提供的定时器功能。(在掌握了一种MCU的定时器原理,其他MCU的定时器操作就很好理解了),下面以philips的lpc2136(arm7)定时器0的匹配功能为例。
1:首先要搞清楚几个寄存器的作用
如果上面的关系搞清楚了,程序就很好写了!
2: TCR,MCR两个寄存器的控制原理
2.1关于TCR
TCR[0]是使能位,为1时,同时使能“预分频计数器”和“定时器计数器”计数; 为0时,同时禁止“预分频计数器”和“定时器计数器”计数;TCR[1]是控制“预分频计数器”和“定时器计数器”在PCLK的上升沿同步复位;
2.2关于MCR
LPC2114定时器0有四个匹配通道,我们这里只讲匹配通道0,即MR0.
MCR[0] 当该位为1,TC与MR0(匹配寄存器)匹配产生中断;当该位为0,TC与MR0(匹配寄存器)匹配中断禁止;
MCR[1] 当该位为1,TC与MR0(匹配寄存器)匹配将使TC复位;当该位为0,该特性被禁止;
MCR[2] 当该位为1,TC与MR0(匹配寄存器)匹配将使TC和PC停止计数;当该位为0,该特性被禁止。
3 接下来就可以等待中断了
对于一个新手来说也许你还是不知如何着手写程序,所以这就是入门的难处,当你对某个MCU会控制了,或者说入门了,那么再去写程序控制其他的MCU就很容易的,因为原理在那里,可以举一反三。
3.1 中断状态寄存器
其实,不管是那个MCU中的哪个控制器,如I2C,SPI,Ethernet,LCD等等,都有一个中断状态寄存器,有些控制器还有其他状态寄存器!
Lpc2136中的定时器0就有T0IR(中断寄存器)来指示当前是哪个中断发生,用户就可以通过读这个寄存器来判断。
如:我们这里设置了匹配通道0,即MR0。我们可以在主程序中不断的读T0IR[0]位,如果为1则说明中断发生。
注意:在中断处理结束后必须通过对相应为写1才能复位中断,方便第二次中断发生。
4 如何写代码
一般分查询方式(polling)和中断方式(interrupt):
查询方式就是不停的去判断中断状态寄存器相关位是否置位,如果置位说明有中断发生。
中断方式就是通过MCU的中断控制器irq实现。
(未完,下文:《4.1查询方式的相关代码》)
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
日本智能车比赛2007年次
TA7240AP功放电路
瀚海----大连海事大学飞思卡尔智能车
TA7250P功放电路
窥豹国内企业的软件工程-我的求职经历
联通携手众巨头欲霸无线数据市场
LG新能源中国总部公司成立
我国最大的数据处理超级服务器通过验收
上汽集团与宁德时代在车辆开发与换电领域深化合作
TA7241AP功放电路
programming embedded systems in c and c+
PIC16CXX
三星电子晶圆代工部门设备投资预算陡降
荷兰要摆脱美国管制!ASML想怎么卖给中国厂商光刻机就怎么卖
PowerLogic_tech
手机没上网也得交钱?移动梦网收费藏杀机
特定场景Scaling Law成新方向 第一线DYXnet线灵AI提供定制化赋能
智能循迹车-2003全国电子设计大赛一等奖
TA7252P功放电路
新诱人AI投资生忧虑
宁德时代开始在香港建造首座电动汽车换电站
PowerPCB_command
PowerPCBTOGerber
基于TI MSPM0G3507开发板设计的智能温控风扇
火星探索者机器人平台小车平台开发板红外遥控,爬坡
智能化加速标准和协议的更新,并推动验证IP(VIP)在芯片设计中的更广泛应用
网通“万信通”有望放号
艾迈斯欧司朗:2024积厚,2025向新
智能推土车
TA7233P功放电路