合泰触摸按键单片机BS83A04A-3定时器中断
1、定时器的选择

PX30上的资源虽然不多但是定时器还是有几个的。触控按键的定时器是厂家已经配好的,没事不要去修改。这里我们选择上面的TIMER作为定时器。
2、定时器介绍

多的不说了,圈的地方看一下。TMR寄存器最大只能计数到255(FFH)。例如如果想计数200次你可以这样写:
_tmr = 56;//计数次数 = 255-_tmr
3、TMRC寄存器

时钟源有两个:一个是系统时钟8M(fsys)的,另一个是内部的低速时钟32khz(fsub)的。**无论你要求什么样的时基,这里都必须选8M的系统时钟。**问就是32khz那个不准(我选了32khz的时钟之后,代码就不受控制了)。_ton是定时器的控制位,请在合适的位置开启它以便开始计数。**最后分频就看个人需求了。
4、配置例程
_tmr=56; //定时器初值为56;
_tmrc=0x13; //定时器为系统时钟,1:8分频,每隔1us就计数一次。计数200次即200us。5次即可实现1ms延时。
_tf=0; //清除中断标志位
_emi = 1;//总中断
_te = 1;//中断使能位
5、中断以及中断向量

TF在中断中被置位后会自己消除标志位的,用的时候可以不判断TF。

写中断函数的时候名字乱写都行但是中断向量绝对不可以乱写,比如我们这次触发的是定时器的中断所以向量我们填0xC。
6、中断函数例程:呼吸灯
1s取反一次pa4的电平,count在之前已经定义了。定时器见配置例程。
DEFINE_ISR (Time_Counter,0xc)
{
if(count == 5000){
_pa4 = ~_pa4;
count = 0;
}
}
7、输出输入端口相关寄存器
PAPUn:上拉电阻控制,0除能/1使能。
PACn:输入输出模式控制,0/输出/1输入。
PAn:端口A引脚的电平设置。
版权声明:本文为mafumafu65原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。