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

📄 mem_task.lst

📁 这是atmel公司的89C51SND1C的mp3源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 307   4              func_state = mmc_setup_card(MMC_CARD2);
 308   4              if (func_state == MMC_ERROR)
 309   4              {
 310   5                mem_state = MEM_MMC2_ERROR;
 311   5              }
 312   4              else
 313   4              {
 314   5                if (func_state == MMC_END)        /* end of execution */
 315   5                {
 316   6                  gl_memory = MEM_MMC;
 317   6                  if (File_mount() == OK)         /* mount file system */
 318   6                  {
 319   7                    mem_state = MEM_MMC2_IDLE;
 320   7                  }
 321   6                  else
 322   6                  {
 323   7                    mem_state = MEM_MMC2_ERR_FMT; /* memory not formatted */
 324   7                  }
 325   6                  print_mem(SYMB_MMC2);           /* print MMC2 symbol */
 326   6                }
 327   5                gl_mem_tick = MEM_FUNCT_TIME;     /* init delay timer */
 328   5              }
 329   4            }
 330   3            break;
 331   3          }
 332   2      
 333   2          case MEM_MMC2_IDLE:
 334   2          {
 335   3            break;
 336   3          }
 337   2      
 338   2          case MEM_MMC1_ERROR:
 339   2          {
 340   3            if (mem_force_mmc)
 341   3            {
 342   4              mem_state = MEM_MMC1_INIT;
 343   4            }
 344   3            else
 345   3            {
 346   4              Mmc_disable();
 347   4              mem_state = MEM_MMC2_INIT;
 348   4            }
 349   3            break;
 350   3          }
 351   2      
 352   2          case MEM_MMC2_ERROR:
 353   2          {
 354   3            if (mem_force_mmc)
 355   3            {
 356   4              mem_state = MEM_MMC2_INIT;
 357   4            }
 358   3            else
 359   3            {
 360   4              Mmc_disable();
 361   4              mem_state = MEM_DF_INIT;
 362   4            }
 363   3            break;
 364   3          }
