【I-7188 程式庫簡介】
  1. 系統
  2. 紅色 Led 及 五位數字顯示器(5-DigitLed)
  3. NVRAM
  4. EEPROM
  5. Flash Memory
  6. COM port 及對 I-7000 收送命令
  7. Timer
  8. WatchDog Timer

回主目錄
  1. 系統
  2. INIT* 接腳
    ReadInitPin讀取 INIT* 的狀態。
    相關說明:
    1. INIT* 最好是當作 INIT* 使用,如果是拿來當 DI 時, 需要避免 INIT* 接地時發生 RESET 的狀況發生,這時候將會等著下載新的 RomDisk, 也就是系統在那兒等待 USER 下載新的 ROM-DISK.IMG 。
    2. 但是如果是人工操作的狀態下,應該可以安心的使用,如果發生了至少 user 可以知道。

  3. 紅色 Led 及 五位數字顯示器(5-DigitLed)
  4. 紅色 LED
    LedOn()讓紅色 LED 亮起來。
    LedOff()讓紅色 LED 熄掉。
    相關說明:
    1. I-7188 上的紅色 LED 在開機後會亮起來。
    2. USER 也可以拿他來作為某種狀況的顯示。例如不同頻率的閃爍。

    5DiditLed(五位數字顯示器)
    Show5DigitLed()在某一個位置顯示16進位數字(0123456789AbCdEF)。
    Show5DigitLedWithDot()同上,並顯示小數點(•)。
    Show5DigitLedSeg()可以控制LED上所有點的顯示與否。
    相關說明:
    1. 5DigitLed是7188XC的標準顯示器,只能顯示五個字。
    2. 最左邊是位置1,最右邊是位置5。
      例如要顯示"7188.d"就用底下五行命令:
      Show5DigitLed(1,7);
      Show5DigitLed(2,1);
      Show5DigitLed(3,8);
      Show5DigitLedWithDot(4,8);
      Show5DigitLed(5,13);
    3. 7188XC開機後如果沒執行USER的程式時5DigitLed會顯示開機後的時間。
    4. USEUSER程式可以拿他來顯示一些數據,系統狀況,或是一些錯誤訊息。

  5. NVRAM & RTC
  6. NVRAM
    ReadNVRAM讀取NVRAM所存的資料。一次一個BYTE。
    WriteNVRAM寫入資料到NVARM。一次一個BYTE。
    相關說明:
    1. NVRAM 內儲存的資料要到電池沒電時才會消失。在 I-7188 供電時不會消耗電池的電。
    2. NVRAM 只有 31 BYTES 可以使用。寫入的速度比寫入 EEPROM 快。沒有寫入次數的限制。

    RTC(Real Time Clock)
    相關說明:
    1. 請使用 C提供的副程式來讀取或設定系統的時間及日期就可以。
      請參考DEMO0.C
    2. I-7188X 使用的 RTC 的日期可以適用到 2080 年

  7. EEPROM
  8. EEPROM
    EnableEEP()設定成可以寫入資料到EEPROM。
    ProtectEEP()設定成無法寫入資料到EEPROM。
    ReadEEP()讀取EEPROM的資料。
    WriteEEP()寫入資料到EEPROM。
    相關說明:
    1. 存在EEPROM裡頭的資料在系統斷電後仍不會消失。
    2. EEPROM的容量是2048 Bytes。。
    3. 每次讀寫都是一個Byte。
    4. 適合用來存變化不是非常頻繁的資料。例如USER ID,PASSWORD,或其他系統設定值。
    5. 可以重複寫入100萬次沒問題。
    New functions for EEPROM(10/17/2000新增)
    EE_WriteEnable()設定成可以寫入資料到EEPROM。
    EE_WriteProtect()設定成無法寫入資料到EEPROM。
    EE_RandomRead()讀取EEPROM的資料。一次一個byte。
    EE_RandomWrite()寫入資料到EEPROM。一次一個byte。
    EE_ReadNext()讀取EEPROM下一個位址的資料。一次一個byte。(可以跨block)
    EE_MultiRead()讀取EEPROM的資料。最多一次讀取2048 bytes(全部)。
    EE_MultiWrite()寫入資料到EEPROM。最多可一次寫入16 bytes。(同一個block)
    相關說明:
    1. 這組新的副程式請不要跟上一組混合使用。
    2. EE_MultiWrite寫入一個byte跟寫入16 bytes的時間差不了多少。 EE_MultiWrite寫入16 bytes的時間比EE_RandomWrite寫入16 bytes的時間快多了。
    3. 可以一次讀或寫多個Bytes。

  9. Flash Memory
  10. Flash Memory
    FlashReadId讀取FLASH MEMORY的型號。
    FlashRead讀取LASH MEMORY的資料。一次一個Byte。
    FlashWrite寫入資料到FLASH MEMORY。一次一個Byte。
    FlashErase清除FLASH MEMORY的資料,每次是一個SECTOR,大小64K BYTES。
    相關說明:
    1. 7188XC的FLASH有兩種大小,256K及512K。用FlashReadId讀回的值可以判別,最簡單的方法是用Is7188x(),傳回256就是256K,傳回512就是512K。
    2. MiniOS7佔用FLASH的最後64K。其他的空間用來放檔案或是USER的資料。 使用LOAD命令來DOWNLOAD檔案到7188XC/7521就是存放在FLASH裡頭。
    3. 存在FLASH內的資料也不會因斷電而消失。
    4. 7188XC/7521所使用的FLASH的一個特性就是寫入資料時,資料只能由1變成0。 也就是說當呼叫FlashWite()時,新舊資料有不同的地方如果都是1變成0就可以寫入成功,如果有0變成1的地方就會寫入失敗。
    5. FlashErase()就是當要重新寫入資料之前,用來把所有的資料都清成1, 以便任意的資料都可以再寫進去。但是這個動作一次要清除64K的資料。 所以用FLASH來存放收集到的資料時要好好規劃寫入,讀取,及清除的順序。 以便充分利用FLASH。
    6. FLASH可以重複寫入10萬次。
    7. FLASH另一個好處是CPU可以直接讀到存在裡頭的值(MiniOS7就是放在裡頭直接執行的), 所以有些固定不變的資料可以放在FLASH裡頭,程式一樣可以直接讀到,可以減少一些程式對SRAM的需求。

  11. COM port 及對 I-7000 收送命令
  12. COM1(RS-232/RS-485)
    InstallCom(1/2/3/4,...)
    InstallCom1()
    InstallCom2()
    InstallCom3()
    InstallCom4()
    安裝程式庫提供的 COM1/2/3/4 的 DRIVER。
    RestoreCom(1/2/3/4)
    RestoreCom1()
    RestoreCom2()
    RestoreCom3()
    RestoreCom4()
    解除安裝程式庫提供的 COM1/2/3/4 的 DRIVER。
    IsCom(1/2/3/4)
    IsCom1()
    IsCom2()
    IsCom3()
    IsCom4()
    判斷 COM1/2/3/4 是否有收到資料。
    ReadCom(1/2/3/4)
    ReadCom1()
    ReadCom2()
    ReadCom3()
    ReadCom4()
    從 COM1/2/3/4 的 INPUT BUFFER 讀入資料。
    ToCom(1/2/3/4,)
    ToCom1()
    ToCom2()
    ToCom3()
    ToCom4()
    從 COM1/2/3/4 送出資料。
    WaitTransmitOver(1/2/3/4)
    WaitTransmitOver1()
    WaitTransmitOver2()
    WaitTransmitOver3()
    WaitTransmitOver4()
    等待資料從 COM1/2/3/4 全部送出。
    Set485DirToTransmit(1/2)設定 COM1/2 的 RS-485 成送出資料的模式。
    Set485DirToReceive(1/2)設定 COM1/2 的 RS-485 成接收資料的模式。
    相關說明:
    1. COM1 有RS-232及RS-485兩種介面,user 要用 jumpper 來選擇,預設的介面是 RS-232。 RS-485介面內不含Self-Tuner
    2. 要執行 InstallCom1/2/3/4( ) 後才能使用IsCom1/2/3/4,ReadCom1/2/3/4,ToCom1/2/3/4。
    3. 也可以用 InstallCom(1,...),IsCom(1),ReadCom(1),ToCom(1,),RestoreCom(1)。
    4. 要用 ReadCom1/2/3/4 之前請先呼叫 IsCom1/2/3/4 確認有資料在 COM1/2/3/4 的 Input buffer 才可以呼叫 ReadCom1/2/3/4。
    5. RS-485 平常應該保持在接收資料的模式
    6. 因為沒有 Self-Tuner,所以從 RS-485 送出資料前需要先下命令切換 RS-485 為送出資料的方向(Set485DirToTransmit), 然後再送出資料。送完資料後要先等待資料已經全部從 COM1/2 送出了(呼叫 WaitTransmitOver1/2),再下命令將 RS-485 的方向切回接收的模式(Set485DirToReceive)。
    7. COM4 在還沒有呼叫 InstallCom4 之前就可以使用了。但不是用IsCom4, ReadCom4, ToCom4, 而是用 kbhit, getch, putch, puts, printf, scanf 等副程式。一般而言用這一些就夠用了, 除非 USER 想要有更大的 Input/Output buffer。
    8. I-7188 的COM1/COM2 是使用 16550 ,但是中斷的處理I/O ports 跟 PC 並不相容。
    9. I-7188 的COM3/COM4 是使用 CPU 內部提供的 UART,與 16550 並不相容。

  13. Timer
  14. System Timer
    TimerOpen安裝程式庫提供的Timer功能。
    TimerClose解除安裝程式庫提供的Timer功能。
    StopWatchStart碼錶開始計時。
    StopWatchReadValue讀取碼錶的值。
    InstallUserTimer安裝USER自己的TIMER程式。
    相關說明:
    1. 程式庫提供的Timer副程式可以準確到1ms的計時。
    2. 有8個StopWatch及8個CountDownTimer可以用。
    3. USER也可以安裝自己的Timer副程式,每1ms這個副程式會被呼叫一次。 所以這個副程式不可以佔用太多時間。適合用來固定時間檢查某一個狀況有沒有發生。

  15. WatchDog Timer
  16. WDT(WatchDog Timer)
    EnableWDT設定成由USER的程式處理WatchDog Timer。
    RefreshWDTRESET WATCHDOG TIMER
    DisableWDT設定由系統的TIMER中斷程式控制WatchDog Timer。
    相關說明:
    1. 7188XC的WatchDog Timer是一直啟動,無法停用的。 如果最長1.6秒沒有送出RESET WDT的信號,WDT就會送出RESET信號讓CPU RESET。
    2. 在USER程式呼叫EnableWDT()之前,由系統的TIMER中斷副程式負責送出RESET WDT的信號。 所以USER的程式不可以DISABLE中斷超過1.6秒。
    3. 在USER程式呼叫EnableWDT()之後,就必須呼叫RefreshWDT()來送出RESET WDT之信號。
    4. 正確的使用WDT可以有效的防止系統死當。
    5. 一般使用WDT的程式架構如下:

    6. quit=0;
      EnableWDT( );
      while (!quit) {
       RefreshWDT( );
       OtherUserFunction( );
      }
      DisableWDT( );


回主目錄
I-7188入門課程 1.10版 〔by:蔡坤廷〕 〔本檔最後修改日期:10/25/2000〕