定義了一個unsigned char y[8]數組,在main函數里面初始化會報錯
Build target 'Target 1'
compiling 1.c...
C51 FATAL-ERROR -
ACTION: GOBAL OPTIMIZATION
FUNCTION: main
ERROR: CANNOT OPTIMIZE FUNCTION
COMPILATION TERMINATED.
use the following work-around:
#pragma OPTIMIZE (7)
/* your original function */
main () {
....
}
/* end of your original function */
#pragma OPTIMIZE (8)
Target not created
但是不初始化或者建立一個初始化函數,然后在main函數調用就不會報錯,求大神解答一下
程序如下
- #include<reg51.h>
- #define v 10 //速度
- #define L 27 //字符長度
- typedef signed char u8;
- typedef signed int u16;
- u8 lie[]={0x41,0x7F,0x21,0x40,0x41,0x3F,0x01,0x00,0x3E,0x49,0x49,0x49,0x32,0x00,
- 0x41,0x63,0x5C,0x1D,0x63,0x41,0x00,0x20,0x7F,0x21,0x00,0x00,0x00,0x00}; //移動顯示next
- u8 heng[]={0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0xE7};
- u8 all[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- sbit SER=P3^4;
- sbit SRLCK=P3^6;
- sbit RLCK=P3^5;
- u8 y[8];
- u16 c=0;
- void send(u8 a)
- {
- int i;
- SRLCK=0;
- RLCK=0;
- for(i=0;i<8;i++)
- {
- SER=a>>7;
- SRLCK=1;
- a=a<<1;
- SRLCK=0;
- }
- RLCK=1;
- }
- void move()
- {
- int j;
- for(j=7;j>0;j--)
- {
- y[j]=y[j-1];
- }
- y[0]=lie[c++];
- if(c>L+1)c=0;
- }
- void delay(u16 i)
- {
- while (i--);
- }
- void main()
- {
- int i,d;
- d=v;
- for(i=0;i<8;i++)y[i]=0;
- while(1)
- {
- while(d--)
- {
- for(i=0;i<8;i++)
- {
- P0=0xff-all[i];
- send(y[i]);
- delay(100);
- send(0x00);
- P0=0xff;
- }
- }
- move();
- d=v;
- }
- }
復制代碼 |