ch552使用定時(shí)器1控制定時(shí)器0啟動(dòng),代碼編譯不通過(guò),使用方法不是和51單片機(jī)一樣的?求解

/*******************************************************************************

* Function Name? : void Timer0_Init()

* Description? ? : 定時(shí)器初始化

*******************************************************************************/

void Time0_Init()

{

? ?count = 0;

? ?min? ?= 0;

? ?sec? ?= 59;

? ?mTimer0Clk12DivFsys();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時(shí)器時(shí)鐘設(shè)置

? ?mTimer1Clk12DivFsys();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T1定時(shí)器時(shí)鐘設(shè)置

? ?mTimer_x_ModInit(0,1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時(shí)器模式設(shè)置16位定時(shí)器

? ?mTimer_x_ModInit(1,2);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T1定時(shí)器模式設(shè)置8位自動(dòng)重裝定時(shí)器

? ?mTimer_x_SetData(0,0xC350);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時(shí)器賦值5MS

? ?mTimer_x_SetData(1,0x4C00);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T1定時(shí)器賦值5MS

? ?mTimer0RunCTL(0);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時(shí)器啟動(dòng)

? ?mTimer1RunCTL(1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T1定時(shí)器啟動(dòng)

? ?ET0? ?= 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T0定時(shí)器中斷開(kāi)啟

? ?ET1? ?= 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//T1定時(shí)器中斷開(kāi)啟

? ?EA? ? = 1;

}

/*******************************************************************************

* Function Name? : mTimer0Interrupt()

* Description? ? : CH554定時(shí)計(jì)數(shù)器0定時(shí)計(jì)數(shù)器中斷處理函數(shù)

*******************************************************************************/

voidmTimer0Interrupt( void ) interrupt INT_NO_TMR0 using 1? ? ? ? ? ?//timer0中斷服務(wù)程序,使用寄存器組1

{

mTimer_x_SetData(0,0xC350);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //非自動(dòng)重載方式需重新給TH0和TL0賦值

count++;

if(count==10)

{

count=0;

if(sec==0)

{

if(min!=0)

{

sec=59;

min--;

}

else

{

mTimer0RunCTL(0);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //T0定時(shí)器停止

}

}

else sec--;

}

}

voidmTimer1Interrupt( void ) interrupt INT_NO_TMR1 using 2?

{

cnt++;

if(cnt>=30)? ? ?//計(jì)時(shí)3s

{

cnt=0;

if(key1==1&&key2==1&&(min>0||sec>0))

{

mTimer0RunCTL(1);? //開(kāi)啟定時(shí)器0;

}

}

}

void main( )?

{

Time0_Init();

Init_1621();? ? ? ?//初始化HT1621

HT1621_all_off();? //清空LCD顯示

while(1)

{

Write_1621(0,0xF0,4);

if(key1==0)

{

delay_ms(100);

if(key1==0)

{

if(min!=999)

{

min++;

}

}

while(!key2);

delay_ms(1000);

while(!key2);

}

if(key2==0)

{

delay_ms(100);

if(key2==0)

{

if(min!=0)

{

min--;

}

}

while(!key1);

delay_ms(1000);

while(!key1);

}

min0=min/100%10;

min1=min/10%10;

min2=min/1%10;

sec1=sec/10%10;

sec2=sec/1%10;

Display_Init(min0,min1,min2,sec1,sec2);

}

}


可以根據(jù)開(kāi)發(fā)工具的輸出信息中的錯(cuò)誤信息來(lái)定位到代碼的具體錯(cuò)誤位置。

如果是一些常見(jiàn)的語(yǔ)法錯(cuò)誤可以在網(wǎng)上找到答案,也可以將錯(cuò)誤信息貼出來(lái)看一下。


不知道ch552使用兩個(gè)定時(shí)器有什么要求的嗎?使用定時(shí)器1控制定時(shí)器0,調(diào)用函數(shù)有什么要求的嗎,還是和51單片機(jī)兼容的?



CH552的定時(shí)器和常見(jiàn)的51單片機(jī)使用一樣。函數(shù)調(diào)用沒(méi)有任何特殊要求。

如果是編譯通過(guò)輸出HEX的問(wèn)題,這個(gè)和用什么單片機(jī)沒(méi)有關(guān)系,查語(yǔ)法,查工程


需要把T1中斷注解才可以,如果注釋了t1定時(shí)器沒(méi)法中斷,求解一下

1641369182(1).png



我們可以關(guān)注一下錯(cuò)誤信息~


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

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