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

📄 ideio.lst

📁 基于uCOS/II制作的MP3
💻 LST
📖 第 1 页 / 共 2 页
字号:
 221   3              Usb_write_byte(hdd_read_byte());        
 222   3              Usb_write_byte(hdd_read_byte());
 223   3              Usb_write_byte(hdd_read_byte());        
 224   3              Usb_write_byte(hdd_read_byte());
 225   3              Usb_write_byte(hdd_read_byte());        
 226   3              Usb_write_byte(hdd_read_byte());
 227   3              Usb_write_byte(hdd_read_byte());        
 228   3              Usb_write_byte(hdd_read_byte());
 229   3              Usb_write_byte(hdd_read_byte());        
 230   3              Usb_write_byte(hdd_read_byte());
 231   3              Usb_write_byte(hdd_read_byte());        
 232   3              Usb_write_byte(hdd_read_byte());
 233   3              Usb_write_byte(hdd_read_byte());        
 234   3              Usb_write_byte(hdd_read_byte());
 235   3              Usb_write_byte(hdd_read_byte());        
 236   3              Usb_write_byte(hdd_read_byte());
 237   3              Usb_write_byte(hdd_read_byte());        
 238   3              Usb_write_byte(hdd_read_byte());
 239   3              Usb_write_byte(hdd_read_byte());        
 240   3              Usb_write_byte(hdd_read_byte());
