T1的使用主要是用定时器1来改变小灯的状态,T1没溢出一次,两个小灯闪烁一次,并且在停止闪烁后成闪烁前的相反状态。
这个实验共用到P1,P1DIR,P1SEL和T1CTL四个寄存器。其中前三个的作用前面的文章里应经介绍过了,这里就不再重复说明了。这里主要是介绍一下T1CTL这个寄存器,这个寄存器的名称为T1控制状态寄存器,主要的作用是进行一下T1的状态参数的设置,具体的见《基础实验》的第5页。最后还是要提醒大家注意工程的设置问题,感觉整个《基础实验》都不使用2430做的,所以没做一个实验就要改一下他的工程设置。
主要的程序如下:
//初始化程序
void Initial(void)
{
//初始化P1
P1DIR = 0x03; //P10 P11为输出
RLED = 1;
YLED = 1; //灭LED
//用T1来做实验
T1CTL = 0x3d; //通道0,中断有效,128分频;自动重装模式(0x0000->0xffff);
}
//主函数
void main()
{
Initial(); //调用初始化函数
RLED = 0; //点亮红色LED
while(1) //查询溢出
{
if(IRCON > 0)
{
IRCON = 0; //清溢出标志
TempFlag = !TempFlag;
}
if(TempFlag)
{
YLED = RLED;
RLED = !RLED;
Delay(6000);
}
}
}
这里要说明的就是T1CTL的最后四位,3:2位是定时器1计数时钟分步选择
00 不分频
01 8分频
10 32分频
11 128分频
1:0位是定时器模式选择
00 暂停
01 自动重装0x0000 - 0xFFFF
10 比较计数0x0000 - T1CC0
11 PWM方式0x0000 - T1CC0 - 0x0000
文章评论(0条评论)
登录后参与讨论