跳到主要內容

發表文章

精選

[第十課] MP3播放器核心運行

『滾石不生苔』"A rolling stone gathers no moss." ~ Publilius Syrus 最後的最後,還是要一提,嵌入式系統的設計,要保持常動,與時俱進。在 ACCP 的 Github Wiki 說道:『ACCP的核心程式採 狀態機 State Machine 架構方式進行: void loop() {   switch (state) {        case SLEEP: { //enter sleep state... }        case SCAN: { //scan tag in the field ...}     case PLAYER: { //MP3 player       switch(mode) {              case 0: { // Album Loop All playing mode; ...}                case  1: { // A-B | Single playing mode; ...}               case 2: { // Audio Guide mode; ...}             case 3: { // BGM playing mode; ...}             case 4: { // Playlist playing Mode; ...}             case 5: { // Quiz Game Mode; ...}             case 6: { // Reserve for Future; ...}        ... }         case CONFIG: { ... }         case NG_ERR: { ... }           case NOP: { ... }   } }   』。在常動的 Loop() 主程序,一共有 SLEEP 、 SCAN 、 PLAYER 、 CONFIG 、 NG_ERR 與 NOP 等六個狀態;狀態間的轉動並不是循序進行,而是根據每個狀態裡處理程序的結果,來決定下一個要前往的狀態。 在ACCP剛完成開機,會直接先進入  SCAN  狀態,如果沒有感應到有 X-DISC 進入,則會

最新文章

[第九課] NFC感應魔法-2 (Tag Memory Read/Write)

[第八課] NFC感應魔法-1 (SPI / ISO14443A)

[第七課] DFPlayer開聲試啼 (UART)

[第六課] OLED顯示原理 (I2C)

[第五課] 休眠設定與鋰電池低效偵測 (ADC)

[第四課] RTC動起來與時間顯示 (I2C)

[第三課] ARDUINO IDE/ XIAO開發環境與程式庫建立

[第二課] 再談NFC行動通訊

[第一課] 創作我的第一張NFC小唱片