CH55X定時器

你好,請教幾個問題:

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三個定時器都啟用的話,建議使用的中斷周期是多少?

謝謝!

1:為了設(shè)置1ms中斷,您可以將定時器初值設(shè)置成65536-(FOSC/1000),這樣每過1ms就會進(jìn)入中斷。


2:將T2設(shè)置成波特率發(fā)生器可以進(jìn)行如下配置:

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 ++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//四舍五入

? ? T2MOD = T2MOD | bTMR_CLK | bT2_CLK;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //Timer2時鐘選擇

? ? RCAP2=0-x;

? ? TR2 = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//啟動定時器1

? ? TI = 1;

? ? REN = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口0接收使能

}



只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频