C51 COMPILER V6.20c  MEM_TASK                                                              07/10/2002 15:17:40 PAGE 7   

 365   2      
 366   2          case MEM_DF_ERR_FMT:
 367   2          {
 368   3            break;
 369   3          }
 370   2      
 371   2          case MEM_MMC1_ERR_FMT:
 372   2          {
 373   3            break;
 374   3          }
 375   2      
 376   2          case MEM_MMC2_ERR_FMT:
 377   2          {
 378   3            break;
 379   3          }
 380   2        }
 381   1      }
 382          
 383          
 384          /*F**************************************************************************
 385          * NAME: mem_status
 386          *----------------------------------------------------------------------------
 387          * PARAMS:
 388          *
 389          * return:
 390          *   memory status:  MEM_BUSY:   install in progress
 391          *                   MEM_READY:  install done
 392          *                   MEM_FORMAT: install done but memory not formated
 393          *----------------------------------------------------------------------------
 394          * PURPOSE: 
 395          *   Return memory status
 396          *----------------------------------------------------------------------------
 397          * EXAMPLE:
 398          *----------------------------------------------------------------------------
 399          * NOTE:
 400          *----------------------------------------------------------------------------
 401          * REQUIREMENTS:
 402          *****************************************************************************/
 403          Byte mem_status (void)
 404          {
 405   1        if ((mem_state == MEM_DF_IDLE) ||
 406   1            (mem_state == MEM_MMC1_IDLE) ||
 407   1            (mem_state == MEM_MMC2_IDLE))
 408   1        {
 409   2          return (MEM_READY);
 410   2        }
 411   1        if ((mem_state == MEM_DF_ERR_FMT) ||
 412   1            (mem_state == MEM_MMC1_ERR_FMT) ||
 413   1            (mem_state == MEM_MMC2_ERR_FMT))
 414   1        {
 415   2          return (MEM_FORMAT);
 416   2        }
 417   1        else
 418   1        {
 419   2          return (MEM_BUSY);
 420   2        }
 421   1      }
 422          
 423          
 424          /*F**************************************************************************
 425          * NAME: mem_check_card
 426          *----------------------------------------------------------------------------
C51 COMPILER V6.20c  MEM_TASK                                                              07/10/2002 15:17:40 PAGE 8   

 427          * PARAMS:
 428          *
 429          * return:
 430          *   OK: card present or on-board memory
 431          *   KO: card not present
 432          *----------------------------------------------------------------------------
 433          * PURPOSE: 
 434          *   Start card status checking
 435          *----------------------------------------------------------------------------
 436          * EXAMPLE:
 437          *----------------------------------------------------------------------------
 438          * NOTE:
 439          *----------------------------------------------------------------------------
 440          * REQUIREMENTS:
 441          *****************************************************************************/
 442          bit mem_check_card (void)
 443          {
 444   1        switch (mem_state)
 445   1        {
 446   2          case MEM_MMC1_IDLE:
 447   2          case MEM_MMC1_ERR_FMT:
 448   2          {
 449   3            return (mmc_check_presence(MMC_CARD1));
 450   3          }
 451   2      
 452   2          case MEM_MMC2_IDLE:
 453   2          case MEM_MMC2_ERR_FMT:
 454   2          {
 455   3            return (mmc_check_presence(MMC_CARD2));
 456   3          }
 457   2      
 458   2          default:
 459   2          {
 460   3            return OK;
 461   3          }
 462   2        }
 463   1      }
 464          
 465          
 466          /*F**************************************************************************
 467          * NAME: mem_card_select
 468          *----------------------------------------------------------------------------
 469          * PARAMS:
 470          *   force:  - TRUE:  continue selecting MMC1 in case of error
 471          *           - FALSE: select next device in case of error
 472          *
 473          * return:
 474          *----------------------------------------------------------------------------
 475          * PURPOSE:
 476          *   Mass storage memory selection
 477          *----------------------------------------------------------------------------
 478          * EXAMPLE:
 479          *----------------------------------------------------------------------------
 480          * NOTE:
 481          *   Call from mass storage routines:
 482          *     - when Test_Unit returns not ready
 483          *     - when exiting download mode for mounting new FAT
 484          *----------------------------------------------------------------------------
 485          * REQUIREMENTS:
 486          *****************************************************************************/
 487          void mem_card_select (bit force)
 488          {
C51 COMPILER V6.20c  MEM_TASK                                                              07/10/2002 15:17:40 PAGE 9   

 489   1        mem_force_mmc = force;
 490   1        mem_state = MEM_MMC1_INIT;
 491   1      }
 492          
 493          
 494          /*F**************************************************************************
 495          * NAME: mem_select_next
 496          *----------------------------------------------------------------------------
 497          * PARAMS:
 498          *
 499          * return:
 500          *----------------------------------------------------------------------------
 501          * PURPOSE:
 502          *   Select next on-board or card memory
 503          *----------------------------------------------------------------------------
 504          * EXAMPLE:
 505          *----------------------------------------------------------------------------
 506          * NOTE:
 507          *----------------------------------------------------------------------------
 508          * REQUIREMENTS:
 509          *****************************************************************************/
 510          void mem_select_next (void)
 511          {
 512   1        switch (mem_state)
 513   1        {
 514   2          case MEM_DF_IDLE:
 515   2          case MEM_DF_ERR_FMT:
 516   2          {
 517   3            mem_state = MEM_MMC1_INIT;
 518   3            break;
 519   3          }
 520   2          case MEM_MMC1_IDLE:
 521   2          case MEM_MMC1_ERR_FMT:
 522   2          {
 523   3            mem_state = MEM_MMC2_INIT;
 524   3            break;
 525   3          }
 526   2          case MEM_MMC2_IDLE:
 527   2          case MEM_MMC2_ERR_FMT:
 528   2          {
 529   3            mem_state = MEM_DF_INIT;
 530   3            break;
 531   3          }
 532   2        }
 533   1      }
 534          
 535          
 536          /*F**************************************************************************
 537          * NAME: mem_select_format
 538          *----------------------------------------------------------------------------
 539          * PARAMS:
 540          *
 541          * return:
 542          *   File system mount status
 543          *----------------------------------------------------------------------------
 544          * PURPOSE:
 545          *   Re-mount memory after format or mass storage update 
 546          *----------------------------------------------------------------------------
 547          * EXAMPLE:
 548          *----------------------------------------------------------------------------
 549          * NOTE:
 550          *----------------------------------------------------------------------------
C51 COMPILER V6.20c  MEM_TASK                                                              07/10/2002 15:17:40 PAGE 10  

 551          * REQUIREMENTS:
 552          *****************************************************************************/
 553          bit mem_select_format (void)
 554          {
 555   1        gl_mem_tick = MEM_WRITE_TIME;
 556   1      
 557   1        switch (mem_state)
 558   1        {
 559   2          case MEM_DF_ERR_FMT:
 560   2          case MEM_DF_IDLE:
 561   2          {
 562   3            while (gl_mem_tick != MEM_TIME_OUT)
 563   3            {
 564   4              if (File_mount() == OK)             /* check if format ok */
 565   4              {
 566   5                mem_state = MEM_DF_IDLE;
 567   5                return OK;
 568   5              }
 569   4            }
 570   3            return KO;
 571   3          }
 572   2      
 573   2          case MEM_MMC1_ERR_FMT:
 574   2          case MEM_MMC1_IDLE:
 575   2          {
 576   3            while (gl_mem_tick != MEM_TIME_OUT)
 577   3            {
 578   4              if (File_mount() == OK)             /* check if format ok */
 579   4              {
 580   5                mem_state = MEM_MMC1_IDLE;
 581   5                return OK;
 582   5              }
 583   4            }
 584   3            return KO;
 585   3          }
 586   2      
 587   2          case MEM_MMC2_ERR_FMT:
 588   2          case MEM_MMC2_IDLE:
 589   2          {
 590   3            while (gl_mem_tick != MEM_TIME_OUT)
 591   3            {
 592   4              if (File_mount() == OK)             /* check if format ok */
 593   4              {
 594   5                mem_state = MEM_MMC2_IDLE;
 595   5                return OK;
 596   5              }
 597   4            }
 598   3            return KO;
 599   3          }
 600   2      
 601   2          default:
 602   2          {
 603   3            return KO;
 604   3          }
 605   2        }
 606   1      }
 607          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    628    ----
   CONSTANT SIZE    =     32    ----
C51 COMPILER V6.20c  MEM_TASK                                                              07/10/2002 15:17:40 PAGE 11  

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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