久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2127|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

Error [1250]could not find space (2 bytes) for variable _SEC pic單片機(jī)編譯問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:769545 發(fā)表于 2022-6-30 23:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是新手,提問(wèn)的帖不夠全面,現(xiàn)在完整發(fā)出來(lái),請(qǐng)問(wèn)一下高手

出錯(cuò)提示如下:
Error   [1250] E:\thermometer\PIC\thermometer.c; 72. could not find space (2 bytes) for variable _SEC

unsigned int SEC;這樣定義編譯會(huì)通過(guò),這樣的話比較的數(shù)是不是少于255;理論上是不會(huì)的。是不是我哪兒設(shè)置不對(duì)?

單片機(jī)源程序如下:
#include <pic.h>
//#include "thermometer.h"
unsigned char volatile ADCY_COUNT @ 0X25;
unsigned char volatile DIP0 @ 0X26;
unsigned char volatile DIP1 @ 0X27;
unsigned char volatile WEI @ 0X30;
unsigned char sbstatus @ 0x23;
bit volatile ADCY@((unsigned)&sbstatus*8+0;

unsigned char LED @ 0x21;
bit volatile LEDdp@((unsigned)&LED*8+0;
bit volatile LEDg@((unsigned)&LED*8+1;
bit volatile LEDf@((unsigned)&LED*8+2;
bit volatile LEDe@((unsigned)&LED*8+3;
bit volatile LEDd@((unsigned)&LED*8+4;
bit volatile LEDc@((unsigned)&LED*8+5;
bit volatile LEDb@((unsigned)&LED*8+6;
bit volatile LEDa@((unsigned)&LED*8+7;

#define XLEDa  RC0
#define XLEDb  RC1
#define XLEDc  RC5
#define XLEDd  RC4
#define XLEDe  RC3
#define XLEDf  RC2
#define XLEDg  RA5

//unsigned char volatile SEC; //雙字節(jié)
unsigned int SEC;
unsigned char  i;

void DisbytLED(void)
  {
                XLEDa=LEDa;
                XLEDb=LEDb;
             XLEDc=LEDc;
        XLEDd=LEDd;
        XLEDe=LEDe;
        XLEDf=LEDf;
        XLEDg=LEDg;
                //LEDdp=;
  }
void interrupt ISR(void)
{
  if(T0IE&&T0IF==1)
    {   T0IF=0;
     TMR0=TMR0+0X03;
     OPTION_REG=0X01;
     LED=0X00;
      DisbytLED();      
      if(WEI==0X00)
      {
         RA0=1;
         RA1=0;
         LED=DIP0;
         WEI=0X01;
      }
      else
      {
         RA1=1;
         RA0=0;
         LED=DIP1;
         WEI=0X00;
      }  

    DisbytLED();
    SEC=SEC+1;
    if(SEC==500)   
        ADCY=1;
    SEC=0;   
    }
  }


void cydelay()   //采樣時(shí)間延時(shí)程序
{
  for (i=255;i>0;i--)
    {
     asm("nop");
     asm("nop");
     asm("nop");
     asm("nop");
    }

}

void initial()    //初始化程序
{
  INTCON=0X00;
  TRISA=0X0C;
  ANSEL=0X04;
  //TRISB=0X00;
  TRISC=0X00;
//TRISD=0X00;
OPTION_REG=0X01;
  ADCON1=0X04;
  ADCON0=0X00;
  CMCON=0x07;
  INTCON=0XA0;
}
/*主程序*/
main()
{
WEI=0X00;
ADCY=0;
initial();//調(diào)用初始化端口程序


for(;;)
{
   asm("clrwdt");//清除看門(mén)狗
  // DIP0=0X11;
   //DIP1=0XFF;
    SEC=SEC+1;
   if(SEC>=500)
    ADCY=1;
}
}
// LLED=0XFF;
// LLED1=0;
  //LOLED=0XFF;


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:887371 發(fā)表于 2022-7-1 09:36 | 只看該作者
這代碼太多問(wèn)題了。
1.不要大量使用volatile 絕對(duì)定位變量。
2.能用自動(dòng)變量就不要用全局變量。
3.中斷服務(wù)中使用函數(shù)。
4.多處代碼邏輯混亂。
5.picc的特有語(yǔ)法使用錯(cuò)誤。你這代碼功能我猜測(cè)是2位數(shù)碼管顯示,只需要標(biāo)準(zhǔn)C語(yǔ)言就能完成,完全不需要用到picc的特有語(yǔ)法。雖然你沒(méi)定義幾個(gè)變量,因語(yǔ)法出錯(cuò),編譯提示定義的變量超出了極限。

樓主應(yīng)要花幾天學(xué)習(xí)下C語(yǔ)言基礎(chǔ)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:769545 發(fā)表于 2022-7-1 18:45 | 只看該作者
datouyuan 發(fā)表于 2022-7-1 09:36
這代碼太多問(wèn)題了。
1.不要大量使用volatile 絕對(duì)定位變量。
2.能用自動(dòng)變量就不要用全局變量。

中斷里面的程序是1ms刷新一次,顯示需要刷新,2位數(shù)碼管的程序是一樣的,不過(guò)可以調(diào)整;我奇怪的是:判別秒SEC大于500秒,意味著需要用2個(gè)字節(jié),理論上需要定義int,但是編譯會(huì)出錯(cuò),如果定義一個(gè)字節(jié)char就能正常編譯通過(guò)。我的意思是PICC的編譯器是不是不能直接比較大的數(shù)據(jù),如2個(gè)字節(jié)的數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

地板
ID:329625 發(fā)表于 2022-7-1 19:26 | 只看該作者
先找到錯(cuò)誤什么意思,然后去對(duì)應(yīng)的地方修改
回復(fù)

使用道具 舉報(bào)

5#
ID:887371 發(fā)表于 2022-7-2 09:25 | 只看該作者
hym8085hym 發(fā)表于 2022-7-1 18:45
中斷里面的程序是1ms刷新一次,顯示需要刷新,2位數(shù)碼管的程序是一樣的,不過(guò)可以調(diào)整;我奇怪的是:判別 ...

假設(shè)你的mcu共有40byte RAM。由于你代碼這么多問(wèn)題,使得還沒(méi)定義SEC,RAM就用掉了39byte。
所以定義一個(gè)字節(jié)(char)就能正常編譯通過(guò),定義l兩個(gè)字節(jié)(short)就不能編譯通過(guò)。
你按我提到的幾點(diǎn)要求稍微改下,就不會(huì)出現(xiàn)你奇怪的現(xiàn)象。

再?gòu)?qiáng)調(diào)下,編譯器一般不會(huì)有問(wèn)題,該懷疑的是自己的代碼,自己解決相關(guān)問(wèn)題的思路。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩av在线一区二区 | 久久机热 | 高清av在线 | 日本在线网址 | 日日爽| 精精国产xxxx视频在线 | a级毛片免费高清视频 | 99亚洲精品 | av免费在线观看网站 | 成人在线免费网站 | 91精品亚洲 | 中文字幕加勒比 | 午夜影院网站 | 中文字幕一区二区三区不卡 | 久久av一区 | 国产精品1| 日韩一区二区在线视频 | 一级毛片视频在线 | 四虎影院在线观看av | 在线91| 国产精品网址 | 日韩欧美一区二区三区免费观看 | 久久久999成人 | 国产男女精品 | 超碰在线免费av | 神马影院一区二区三区 | 国产9久| 国产黄色一级片 | 国产成人福利 | 日本黄色影片在线观看 | 超碰在线免费av | 欧美日韩国产一区二区 | 无码一区二区三区视频 | av网站免费观看 | h视频在线播放 | 亚洲一区二区三区在线 | 国产乱码精品1区2区3区 | 97人澡人人添人人爽欧美 | 日韩综合网 | 久久免费观看视频 | 国产精品一区二区三区久久久 |