| 我在主函数中有如下循环 该循环中的select用触摸屏中断控制复制代码          while(1)
          {
                //if(last_select==5&&select==5)
                //{
                //        select=10;
                //}
                //else
                //{
                        switch(select)
                        {
                                case 0:Time_Show();break;
                                case 1:Alarm_Sing();break;
                                case 2:Mosquito_Drive();Delay(900);break;
                                case 3:{
                                               IsMain=0;
           
                                                   Lcd_ClearScr(0);
                                                   for(i=0;i<5;i++)
                                                {
                                                        Disp_Char(65+40*i,100,&dami_4040[600+200*i],40,40,(0<<11|0<<5|31),0);
                                                }
           
                                                   rRTCCON&=~0x01;
                                                 rRTCALM&=~0x7f;
                                                 addr=0;
                                                 while(1)
                                                  {
                                                        temp1=song2[addr++];
                                                        temp2=song2[addr++];
                                                        switch(temp1){
                                                        case 01:freq=260;break;
                                                        case 02:freq=294;break;
                                                        case 03:freq=328;break;
                                                        case 04:freq=347;break;
                                                        case 05:freq=390;break;
                                                        case 06:freq=438;break;
                                                        case 07:freq=490;break;
                                
                                                        case 11:freq=520;break;
                                                        case 12:freq=581;break;
                                                        case 13:freq=657;break;
                                                        case 14:freq=694;break;
                                                        case 15:freq=781;break;
                                                        case 16:freq=892;break;
                                                        case 17:freq=1000;break;
                                
                                                        case 21:freq=1041;break;
                                                        case 22:freq=1190;break;
                                                        case 23:freq=1315;break;
                                                        case 24:freq=1388;break;
                                                        case 25:freq=1562;break;
                                                        case 26:freq=1785;break;
                                                        case 27:freq=1923;break;
                                                        default:freq=0xffff;break;
                                                        }
                                                Buzzer_Freq_Set(freq);
                                                if(temp2!=38)Delay(192*temp2);
                                                else break;
                                                }
                                        rGPBCON&=~(0x3);
                                        rGPBCON|=0x1;
                                        select=5;
                                        break;
                                        }
                                case 4:Picture_Scan();break;
                                case 5:rGPBCON&=~(0x3);rGPBCON|=0x1;Main_Menu_Show();Delay(900);break;
                        //        default:Error_Report();
                        }
其他功能函数正常,只有当选择case 3时,会出现Dabort exception问题
 另外,我曾经将case 3中的代码做成函数,但函数返回不了。
 大家帮忙看看是什么问题,谢谢帮忙
 |