⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 download.lst

📁 TI公司的DSP TMS320VC5402开发板的全套资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
 175   1          dspptr = dsp_program;
 176   1      
 177   1          while (1)
 178   1          {
C51 COMPILER V8.08   DOWNLOAD                                                              08/07/2008 00:07:23 PAGE 4   

 179   2              len = *dspptr++;         // 第一个字节表示数据长度(字节数),第二、三字节表示起始地址,高位字节在前 
 180   2      
 181   2              if (len == 0)
 182   2                      { 
 183   3                              if(stage_data)  // 如果已经是在写数据空间,说明已经结束,跳出循环 
 184   3                              { 
 185   4                                      break;
 186   4                              }
 187   3                              else
 188   3                              {
 189   4                                      stage_data = 1; // 程序空间写完了,开始写数据空间 
 190   4                                       
 191   4      #ifdef  DATA
                                              dspptr = dsp_data;
              #endif
 194   4      
 195   4      #ifndef DATA
 196   4                                      break;
 197   4      #endif
 198   4                              }
 199   3                      }
 200   2      
 201   2              else
 202   2              {                                                                                                                                                                               
 203   3                              addr = ((*dspptr++) * 256);     //将两个字节的数据组合成一个16位地址 
 204   3                              addr += *dspptr++; 
 205   3                      addr--;         // HCNTL0 = 0,HCNTL0 = 1,每写1次,HPIA事先增1
 206   3      
 207   3                      temp = dspptr;
 208   3      
 209   3      again:         
 210   3                      WR_HPIL_A = addr / 256;         // BOB = 0,第1字节为高字节,地址高8位 
 211   3                      WR_HPIH_A = addr % 256;         // 地址低8位
 212   3      
 213   3                      for (i=0; i < len/2; i++)
 214   3                      {  
 215   4                      WR_HPIL0_D = *dspptr++;         // 第一字节,16位数据高8位        
 216   4                              WR_HPIH0_D = *dspptr++;         // 第二字节,16位数据低8位                      
 217   4                      }
 218   3      
 219   3                      dspptr = temp;          // 指针回到刚刚写完的len长度数据的首字节,以便读出进行校验 
 220   3      
 221   3                      addr++;         // HCNTL0 = 0,HCNTL0 = 1,每读1次,HPIA事后增1
 222   3                      WR_HPIL_A = addr / 256;
 223   3                      WR_HPIH_A = addr % 256;
 224   3      
 225   3                      for (i=0; i < len/2; i++)
 226   3                      {  
 227   4                      if (RD_HPIL0_D != *dspptr++) 
 228   4                                      {
 229   5                                              dspptr = temp;  // 将dspptr指回到该len长度的首字节,以便重新写该len长度的数据 
 230   5                                      addr--;
 231   5                                              goto again;       // 不相等,再写 
 232   5                                      }
 233   4                                               
 234   4                              if (RD_HPIH0_D != *dspptr++)
 235   4                                      {
 236   5                                              dspptr = temp;  // 将dspptr指回到该len长度的首字节,以便重新写该len长度的数据 
 237   5                                      addr--;  
 238   5                                              goto again;
 239   5                                      }                      
 240   4                      }
C51 COMPILER V8.08   DOWNLOAD                                                              08/07/2008 00:07:23 PAGE 5   

 241   3               }
 242   2           }
 243   1      
 244   1           WR_HPIL_A = 0x00;          // 向地址0x007f写入pc指针加载地址  
 245   1           WR_HPIH_A = 0x7f;
 246   1           WR_HPIL1_D = 0x00;    // THE START ADDRESS OF RUN
 247   1           WR_HPIH1_D = 0x80;        
 248   1           
 249   1      }     
 250          
 251          Timer0() interrupt 1
 252          {
 253   1              ok = 1;
 254   1              ms++;
 255   1      }
 256          
 257          void init_51(void)
 258          {
 259   1          TMOD = 0x21;
 260   1          SCON = 0x40;
 261   1          REN = 1;
 262   1          TH1 = 0xfd;
 263   1          TL1 = 0xfd;
 264   1          ET1 = 0;
 265   1          ES = 0;
 266   1          IT0 = 1;
 267   1          EX0 = 0;
 268   1          ET0 = 1;
 269   1          EA = 1;
 270   1          TR1 = 1;
 271   1          TR0 = 1;
 272   1      }
 273          /***************************************************************/
 274          
 275          /*
 276          unsigned char getDSP()
 277          {
 278                  WR_HPIL_A = 0;
 279                  WR_HPIH_A = 0x7d;
 280                  return(RD_HPIH0_D);
 281          }
 282          */  
 283          void init_AIC23(void)
 284          { 
 285   1              write_AIC23(RESET, 0);
 286   1              write_AIC23(D_INTERFACE_ACT, 0x001);
 287   1              write_AIC23(POWER_CON, 0);
 288   1              //write_AIC23(SAMPLE_RATE, 0x022);  //44.1k
 289   1              //write_AIC23(SAMPLE_RATE, 0x062);    //22.05k
 290   1              write_AIC23(SAMPLE_RATE, 0x02e);    //8.021k
 291   1          
 292   1              write_AIC23(L_LINE_VOLUME, 0x0117);
 293   1              write_AIC23(R_LINE_VOLUME, 0x0117);
 294   1         
 295   1              volume = 100;
 296   1              write_AIC23(L_HEADPHONE_VOLUME, 0x0180+volume); //0x1e4  
 297   1              write_AIC23(R_HEADPHONE_VOLUME, 0x0180+volume);   
 298   1         
 299   1              //write_AIC23(A_AUDIO_PATH, 0x009);   //bypass DAC OFF
 300   1              //write_AIC23(A_AUDIO_PATH, 0x014);   //MIC ADC DAC ON  0DB
 301   1              //write_AIC23(A_AUDIO_PATH, 0x1fc);   //bypass MIC ADC DAC ON 0DB sidetone 
 302   1          //write_AIC23(A_AUDIO_PATH, 0x07d);   //bypass MIC ADC DAC ON 20DB sidetone(-6db)
C51 COMPILER V8.08   DOWNLOAD                                                              08/07/2008 00:07:23 PAGE 6   

 303   1              //write_AIC23(A_AUDIO_PATH, 0x011);   //LINE ADC DAC ON
 304   1              write_AIC23(A_AUDIO_PATH, 0x055);
 305   1         
 306   1              write_AIC23(D_AUDIO_PATH, 0x04);
 307   1         
 308   1              write_AIC23(D_AUDIO_INTERFACE, 0x043);   //master  dsp mode
 309   1      }
 310          
 311          void write_AIC23(uchar addr, uint dat)
 312          {
 313   1          uchar i;
 314   1          dat |= addr << 9;   // A[15..9]控制地址,A[8..0]控制数据 
 315   1          CS=0;
 316   1          for (i = 0; i < 16; i++)    // 模拟SPI时序发送 
 317   1          {
 318   2              SCLK = 0;
 319   2              if ((dat << i) & 0x8000)
 320   2                      SDIN = 1;
 321   2              else 
 322   2                      SDIN = 0;
 323   2              SCLK = 1;
 324   2          }
 325   1          SCLK = 0;
 326   1          CS = 1;
 327   1      }
 328          /*
 329          unsigned char getkey()
 330          {
 331              uchar key;
 332              if(RI)
 333              {
 334                  RI = 0;
 335                  key = SBUF;
 336                  return(key);
 337              }
 338              return(255);
 339          }
 340          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    630    ----
   CONSTANT SIZE    =   1625    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -