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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1473|回復: 7
打印 上一主題 下一主題
收起左側

PIC單片機代碼問題,顯示eeprom的存儲空間不足,試過好幾種方法還是報錯

[復制鏈接]
跳轉到指定樓層
樓主
ID:1107532 發表于 2024-1-18 13:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請大佬看看是pic16f676單片機代碼哪兒的問題
報錯顯示::: warning: (1273) Omniscient Code Generation not available in Free mode
miewendeng.c:479: warning: (752) conversion to shorter data type
D:\XC8\sources\pic\eeread.c:12: error: (1360) no space for auto/param eeprom_write@addr
(908) exit status = 1
nbproject/Makefile-default.mk:131: recipe for target 'dist/default/production/miewendeng.X.production.hex' failed
make[2]: Leaving directory 'D:/MPLAB X IDE v4.05???/miewendeng.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'D:/MPLAB X IDE v4.05???/miewendeng.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make[2]: *** [dist/default/production/miewendeng.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

編譯已失敗 (退出值2, 總時間: 1s)
----------------------------------------
警告:adcshili.c:418: warning: (752) conversion to shorter data type這個警告表示在第418行進行了將數據類型轉換為較短的數據類型的操作。
錯誤:D:\XC8\sources\common\lwdiv.c:31: error: (1358) no space for _eeprom_read temps (1)這個錯誤表示編譯器無法為_eeprom_read temps分配足夠的空間。
eeprom_write(0x03,eeprom_read(0x03)+1);  //清蟲天數計數+1天  418行
請問大佬這個代碼該怎么改啊,剛剛入行的小白琢磨了好幾天還是一頭霧水。

  1. /*
  2. * File:   adcshili.c
  3. * Author: Administrator
  4. *
  5. * Created on 2024年1月5日, 上午9:24
  6. */

  7. //#include <stdio.h>
  8. //#include <stdlib.h>

  9. /*
  10. *
  11. */

  12. /*
  13. int main(int argc, char** argv) {

  14.     return (EXIT_SUCCESS);
  15. }
  16. */

  17. # include <xc.h>

  18. #pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)INTOSC 振蕩器, RA4、RA5為IO口
  19. #pragma config WDTE = OFF      // Watchdog Timer Enable bit (WDT enabled)看門狗開
  20. #pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)上電復位開
  21. #pragma config MCLRE = OFF      // RA3/MCLR pin function select (RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD)RA3/MCLR引腳功能為MCLR
  22. #pragma config BOREN = OFF       // Brown-out Detect Enable bit (BOD enabled)欠壓檢測功能關
  23. #pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)程序存儲器代碼保護被禁用
  24. #pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)數據代碼保護關
  25. //__ CONFIG(0X31A4);
  26. __EEPROM_DATA(5,50,67,6,5,0,0,0);   //0X00第一位表示定時倍數;0X01第二位表示最低電壓-低;0X02第三位表示最高電壓-高;0X03第四位表示清蟲天數記錄;0X04第五位表示清蟲天數預設;0X05第五位表示為0鉛酸電池(最低不能低于2點幾V)、為1鋰電池(最高不能超過12.6V);0X06空;0X07空

  27. #define uchar unsigned char
  28. #define uint unsigned int

  29. /*#define EEPROM_ADDRESS 0x10 // 定義EEPROM地址

  30. // 定義EEPROM中存儲的數據
  31. const unsigned char myEEPROMData[] __at(EEPROM_ADDRESS) = {
  32.     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
  33. };
  34. __EEPROM_DATA(5,50,67,6,5,0,0,0);*/

  35. uint AN2_val;       //存放AN2通道模擬轉換的值
  36. uint AN4_val;       //存放AN4通道模擬轉換的值
  37. uchar i = 0;
  38. uchar j = 0;
  39. uint yanshi;
  40. uchar AN2_num1;
  41. uchar AN2_num2;
  42. uchar AN2_num3;
  43. uchar AN4_num1;
  44. uchar AN4_num2;
  45. uchar AN4_num3;
  46. uchar AN4_num4;
  47. uchar yukon_num1;
  48. uchar yukon_num2;
  49. uint anjian_num1;
  50. uchar anjian_num2;
  51. uchar n;
  52. uint num;
  53. uchar daochon_num;
  54. uchar h;
  55. uchar day;         //0為白天,1為晚上
  56. uchar fuzhai=1;     //負載開啟
  57. uchar chondian;     //0為充電完成,1為充電未完成,繼續充電
  58. uchar taiyangban;   //1為太陽板電壓高于電池,0為太陽板電壓低于電池
  59. uchar ONOFF=1;  //放電到充電一循環,1開啟,0關閉
  60. uchar qcts;
  61. uchar k;
  62. uchar a=6;
  63. uchar t;
  64. uchar z=0;
  65. uchar m;

  66. void init1()
  67. {
  68.     TRISA = 0b00110100;     //設置RA輸入輸出端口   RA2,RA4,RA5(AN2、AN3)為輸入,其他輸出
  69.     TRISC = 0b00010011;     //設置RC輸入輸出端口   RC0、RC1、RC4(AN4、AN5)為輸入,其他輸出
  70.     PORTA = 0b00000000;     //設置A端口輸出為低電平
  71.     PORTC = 0b00000000;     //設置C端口輸出為低電平
  72.     ANSEL = 0X14;           //ANS4=1,ANS2=1;AN4和AN2為模擬輸入   二進制00010100
  73.    /* CM2 = 1;                //CM2:CM0:111 比較器模式位(關閉)
  74.     CM1 = 1;
  75.     CM0 = 1;*/
  76.     //ADCON1 = 0X10;          //ADCS<2:0>:A/D 轉換時鐘源選擇位   0011 =FOSC/8  4MHz頻率   二進制00010000
  77.     ADCON1=0b01010000;  //AD,RC0(AN4)定義為AD口(A/D 轉換時鐘選擇位)
  78. }


  79. void ADAN2()         //對RA2(AN2)進行A/D模擬轉換輸入
  80. {   
  81.     ADCON0 = 0X09;  //二進制0000 1001 (bit7:0 左對齊,bit6:0 參考電壓VDD, bit5:0 未用, bit4-bit2:010 通道02(AN2), bit1:0 A/D轉換結束/未進行, bit0:(ADON)1 A/D轉換模塊正在工作)    A/D 控制寄存器
  82.     for (i=0; i<16; i++)
  83.     {
  84.         asm("NOP");  //稍微延時
  85.         asm("NOP");
  86.         asm("NOP");
  87.         asm("NOP");  

  88.         GO_DONE = 1;    //1 = A/D 轉換正在進行。該位置 1 將啟動 A/D 轉換。 在轉換結束后該位將被硬件自動清零。      ADCON0 _ A/D 控制寄存器
  89.         while (GO_DONE)   //循環檢測GO_DONE是否為0,為0轉換結束
  90.         {
  91.             continue;
  92.         }
  93.         AN2_val + = ADRESH;   //將左對齊后的20次結果賦值
  94.     }

  95.     ADON = 0;   //A/D轉換模塊結束
  96.     AN2_val = AN2_val/16;  //取20次檢測電壓的平均值

  97.     if (AN2_val < eeprom_read(0X01))   //讀寫寄存器__EEPROM_DATA(5,50,67,6,5,0,0,0)中第二位,電源電壓為10.8v時,電路分壓后測出AN2電壓為:0.98v  (5v是參考電壓,一個數值代表多少電壓:5/1024=0.00448,如果輸入電壓為0.98v,0.98/0.00448=218.75)
  98.     {
  99.         AN2_num1++;
  100.         if(AN2_num1 > 16)     //(超過20次電壓低于10.8v)
  101.         {
  102.             AN2_num1 = 0;   //計數清0
  103.             fuzhai = 0;    //負載未開啟工作
  104.         }
  105.     }
  106.     else
  107.     {
  108.         AN2_num1 = 0;   //清0
  109.     }

  110.     if (AN2_val > eeprom_read(0X02))   //讀寫寄存器__EEPROM_DATA(5,50,67,6,5,0,0,0)中第三位,電源電壓為14.4v時,電路分壓后測出AN2電壓為:1.31v   (如果輸入電壓為1.31v,1.31/0.00448=292.41)
  111.     {
  112.         AN2_num2++;
  113.         if(AN2_num2++ > 16)   //(超過20次電壓高于14.4v)
  114.         {
  115.             AN2_num2 = 0;   //計數清0
  116.             chondian = 0;  //充電完成
  117.         }
  118.     }
  119.     else
  120.     {
  121.         AN2_num3++;  //計數自增
  122.         if (AN2_num3 > 16)   //(超過20次電壓低于14.4v)
  123.         {
  124.             AN2_num3 = 0;   //計數清0
  125.             chondian = 1;   //充電未完成,繼續充電
  126.         }
  127.     }
  128. }


  129. void ADAN4()         //對RC0(AN4)進行A/D模擬轉換輸入
  130. {
  131.     ADCON0 = 0X11;  //二進制0000 1001 (bit7:0 左對齊,bit6:0 參考電壓VDD, bit5:0 未用, bit4-bit2:100 通道04(AN4), bit1:0 A/D轉換結束/未進行, bit0:(ADON)1 A/D轉換模塊正在工作)    A/D 控制寄存器
  132.     for (j=0; j<16; j++)
  133.     {
  134.         asm("NOP");  //稍微延時
  135.         asm("NOP");
  136.         asm("NOP");
  137.         asm("NOP");  

  138.         GO_DONE = 1;    //1 = A/D 轉換正在進行。該位置 1 將啟動 A/D 轉換。 在轉換結束后該位將被硬件自動清零。      ADCON0 _ A/D 控制寄存器
  139.         while (GO_DONE)   //循環檢測GO_DONE是否為0,為0轉換結束
  140.         {
  141.             continue;
  142.         }
  143.         AN4_val + = ADRESH;   //將左對齊后的20次結果賦值
  144.     }

  145.     AN4_val = AN4_val/16;  //取20次檢測電壓的平均值
  146.     ADON = 0;   //A/D轉換模塊結束

  147.     if(AN2_val - AN4_val < 13)   //連續檢測20次太陽板比鉛酸電池或鋰電池低于3V   (晚上)
  148.     {
  149.         AN4_num1++;
  150.         if (AN4_num1 > 24)  //(超過20次太陽板電壓比電源電壓低于3v)
  151.         {
  152.             AN4_num1 = 0;   //計數清0
  153.             day = 1;   //晚上        
  154.         }
  155.     }   
  156.     else
  157.     {
  158.         AN4_num1 = 0;
  159.     }

  160.     if (AN2_val - AN4_val > 23)  //連續檢測20次太陽板高于5.5V的鉛酸電池或鋰電池   (白天)
  161.     {
  162.         AN4_num2++;
  163.         if (AN4_num2 > 24)   //(超過20次太陽板電壓比電源電壓高于5.5v)
  164.         {
  165.             AN4_num2 = 0;
  166.             day = 0;  //白天
  167.         }
  168.     }
  169.     else
  170.     {
  171.         AN4_num2 = 0;
  172.     }

  173.     if (AN4_val < 0b00000011)  //連續檢測20次太陽板電壓高于電池電壓,開始充電,連續檢測20次太陽板電壓低于電池電壓,不充電
  174.     {
  175.         AN4_num3++;
  176.         if (AN4_num3 > 16)  //連續檢測20次太陽板電壓高于電池電壓
  177.         {
  178.             AN4_num3 = 0;  //計數清零
  179.             taiyangban = 1;  //1為太陽板電壓高于電池
  180.             fuzhai = 1;  //負載工作開啟
  181.             ONOFF=1;  //放電到充電一循環,開啟
  182.         }
  183.     }
  184.     else
  185.     {
  186.         AN4_num4++;
  187.         if (AN4_num4 > 16)  //連續檢測20次太陽板電壓低于電池電壓
  188.         {
  189.             AN4_num4 = 0;  //計數清零
  190.             taiyangban = 0;  //0為太陽板電壓低于電池
  191.         }
  192.     }
  193. }


  194. void kaijishansuo()   //開機閃爍5次
  195. {
  196.     if (yanshi > 800)  //1s溢出(3906)
  197.     {
  198.         yanshi = 0;
  199.         if (z == 0)
  200.             z = 1;
  201.         else
  202.             z = 0;
  203.         a--;
  204.     }
  205. }


  206. void condianshansuo()    //充電連續閃爍   
  207. {
  208.     if (yanshi > 1500)  //1s溢出
  209.     {
  210.         yanshi = 0;
  211.         if (z == 0)
  212.             z = 1;
  213.         else
  214.             z = 0;
  215.     }
  216. }


  217. void panduan ()    //轉換后的數據判斷,定義是否需要開燈、充電、雨控等待
  218. {
  219.     if (fuzhai == 1)   //負載開啟
  220.     {
  221.         if (day == 1)  //晚上
  222.         {
  223.             if (ONOFF == 1)  //放電到充電一循環,開啟
  224.             {
  225.                 TMR1ON=1;  //中斷TMR1開啟,開始計時
  226.                 if (RC1 == 0)  //雨控控制,0為雨控檢測無雨,短接帽斷路
  227.                 {
  228.                     yukon_num1++;
  229.                     if (yukon_num1 > 16)  //檢測超過20次沒有雨
  230.                     {
  231.                         yukon_num1 = 0;  //計數清0
  232.                         RC2 = 1;  //沒有雨水,繼電器啟動
  233.                     }
  234.                 }
  235.                 else   //雨控控制,0為雨控檢測有雨,短接帽連通,將5v電壓拉到RC1引腳
  236.                 {
  237.                     yukon_num2++;
  238.                     if (yukon_num2 > 16)   //檢測超過20次有雨
  239.                     {
  240.                         yukon_num2 = 0;  //計數清0
  241.                         RC2 = 0;   //下雨,繼電器關閉
  242.                     }
  243.                 }
  244.             }
  245.             else
  246.             {
  247.                RC2 = 0;  //未實現放電到充電的循環,繼電器關閉,負載未啟動
  248.             }
  249.         }
  250.         else
  251.         {
  252.             RC2 = 0;  //白天繼電器關閉,負載未啟動
  253.         }
  254.     }
  255.     else
  256.     {
  257.         RC2 = 0;  //繼電器關閉,負載未啟動
  258.     }

  259.     if (chondian == 1)  //1為充電未完成,繼續充電
  260.     {
  261.         if (taiyangban == 1)  //1為太陽板電壓高于電池
  262.         {
  263.             RC1 = 1;  //RC3高電平,電源模塊充電,太陽板給電池充電
  264.             if (num > 0)
  265.                 num = 0;  //定時清0
  266.             if (h > 0)
  267.                 h = 0;
  268.             condianshansuo();  ////充電藍燈閃爍
  269.         }
  270.         else
  271.         {
  272.             RC3 = 0;  //充電完成,RC3低電平,電源模塊不充電
  273.             if (a < 1)   //藍燈不閃爍
  274.                 z = 0;   //RA0=0
  275.         }
  276.     }
  277.     else
  278.     {
  279.         RC3 = 0;  //充電完成,RC3低電平,電源模塊不充電
  280.         if (a < 1)  //藍燈不閃爍
  281.             z = 0;  //RA0=0
  282.     }
  283. }


  284. void anxia()
  285. {
  286.     anjian_num1++;
  287.     if (anjian_num1 > 4000)  
  288.     {
  289.         anjian_num1 = 0;
  290.         anjian_num2++;  //增加一小時(定時數據)
  291.         a = 2;   //藍燈閃爍一次
  292.         k = 1;  //有未寫入數據
  293.     }
  294. }


  295. void sonkai()
  296. {
  297.     if(k == 1)
  298.     {
  299.         eeprom_write(0x04,anjian_num2);  //把anjian_num2寫到地址0x04
  300.         qcts = anjian_num2;  //清除定時時間
  301.         k = 0;   //沒有未寫入數據
  302.         anjian_num1 = 0;  
  303.         anjian_num2 = 0;  //清除定時數據
  304.     }

  305.     if(t == 1)  //開始讀定時時間
  306.     {
  307.         if (a < 1)  //藍燈不閃爍的時候
  308.         {
  309.             if (anjian_num2 > 0)  //定時時間大于0
  310.             {
  311.                 anjian_num1++;
  312.                 if (anjian_num1 > 4000)  //延時7200
  313.                 {
  314.                     if (anjian_num1%2000 == 0)  //延時時間/2000=0
  315.                     {
  316.                         anjian_num2--;  //減去一次已顯示的
  317.                         a = 2;    //藍燈閃爍一次
  318.                     }
  319.                 }
  320.             }
  321.             else
  322.             {
  323.                 t = 0;    //讀定時時間控制位清除
  324.                 anjian_num1;  //延時清零
  325.             }
  326.         }
  327.     }
  328.     else
  329.     {
  330.         if ( anjian_num1>200 )  //短按10s-20s之間,可以開始讀定時間t=1
  331.         {
  332.             if (anjian_num1<1000)
  333.             {
  334.                 a = 6;    //開始讀藍燈閃爍5次
  335.                 t = 1;    //開始讀定時時間
  336.                 anjian_num2 = eeprom_read(0x04);     //從內存讀取定時數據
  337.             }
  338.         }
  339.         anjian_num1 = 0;   //延時清零
  340.     }
  341. }

  342. void shezhi()  //設置定時時間
  343. {
  344.     if (RC4 == 0)  //按鍵按下
  345.         anxia();
  346.     else  //按鍵松開
  347.         sonkai();
  348. }


  349. void dianchi()  //每次開機判斷所使用的電池,和讀入定時時間
  350. {
  351.     if (RA4 == 0 )  ////RA4口為低時是用蓄電池
  352.     {
  353.         if (eeprom_read(0x05)==1)   //如果RA4口為蓄電池,控制位為1時,就寫入蓄電池的數據
  354.         {
  355.             eeprom_write(0x01,50);  //最低電壓
  356.             eeprom_write(0x02,67);  //最高電壓
  357.             eeprom_write(0x05,0);  //標記為蓄電池   ????
  358.         }
  359.     }
  360.     else        //RA4口為高時是用鋰電池
  361.     {
  362.          if (eeprom_read(0x05)==0)   //如果RA4口為鋰電池,控制位為0時,就寫入鋰電池的數據
  363.         {
  364.             eeprom_write(0x01,43);  //最低電壓(41)
  365.             eeprom_write(0x02,58);  //最高電壓
  366.             eeprom_write(0x05,1);  //標記為鋰電池   ???
  367.         }
  368.     }

  369.     qcts = eeprom_read(0x04);    //(預計清·蟲天數為5天一次)
  370.     if(eeprom_read(0x03) <= qcts)   //(判斷清除天數幾天一次)
  371.         eeprom_write(0x03,6);   //(將清蟲天數記錄設為6天一次)
  372. }


  373. void  init2 ()
  374. {
  375.     T0CS = 0;  //Timer0使用內部時鐘             OPTION_REG _ 選擇寄存器
  376.     PSA=1;   //將預分頻器給看門狗WDT           OPTION_REG _ 選擇寄存器
  377.     TMR0=0x00;  //定時器
  378.     T0IF=1;  //Timer0 啟動控制位使能(0關閉)(標志位)    INTCON _ 中斷控制寄存器
  379.     T0IE=1;  //Timer0中斷開啟(使能位)                   INTCON _ 中斷控制寄存器

  380.     TMR1CS = 0;  //Timer1使用內部時鐘           Timer1 控制寄存器
  381.     T1CKPS0=1;  //1:8倍預分頻比                Timer1 控制寄存器      T1CKPS1:T1CKPS0:11=1:8倍預分頻比
  382.     T1CKPS1=1;  //1:8倍預分頻比                Timer1 控制寄存器
  383.     //TMR1H=(65536-(500000/8))/256; //初始化TMR1的高八位初始值   0.5s中斷溢出一次
  384.     //TMR1L=(65536-(500000/8))%256; //初始化TMR1的低八位初始值
  385.     TMR1H=0x0B;  //高八位置初始值   
  386.     TMR1L=0xE9;  //低八位置初始值  
  387.     TMR1ON=0;  //Timer1 啟動控制位使能(0關閉)       Timer1 控制寄存器
  388.     TMR1IF=0;  //中斷標志位清零                      外設中斷標志寄存器 1
  389.     TMR1IE=1;  //Timer1中斷開啟                      外設中斷使能寄存器 1
  390.     PEIE=1;  //外部中斷開啟                          INTCON ? 中斷控制寄存器
  391.     GIE=1;  //全局中斷開啟                           INTCON ? 中斷控制寄存器
  392. }


  393. void dc()  //倒蟲
  394. {
  395.     if (RC5 == 0)
  396.         RC5 = 1;

  397.     if (RC5 == 1  && RA5 == 0)
  398.         m = 1;           //(步驟控制)

  399.     if (RC5 == 1 && RA5 == 1 && m == 1)
  400.     {
  401.         daochon_num++;  //倒蟲天數增加
  402.         m = 0;
  403.     }

  404.     if (daochon_num >= 2)  //超過兩天清一次蟲
  405.     {
  406.         daochon_num = 0;   //清0
  407.         RC5 = 0;
  408.         eeprom_write(0x03,0);
  409.     }
  410. }

  411. void interrupt time0()
  412. {

  413.    if (TMR1IF == 1)
  414.     {
  415.         TMR1IF=0;  //中斷標志溢出清0
  416.         //TMR1H=(65536-(500000/8))/256; //初始化TMR1的高八位初始值
  417.         //TMR1L=(65536-(500000/8))%256; //初始化TMR1的低八位初始值
  418.         TMR1H=0x0B;  //高八位置初始值   
  419.         TMR1L=0xE9;  //低八位置初始值  
  420.         num++;

  421.         if (num == 139)  //定時計時1一個小時溢出
  422.         {
  423.             h++;  //每小時自增
  424.             num = 0;  //溢出清0

  425.             if (h == 1)
  426.             {
  427.                 eeprom_write(0x03,eeprom_read(0x03)+1);  //清蟲天數計數+1天
  428.             }

  429.             if (h == 5)  //等于設定的小時
  430.             {
  431.                 h = 0;  //小時清零
  432.                 RC2 = 0;  //繼電器/負載關閉
  433.                 ONOFF=0;  //放電到充電一循環,時間到置0,關閉               
  434.                 TMR1ON=0;  //Timer1 啟動控制位使能(0關閉)
  435.             }
  436.         }
  437.     }

  438.    if (T0IF == 1)  //1 = TMR0 寄存器溢出 (必須在軟件中清除) 0 = TMR0 寄存器沒有溢出
  439.    {
  440.        T0IF = 0; //tmr0溢出清零
  441.        yanshi++;
  442.        TMR0=0x00;
  443.        n++;
  444.        if (n > 250)  //1s/256us=3906.25,1秒溢出
  445.        {
  446.            n = 0;  //溢出清0
  447.            ADAN2();  //讀AD轉化口RA2/AN2
  448.            ADAN4();  //讀AD轉化口RC0/AN4
  449.            panduan ();  //轉換后的數據判斷,定義是否需要開燈、充電、雨控等待

  450.            if (eeprom_read(0x03)>=qcts && TMR1ON==1)  //讀清蟲設定天數2天的時候  ?????
  451.                dc();  //倒蟲
  452.        }

  453.        if (a > 0)
  454.            kaijishansuo();   //開機藍燈閃爍5次
  455.        if (z == 1)
  456.            RA0 = 1;  //藍燈閃爍
  457.        else
  458.            RA0 = 0;

  459.        shezhi();  //設置定時時間
  460.    }
  461. }



  462. void main ()
  463. {
  464.     init1();     //通道初始化

  465.     init2 ();    //定時器初始化

  466.     dianchi();   //電池選擇

  467.     dc();   //倒蟲

  468.     while (1)    //死循環
  469.     {
  470.     }
  471. }
復制代碼



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

使用道具 舉報

沙發
ID:227818 發表于 2024-1-18 14:52 | 只看該作者
我看錯了。
回復

使用道具 舉報

板凳
ID:883242 發表于 2024-1-18 15:17 | 只看該作者
freemode是給你插入大量無意義的代碼的意思。
回復

使用道具 舉報

地板
ID:1107532 發表于 2024-1-18 15:37 | 只看該作者

沒事沒事,不知道大佬看出是哪的問題沒有
回復

使用道具 舉報

5#
ID:1107532 發表于 2024-1-18 15:40 | 只看該作者
Hephaestus 發表于 2024-1-18 15:17
freemode是給你插入大量無意義的代碼的意思。

可是這些代碼我都有用到啊,那這種情況咋處理啊
回復

使用道具 舉報

6#
ID:1004920 發表于 2024-1-19 10:38 | 只看該作者
這個問題的出現應該 是Data space空間不足,你把定義的變量盡量壓縮,程序盡量優化。還是不行的話就換空間大的單片機,我把你的程序放在單片機是16f913是可以編譯通過的
回復

使用道具 舉報

7#
ID:1107532 發表于 2024-1-19 16:57 | 只看該作者
zch5200 發表于 2024-1-19 10:38
這個問題的出現應該 是Data space空間不足,你把定義的變量盡量壓縮,程序盡量優化。還是不行的話就換空間 ...

我找到問題了,好像是MPLAB軟件限制了定義的局部變量數量,我把一些變量定義到函數里去就可以編譯了
回復

使用道具 舉報

8#
ID:1102070 發表于 2024-1-22 08:29 來自手機 | 只看該作者
換個存儲大點的芯片。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97国产精品视频人人做人人爱 | 成人欧美一区二区三区视频xxx | 黑人精品欧美一区二区蜜桃 | 看a网站 | 欧美一级二级视频 | h片在线看| 特级毛片www| 亚洲国产午夜 | 国产主播第一页 | 亚洲国产一区二区三区 | 久久久久久久久久毛片 | аⅴ资源新版在线天堂 | 中文字幕加勒比 | 337p日本欧洲亚洲大胆鲁鲁 | 日韩综合在线 | 九九免费视频 | 国产精品久久亚洲7777 | 成人精品一区二区 | 欧美日韩国产欧美 | 综合久久99 | 欧美不卡一区二区三区 | 欧美性乱 | 国产伦精品一区二区三区四区视频 | 美女网站视频免费黄 | 欧美久久久久 | 老司机成人在线 | 99爱国产 | av性色全交蜜桃成熟时 | 亚洲激精日韩激精欧美精品 | 国产一区二区三区日韩 | 国产精品视频中文字幕 | 日本二区 | 精品欧美一区免费观看α√ | 先锋av资源网 | 国产欧美一区二区三区在线看 | 久久亚洲国产精品 | 91亚洲一区 | 一级片在线观看 | 国产精品成人久久久久 | 午夜在线视频 | 中文字幕国产在线 |