C51 COMPILER V7.50   IDEIO                                                                 06/03/2006 10:32:52 PAGE 5   

 241   3              Usb_write_byte(hdd_read_byte());        
 242   3              Usb_write_byte(hdd_read_byte());
 243   3              Usb_write_byte(hdd_read_byte());        
 244   3              Usb_write_byte(hdd_read_byte());
 245   3              Usb_write_byte(hdd_read_byte());        
 246   3              Usb_write_byte(hdd_read_byte());
 247   3              Usb_write_byte(hdd_read_byte());        
 248   3              Usb_write_byte(hdd_read_byte());
 249   3              Usb_write_byte(hdd_read_byte());        
 250   3              Usb_write_byte(hdd_read_byte());
 251   3           
 252   3            Usb_set_TXRDY();
 253   3            Usb_select_ep(EP_IN);
 254   3            while (!Usb_tx_complete());
 255   3            Usb_clear_TXCMPL();  
 256   3           }   
 257   2           hdd_read_close();
 258   2      
 259   2           return OK;
 260   2         }
 261   1        return KO;
 262   1      }
 263          
 264          
 265          /**********************************************************
 266          *函数名称:bit hdd_write_open(Uint32 hdd_sector)           *
 267          *用途:写硬盘OPEN动作                                      *
 268          ***********************************************************/ 
 269          bit hdd_write_open(Uint32 hdd_sector)
 270          {
 271   1       uchar head,cylinderh,cylinderl,sector;
 272   1         head      = ((Byte*)&hdd_sector)[0];
 273   1         cylinderh = ((Byte*)&hdd_sector)[1];
 274   1         cylinderl = ((Byte*)&hdd_sector)[2];
 275   1         sector    = ((Byte*)&hdd_sector)[3];
 276   1      
 277   1         do{ACC = FILE7;} while(BSY);
 278   1          FILE6 = (0xe0 | (head & 0x0f));
 279   1          FILE5 = cylinderh;    //high 2-bit cylinder
 280   1          FILE4 = cylinderl;//low 8-bit cylinder
 281   1          FILE3 = sector; //start sector
 282   1          FILE2 = 1;   //sector counter
 283   1          
 284   1          WriteCommand(0x30); 
 285   1      
 286   1        do{ACC = FILE7;} while(BSY |! DRQ); //wait for noBUSY and data request
 287   1        
 288   1        ACC = FILE7;
 289   1         if (ERR)
 290   1           return KO;
 291   1      
 292   1           return OK;
 293   1      }
 294          
 295          
 296          /**********************************************************
 297          *函数名称:bit hdd_write_byte(Byte hdd_data)                      *
 298          *用途:写硬盘CLOSE动作                                     *
 299          ***********************************************************/ 
 300          bit   hdd_write_byte(Byte hdd_data)
 301          {
 302   1       gl_hdd_buffer[gl_hdd_buffer_ptr++] = hdd_data ;
C51 COMPILER V7.50   IDEIO                                                                 06/03/2006 10:32:52 PAGE 6   

 303   1       return OK;
 304   1      }
 305          
 306          /**********************************************************
 307          *函数名称:bit hdd_write_close(void)                       *
 308          *用途:写硬盘CLOSE动作                                     *
 309          ***********************************************************/ 
 310          bit hdd_write_close(void)
 311          {uint i;
 312   1        for(i = 0; i < 512; i+=2)
 313   1         {
 314   2          DAT16H = gl_hdd_buffer[i+1];
 315   2          FILE0  = gl_hdd_buffer[i];                                                                                                                                                     
             -                                                              
 316   2         }
 317   1      
 318   1        do{ACC = FILE7;} while(BSY); 
 319   1      
 320   1        return OK;
 321   1         
 322   1      }
 323          
 324          
 325          
 326          /**********************************************************
 327          *函数名称:bit hdd_write_usb_sector(Uint32 hdd_sector)     *
 328          *用途:将USB接收到的一个扇区的数据写入硬盘                 *
 329          ***********************************************************/ 
 330          bit hdd_write_usb_sector(Uint32 hdd_sector)
 331          {uchar j;
 332   1      
 333   1         Usb_select_ep(EP_OUT);   
 334   1         gl_hdd_buffer_ptr = 0;
 335   1      
 336   1         for (j = 0; j < 8; j++)
 337   1             {
 338   2                  while(!Usb_rx_complete());          /* wait end of reception */
 339   2                        hdd_write_byte(Usb_read_byte());
 340   2                hdd_write_byte(Usb_read_byte());
 341   2                hdd_write_byte(Usb_read_byte());
 342   2                hdd_write_byte(Usb_read_byte());
 343   2                hdd_write_byte(Usb_read_byte());
 344   2                hdd_write_byte(Usb_read_byte());
 345   2                hdd_write_byte(Usb_read_byte());
 346   2                hdd_write_byte(Usb_read_byte());
 347   2                hdd_write_byte(Usb_read_byte());
 348   2                hdd_write_byte(Usb_read_byte());
 349   2                hdd_write_byte(Usb_read_byte());
 350   2                hdd_write_byte(Usb_read_byte());
 351   2                hdd_write_byte(Usb_read_byte());
 352   2                hdd_write_byte(Usb_read_byte());
 353   2                hdd_write_byte(Usb_read_byte());
 354   2                hdd_write_byte(Usb_read_byte());
 355   2                    hdd_write_byte(Usb_read_byte());
 356   2                hdd_write_byte(Usb_read_byte());
 357   2                hdd_write_byte(Usb_read_byte());
 358   2                hdd_write_byte(Usb_read_byte());
 359   2                hdd_write_byte(Usb_read_byte());
 360   2                hdd_write_byte(Usb_read_byte());
 361   2                hdd_write_byte(Usb_read_byte());
 362   2                hdd_write_byte(Usb_read_byte());
 363   2                hdd_write_byte(Usb_read_byte());
C51 COMPILER V7.50   IDEIO                                                                 06/03/2006 10:32:52 PAGE 7   

 364   2                hdd_write_byte(Usb_read_byte());
 365   2                hdd_write_byte(Usb_read_byte());
 366   2                hdd_write_byte(Usb_read_byte());
 367   2                hdd_write_byte(Usb_read_byte());
 368   2                hdd_write_byte(Usb_read_byte());
 369   2                hdd_write_byte(Usb_read_byte());
 370   2                hdd_write_byte(Usb_read_byte());
 371   2                hdd_write_byte(Usb_read_byte());
 372   2                hdd_write_byte(Usb_read_byte());
 373   2                hdd_write_byte(Usb_read_byte());
 374   2                hdd_write_byte(Usb_read_byte());
 375   2                hdd_write_byte(Usb_read_byte());
 376   2                hdd_write_byte(Usb_read_byte());
 377   2                hdd_write_byte(Usb_read_byte());
 378   2                hdd_write_byte(Usb_read_byte());
 379   2                hdd_write_byte(Usb_read_byte());
 380   2                hdd_write_byte(Usb_read_byte());
 381   2                hdd_write_byte(Usb_read_byte());
 382   2                hdd_write_byte(Usb_read_byte());
 383   2                hdd_write_byte(Usb_read_byte());
 384   2                hdd_write_byte(Usb_read_byte());
 385   2                hdd_write_byte(Usb_read_byte());
 386   2                hdd_write_byte(Usb_read_byte());
 387   2                    hdd_write_byte(Usb_read_byte());
 388   2                hdd_write_byte(Usb_read_byte());
 389   2                hdd_write_byte(Usb_read_byte());
 390   2                hdd_write_byte(Usb_read_byte());
 391   2                hdd_write_byte(Usb_read_byte());
 392   2                hdd_write_byte(Usb_read_byte());
 393   2                hdd_write_byte(Usb_read_byte());
 394   2                hdd_write_byte(Usb_read_byte());
 395   2                hdd_write_byte(Usb_read_byte());
 396   2                hdd_write_byte(Usb_read_byte());
 397   2                hdd_write_byte(Usb_read_byte());
 398   2                hdd_write_byte(Usb_read_byte());
 399   2                hdd_write_byte(Usb_read_byte());
 400   2                hdd_write_byte(Usb_read_byte());
 401   2                hdd_write_byte(Usb_read_byte());
 402   2                hdd_write_byte(Usb_read_byte());
 403   2      
 404   2                    Usb_clear_RXOUT_PP();          
 405   2              }
 406   1        
 407   1          hdd_write_open(hdd_sector);
 408   1          hdd_write_close();
 409   1              return OK;
 410   1      }
 411          
 412          
 413          s_format *hdd_format()
 414          {
 415   1       code  s_format  hdd_tab_format=
 416   1         /* nb_cylinder, nb_head,  nb_sector, nb_hidden, nb_sector_per_cluster */
 417   1          { 1000, (Byte)16, (Byte)32,  (Byte)63,  (Byte)32 };
 418   1      
 419   1       return &hdd_tab_format;
 420   1       }
 421          
 422          
 423          
 424          
 425               
C51 COMPILER V7.50   IDEIO                                                                 06/03/2006 10:32:52 PAGE 8   

 426              
 427          
 428          
 429          
 430          
 431          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1110    ----
   CONSTANT SIZE    =      6    ----
   XDATA SIZE       =   ----       9
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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