你好,請教幾個問題:
1)如何將CH554芯片的time0定時器中斷服務(wù)程序設(shè)置成1ms中斷一次?
2)CH554芯片示例程序是將time1做為UART0的波特率發(fā)生器,怎么樣將T2設(shè)置成UART0的波特率發(fā)生器?參考例程改成下面的代碼,跑不起來。
voidmInitSTDIO2( )
{
? ? UINT32 x;
? ? UINT8 x2;?
? ? SM0 = 0;
? ? SM1 = 1;
? ? SM2 = 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口0使用模式1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//使用Timer1作為波特率發(fā)生器
? ? RCLK = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //UART0接收時鐘
? ? TCLK = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //UART0發(fā)送時鐘
? ? 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為實際需設(shè)置波特率
? ? TR2 = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//啟動定時器1
? ? TI = 1;
? ? REN = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口0接收使能
}
3)如何將T0, T1, T2三個定時器都啟用的話,建議使用的中斷周期是多少?
謝謝!