標(biāo)題: 單片機(jī)C語(yǔ)言延時(shí)函數(shù) 編譯時(shí) 提示語(yǔ)法錯(cuò)誤,大佬們 請(qǐng)指點(diǎn)一下 [打印本頁(yè)]

作者: han8680713    時(shí)間: 2020-11-11 09:39
標(biāo)題: 單片機(jī)C語(yǔ)言延時(shí)函數(shù) 編譯時(shí) 提示語(yǔ)法錯(cuò)誤,大佬們 請(qǐng)指點(diǎn)一下
void delay(uint jishi);//毫秒延時(shí)函數(shù)
void TimerInit();//定時(shí)器初始化函數(shù)
void Time0();//定時(shí)器0定時(shí)函數(shù)
void Time1();//定時(shí)器1定時(shí)函數(shù)
void KeyScan();//按鍵掃描函數(shù)
void waibuzhongduanlingjishu();//外部中斷0計(jì)數(shù)函數(shù)
      //void shumaguandisplay(uint qian,uint bai,uint shi,uint ge);//數(shù)碼管顯示函數(shù)
      //void shumaguannodisplay(uint qian,uint bai,uint shi,uint ge);//數(shù)碼管無(wú)顯示函數(shù)
  void main()//主函數(shù)
{
   TimerInit();//定時(shí)器初始化函數(shù)
   IN1=0;//L298M芯片控制端IN1置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
   IN2=0;//L298M芯片控制端IN2置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
   while(1)//死循環(huán)

    KeyScan();//按鍵掃描函數(shù)
    {
      if(qitingnum==1)//判斷啟停鍵是否第一次按下
             //shumaguandisplay(qian,bai,shi,ge);//數(shù)碼管顯示函數(shù)

    //}
   void delay (uint jishi )//延時(shí)函數(shù)
   {
   uint i,j;
   for(i=jishi;i>0;i--)
      for(j=110;j>0;j--);
    }
   void TimerInit()//定時(shí)器初始化函數(shù)
{
   TMOD=0x11;//設(shè)定定時(shí)器為定時(shí)器0和定時(shí)器1,工作模式都為1。
   TH0=(65536-1000)/256;//TH0裝初值為65536-100=65436,即定時(shí)100微妙,相當(dāng)于0.1毫秒。
   TL0=(65536-1000)%256;//TL0裝初值為65536-100=65436
   TH1=(65536-50000)/256;//TH1裝初值為65536-50000=15536,即定時(shí)50000微妙,相當(dāng)于50毫秒。
   TL1=(65536-50000)%256;//TL1裝初值為65536-50000=15536
   EA=1;//全局中斷允許
   ET0=1;//打開定時(shí)器0中斷允許
   TR0=1;//開定時(shí)器0      
   EX0=1;//開外部中斷0允許
   IT0=1;//設(shè)置外部中斷0下降觸發(fā)中斷
   ET1=1;//打開定時(shí)器1中斷允許
   TR1=1;//開定時(shí)器1
}



為什么 延時(shí)函數(shù)  編譯時(shí)  語(yǔ)法錯(cuò)誤呢



作者: 陳都cd    時(shí)間: 2020-11-11 11:08
delay()上面的括號(hào)被注釋掉了,也不能在主函數(shù)中寫子函數(shù),主函數(shù)沒(méi)有},改變一下位置就好了
作者: boboxuexi    時(shí)間: 2020-11-11 11:14
樓上正解
作者: 器車人    時(shí)間: 2020-11-11 11:42
檢查括號(hào),括號(hào)有問(wèn)題{}
作者: 閆新凈    時(shí)間: 2020-11-11 13:48
KeyScan();//按鍵掃描函數(shù)
    {
      if(qitingnum==1)//判斷啟停鍵是否第一次按下
             //shumaguandisplay(qian,bai,shi,ge);//數(shù)碼管顯示函數(shù)

    //}


看這一段,注釋//要在}后面;不能在前面
作者: 閆新凈    時(shí)間: 2020-11-11 13:49
這程序 寫的有點(diǎn)凌亂呀,寫程序的功夫還不到家 呀
作者: YQR123    時(shí)間: 2020-11-11 14:25
   while(1)//死循環(huán)      KeyScan();//按鍵掃描函數(shù)    這個(gè)死循環(huán)的運(yùn)行范圍也只是這個(gè)keyscan函數(shù),對(duì) {       if(qitingnum==1)//判斷啟停鍵是否第一次按下              //shumaguandisplay(qian,bai,shi,ge);//數(shù)碼管顯示函數(shù)      }這段代碼沒(méi)有包含,編譯過(guò)了也達(dá)不到你要的要求吧
作者: YUANYUXING    時(shí)間: 2020-11-11 15:10
  IN1=0;//L298M芯片控制端IN1置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
   IN2=0;//L298M芯片控制端IN2置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
   while(1)//死循環(huán)

    KeyScan();//按鍵掃描函數(shù)
    {
      if(qitingnum==1)//判斷啟停鍵是否第一次按下
             //shumaguandisplay(qian,bai,shi,ge);//數(shù)碼管顯示函數(shù)

    //}
這段應(yīng)該這樣子改一下
  
   IN1=0;//L298M芯片控制端IN1置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
    IN2=0;//L298M芯片控制端IN2置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
while(1)//死循環(huán)
{
   
    KeyScan();//按鍵掃描函數(shù)
    {
      if(qitingnum==1)//判斷啟停鍵是否第一次按下
          shumaguandisplay(qian,bai,shi,ge);//數(shù)碼管顯示函數(shù)
}
    }
作者: 2550049233    時(shí)間: 2020-11-11 15:29
多熟悉一下 c語(yǔ)言
作者: han8680713    時(shí)間: 2020-11-11 19:35
YUANYUXING 發(fā)表于 2020-11-11 15:10
IN1=0;//L298M芯片控制端IN1置低電平,電機(jī)不運(yùn)轉(zhuǎn)。
   IN2=0;//L298M芯片控制端IN2置低電平,電機(jī)不運(yùn)轉(zhuǎn) ...

感謝指導(dǎo)    我 剛接觸 單片機(jī) 啊  
作者: han8680713    時(shí)間: 2020-11-11 19:36
陳都cd 發(fā)表于 2020-11-11 11:08
delay()上面的括號(hào)被注釋掉了,也不能在主函數(shù)中寫子函數(shù),主函數(shù)沒(méi)有},改變一下位置就好了

感謝 指導(dǎo)    我是  剛剛 接觸  單片機(jī)的  請(qǐng)諒解
作者: changhz    時(shí)間: 2020-11-11 22:13
這里后都被注釋掉了
//}
   void delay (uint jishi )//延時(shí)函數(shù)
   {
   uint i,j;
   for(i=jishi;i>0;i--)
      for(j=110;j>0;j--);
    }
   void TimerInit()//定時(shí)器初始化函數(shù)
{
   TMOD=0x11;//設(shè)定定時(shí)器為定時(shí)器0和定時(shí)器1,工作模式都為1。
   TH0=(65536-1000)/256;//TH0裝初值為65536-100=65436,即定時(shí)100微妙,相當(dāng)于0.1毫秒。
   TL0=(65536-1000)%256;//TL0裝初值為65536-100=65436
   TH1=(65536-50000)/256;//TH1裝初值為65536-50000=15536,即定時(shí)50000微妙,相當(dāng)于50毫秒。
   TL1=(65536-50000)%256;//TL1裝初值為65536-50000=15536
   EA=1;//全局中斷允許
   ET0=1;//打開定時(shí)器0中斷允許
   TR0=1;//開定時(shí)器0      
   EX0=1;//開外部中斷0允許
   IT0=1;//設(shè)置外部中斷0下降觸發(fā)中斷
   ET1=1;//打開定時(shí)器1中斷允許
   TR1=1;//開定時(shí)器1
}
作者: 123456czst    時(shí)間: 2020-11-12 08:46
被注釋掉了
//void shumaguandisplay(uint qian,uint bai,uint shi,uint ge);//數(shù)碼管顯示函數(shù)
      //void shumaguannodisplay(uint qian,uint bai,uint shi,uint ge);//數(shù)碼管無(wú)顯示函數(shù)

作者: 心有浮生    時(shí)間: 2020-11-12 09:25
少了括號(hào)?
作者: qyqx01    時(shí)間: 2020-11-12 10:35
一個(gè)好的結(jié)構(gòu)框架是你需要的
作者: CGS1273972181    時(shí)間: 2020-11-12 10:51
你的delay函數(shù)的括號(hào)被注釋掉了,而且需要在main之外書寫子函數(shù),而不是在main里面現(xiàn)寫




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1