刚学DSP,用F28335的一块开发板烧程序时,程序编译完成后,下程序是出现图中的报错...

2019-03-26 14:52发布

  1. #include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
  2. #include "DSP2833x_Examples.h"   // DSP2833x Examples Include File

  3. /****************端口宏定义*****************/
  4. #define S1 GpioDataRegs.GPADAT.bit.GPIO12


  5. /****************常量宏定义*****************/

  6. /***************全局变量定义****************/
  7. Uint32 temp;
  8. Uint32 direction;

  9. /****************函数声明*******************/
  10. void Gpio_select(void); //gpio端口配置子程序
  11. void delay_loop(void);
  12. void Scan_Key(void);

  13. void main(void)
  14. {

  15. // Step 1. Initialize System Control:
  16. // PLL, WatchDog, enable Peripheral Clocks
  17. // This example function is found in the DSP2833x_SysCtrl.c file.
  18.    InitSysCtrl();
  19.    
  20. // Step 2. Initalize GPIO:
  21. // This example function is found in the DSP2833x_Gpio.c file and
  22. // illustrates how to set the GPIO to it's default state.
  23. // InitGpio();  // Skipped for this example

  24. // For this example use the following configuration:
  25.    Gpio_select();         

  26. // Step 3. Clear all interrupts and initialize PIE vector table:
  27. // Disable CPU interrupts
  28.    DINT;

  29. // Initialize PIE control registers to their default state.
  30. // The default state is all PIE interrupts disabled and flags
  31. // are cleared.  
  32. // This function is found in the DSP2833x_PieCtrl.c file.
  33.    InitPieCtrl();

  34. // Disable CPU interrupts and clear all CPU interrupt flags:
  35.    IER = 0x0000;
  36.    IFR = 0x0000;

  37. // Initialize the PIE vector table with pointers to the shell Interrupt
  38. // Service Routines (ISR).  
  39. // This will populate the entire table, even if the interrupt
  40. // is not used in this example.  This is useful for debug purposes.
  41. // The shell ISR routines are found in DSP2833x_DefaultIsr.c.
  42. // This function is found in DSP2833x_PieVect.c.
  43.    InitPieVectTable();

  44.         
  45. // Step 4. Initialize all the Device Peripherals:
  46. // This function is found in DSP2833x_InitPeripherals.c
  47. // InitPeripherals(); // Not required for this example
  48.         
  49. // Step 5. User specific code:
  50.    GpioDataRegs.GPBDAT.all    =0x30000000;//GPIO60,61,64,65,66,67,68输出清1,使LED1灯灭
  51.    GpioDataRegs.GPCDAT.all    =0x0000001f;
  52.    direction=0;
  53.    for(;;)
  54.    {
  55.     unsigned int i;
  56.         if(direction%2!=0)//控制流水灯的方向
  57.                 temp=0x10000000;
  58.         else
  59.                 temp=0x20000000;


  60.         while(temp!=0x40000000&&temp!=0x08000000)//轮流点亮GPIO60,61;
  61.         {
  62.                 //delay_loop();
  63.                 GpioDataRegs.GPBCLEAR.all |=temp;
  64.         delay_loop();


  65.                 GpioDataRegs.GPBSET.all |=temp;
  66.                 if(direction%2!=0)//控制流水灯的方向
  67.                 temp<<=1;
  68.                 else
  69.                         temp>>=1;
  70.         
  71.         }
  72.         if(temp==0x40000000)//根据temp值选择GPIO64-GPIO67是从64开始还是从67开始点亮LED
  73.         temp=0x00000001;
  74.         else
  75.                 temp=0x00000010;
  76.         while(temp!=0x00000020&&temp!=0x00000000)//轮流点亮GPIO64-GPIO67;
  77.         {
  78.         //delay_loop();
  79.                         GpioDataRegs.GPCCLEAR.all |=temp;
  80.         delay_loop();

  81.                

  82.                 GpioDataRegs.GPCSET.all |=temp;

  83.                 if(direction%2!=0)//控制流水灯的方向
  84.                                 temp<<=1;
  85.                                 else
  86.                                         temp>>=1;
  87.         
  88.         
  89.         }        
  90.    
  91.    }
  92. }         

  93. void delay_loop()
  94. {
  95.     Uint32      i;
  96.         Uint32      j;
  97.         for(i=0;i<4;i++)
  98.     for (j = 0; j < 100000; j++) {Scan_Key();}
  99. }

  100. /*------------------------------------------*/
  101. /*形式参数:void                                            */
  102. /*返回值:void                                                            */
  103. /*函数描述:扫描键值                                 */
  104. /*------------------------------------------*/
  105. void Scan_Key(void)      
  106. {
  107. Uint32 i,j;
  108.         if(S1==0)//扫描是否按键按下               
  109.         {
  110.           for(i=0;i<10000;i++);    //键盘消抖动
  111.           if(S1==0)
  112.           {
  113.       direction+=1;
  114.           for(i=0;i<32;i++)
  115.       for (j = 0; j < 100000; j++) {}

  116.           /*
  117.              if(direction%2!=0)//第一按下按键LED停止闪烁,下次按下时LED又开始闪烁
  118.          {
  119.           while(S1!=0);
  120.                  }
  121.                  */
复制代码
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。