你好,请教几个问题:
1)如何将CH554芯片的time0定时器中断服务程序设置成1ms中断一次?
2)CH554芯片示例程序是将time1做为UART0的波特率发生器,怎么样将T2设置成UART0的波特率发生器?参考例程改成下面的代码,跑不起来。
voidmInitSTDIO2( )
{
UINT32 x;
UINT8 x2;
SM0 = 0;
SM1 = 1;
SM2 = 0; //串口0使用模式1
//使用Timer1作为波特率发生器
RCLK = 1; //UART0接收时钟
TCLK = 1; //UART0发送时钟
PCON |= SMOD;
x = 10 * FREQ_SYS / UART0_BUAD / 16; //如果更改主频,注意x的值不要溢出
x2 = x % 10;
x /= 10;
if ( x2 >= 5 ) x ++; //四舍五入
C_T2 = 0;
CP_RL2 = 0;
T2MOD = T2MOD | bTMR_CLK | bT2_CLK; //Timer2时钟选择
TH2 = 0-x; //12MHz晶振,buad/12为实际需设置波特率
TR2 = 1; //启动定时器1
TI = 1;
REN = 1; //串口0接收使能
}
3)如何将T0, T1, T2三个定时器都启用的话,建议使用的中断周期是多少?
谢谢!