| 原帖见   http://bbs.21ic.com/icview-700722-1-1.html 只要数组总的元素的个数大于某个值,不管是几个数组 roll_left(unsigned int ×p,unsigned int size); 一搞进去单片机就异常,即使将数组分成几个 分别运行也不行啊
 主函数
 int main(void)
 {
 
 SYS_Init();    //初始化
 IO_Init();
 P1->DOUT = 0;   //点亮上下显示的蓝灯
 delaytime=65535;
 while(    delaytime--);
 
 while(1)
 {
 P2->DOUT = 0xff;
 P0->DOUT = 0xff;
 delaytime=65535;
 while(    delaytime--);
 while(1)
 {
 
 //下面是花样显示函数
 //函数都是经过测试,按照自己预期的结果运行的
 roll_up(wfcsu1,wfcsu1_size);
 flash(wfcsu1,wfcsu1_size);
 roll_left(wfcsu,wfcsu_size);                //wfcsu是个数组  wfcsu_size是数组大小   以下同样
 roll_left(wfcsu5,wfcsu5_size);
 roll_left(wfcsu1,wfcsu1_size);
 }
 }
 }
 
 
 上面是主函数   最下面3行 单独运行其中任何一个都没问题   数组定义为 uint16_t   wfcsu[] ={ /*元素个数超过1280个,芯片就异常,即使定义多个数组,数组中总的元素的个数大于1280个,芯片仍然异常*/}
 芯片用的是 M0516LBN  ldrom 4k  ram 4k aprom 64k   data 4k
 运行roll_left(wfcsu,wfcsu_size);
 roll_left(wfcsu5,wfcsu5_size);
 因为wfcsu5_size+wfcsu_size >1280 数组了不行
 运行roll_left(wfcsu,wfcsu_size);
 roll_left(wfcsu1,wfcsu1_size);
 或
 运行roll_left(wfcsu1,wfcsu1_size);
 roll_left(wfcsu5,wfcsu5_size);
 因为wfcsu5_size+wfcsu1_size<1280
 wfcsu_size+wfcsu1_size<1280  都可以正常运行
 
 
 |