使用552G的定時器,程序如下
sbit led_r = P3^1;
int main( )?
{
? ? CfgFsys( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //CH554時鐘選擇配置? ?
? ? mDelaymS(5);
mTimer0Clk12DivFsys();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器時鐘設(shè)置
? ? mTimer_x_ModInit(0,2);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0 定時器模式設(shè)置
? ? mTimer_x_SetData(0,0x3838);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器賦值
? ? mTimer0RunCTL(1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時器啟動
ET0 = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時器中斷開啟
? ? EA = 1;
led_r = 0;
? ? while(1) {
}
}
void mTimer0Interrupt( void ) interrupt INT_NO_TMR0 using 1? ? ? ? ? ? ? ? //timer0中斷服務(wù)程序,使用寄存器組1
{
if (led_r == 0)
led_r = 1;
else?
led_r = 0;?
}
使用邏輯分析儀測得p31輸出:
去掉R7,將led斷開后,輸出的波形就正常了
原理圖如下:
在P31腳加一個300K的電阻接地后測得波形一樣不正常,請問這個是哪里的問題?