找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4694|回复: 1
打印 上一主题 下一主题
收起左侧

CANNOT OPTIMIZE FUNCTION keil编译出现一个错误

[复制链接]
跳转到指定楼层
楼主
ID:232524 发表于 2017-10-2 12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义了一个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函数调用就不会报错,求大神解答一下

程序如下
  1.    #include<reg51.h>
  2.    #define v 10   //速度
  3.    #define L 27    //字符长度
  4.    typedef signed char u8;
  5.    typedef signed int u16;
  6.    u8 lie[]={0x41,0x7F,0x21,0x40,0x41,0x3F,0x01,0x00,0x3E,0x49,0x49,0x49,0x32,0x00,
  7.              0x41,0x63,0x5C,0x1D,0x63,0x41,0x00,0x20,0x7F,0x21,0x00,0x00,0x00,0x00}; //移动显示next
  8.    u8 heng[]={0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0xE7};
  9.    u8 all[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  10.    sbit SER=P3^4;
  11.    sbit SRLCK=P3^6;
  12.    sbit RLCK=P3^5;
  13.    u8 y[8];
  14.    u16 c=0;        
  15.    void send(u8 a)
  16.    {
  17.      int i;
  18.          SRLCK=0;
  19.          RLCK=0;
  20.          for(i=0;i<8;i++)
  21.          {
  22.      SER=a>>7;
  23.          SRLCK=1;
  24.          a=a<<1;
  25.          SRLCK=0;
  26.          }
  27.          RLCK=1;
  28.    }
  29.   void move()
  30.    {
  31.      int j;
  32.          for(j=7;j>0;j--)
  33.          {
  34.           y[j]=y[j-1];
  35.          }
  36.          y[0]=lie[c++];
  37.          if(c>L+1)c=0;
  38.    }
  39.   void delay(u16 i)
  40.    {
  41.      while (i--);
  42.    }

  43.    void main()
  44.    {
  45.     int i,d;
  46.           d=v;
  47.         for(i=0;i<8;i++)y[i]=0;
  48.     while(1)
  49.         {  
  50.            while(d--)
  51.            {   
  52.             for(i=0;i<8;i++)
  53.             {
  54.               P0=0xff-all[i];            
  55.               send(y[i]);                                 
  56.                   delay(100);
  57.                   send(0x00);
  58.                   P0=0xff;
  59.             }
  60.            }
  61.            move();
  62.            d=v;
  63.          }
  64.    }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-11-7 03:21 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表