|
@@ -43,14 +43,16 @@ void InitTimer3(void)
|
|
|
//T3CTL (0xCB)–定时器 3 控制 bit7:5 -->111: 标记频率/128
|
|
|
T3CTL |= 0xE0; //128分频,F=16M/128=125000HZ T=1/F=8us 计数一次8us 计满溢出
|
|
|
T3CTL |= 0x08 ; //开溢出中断 bit3 溢出中断屏蔽 0:中断禁止 1:中断使能
|
|
|
- // T3CTL &= ~0x03; // 自动重装 00->0xff bit1:0--->00: 自由运行,从0x00到0xFF反复计数
|
|
|
- T3CTL |= 0x02; // //设置为 模模式 从0x00到T3CC0重复计数
|
|
|
+ // T3CTL &= ~0x03; // 自动重装 00->0xff bit1:0--->00: 自由运行,从0x00到0xFF反复计数
|
|
|
+ T3CTL &= ~0x01; // //设置为 模模式 从0x00到T3CC0重复计数 bit1:0 -->10
|
|
|
T3CC0 = 250; //设置最大计数值 这里设置250 2ms触发一次中断
|
|
|
T3CCTL0 = 0x04;// bit2 选择定时器3通道0捕获或者比较模式 比较模式
|
|
|
T3CTL |= 0x10; // bit4 启动定时器。正常运行时设置,暂停时清除
|
|
|
//T3CTL bit2 清除计数器。写1到CLR复位计数器到0x00,并初始化相关通道所有的输出引脚。总是读作0。
|
|
|
EA = 1; //开总中断
|
|
|
//T3CNT (0xEA) – 定时器 3 计数器 定时器计数字节。包括8位计数器当前值。
|
|
|
+ P1DIR=0xff;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -60,8 +62,10 @@ void InitTimer3(void)
|
|
|
#pragma vector=T3_VECTOR
|
|
|
__near_func __interrupt void t3_irq(void)
|
|
|
{
|
|
|
+
|
|
|
//T3STAT &= ~0x01;
|
|
|
IRCON &= ~0x04; //T3IF clear //清除定时器3通道0中断标志
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
@@ -77,7 +81,7 @@ void InitTimer4(void)
|
|
|
T4CTL |= 0xE0; //128分频,F=16M/128=125000HZ T=1/F=8us 计数一次8us 计满溢出
|
|
|
T4CTL |= 0x08 ; //开溢出中断 bit3 溢出中断屏蔽 0:中断禁止 1:中断使能
|
|
|
// T3CTL &= ~0x03; // 自动重装 00->0xff bit1:0--->00: 自由运行,从0x00到0xFF反复计数
|
|
|
- T4CTL |= 0x02; // //设置为 模模式 从0x00到T3CC0重复计数
|
|
|
+ T4CTL &= ~0x01; // //设置为 模模式 从0x00到T4CC0重复计数 bit1:0 -->10
|
|
|
T4CC0 = 250; //设置最大计数值 这里设置250 2ms触发一次中断
|
|
|
T4CCTL0 = 0x04;// bit2 选择定时器3通道0捕获或者比较模式 比较模式
|
|
|
T4CTL |= 0x10; // bit4 启动定时器。正常运行时设置,暂停时清除
|
|
@@ -93,6 +97,13 @@ __near_func __interrupt void t4_irq(void)
|
|
|
{
|
|
|
//T3STAT &= ~0x01;
|
|
|
IRCON &= ~0x08; //T4IF clear //清除定时器4通道0中断标志
|
|
|
+
|
|
|
+ static int cnt=0;
|
|
|
+ if(++cnt>500)
|
|
|
+ {
|
|
|
+ cnt=0;
|
|
|
+ P1^=0xff;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|