#include "8000.h" #include "8073.h" #define LedBattOn() SetLedL3(LED_ON) #define LedBattOff() SetLedL3(LED_OFF) #define LedCommOn() SetLedL2(LED_ON) #define LedCommOff() SetLedL2(LED_OFF) #define LedRunOn() SetLedL1(LED_ON) #define LedRunOff() SetLedL1(LED_OFF) #define T_half_sek 9 // T_half_sek=55ms*9=495ms #define T_sek 18 // T_sek=55ms*18=990ms int Led_Run_Mode=0; int Old_ReadInitPin_Value=-1; int Addr_8000,Numbers_Slot; unsigned int T_irq_Count=0,T_half_sek_Count=0,T_sek_Count=0; //--------------------------------------------------------------------------- int Start_ICPCON() { unsigned int i; int j; Print("Start ICP CON series i-8000\n\r"); Print("Flash memory: %d K\n\r",Is8000()); i=GetLibVersion(); Print("Version of MiniOS7 library: %d.%02d\n\r",i>>8,i&0xff); Print("Serial number= "); for(j=0;j<8;j++) { Print("%02X ",SystemSerialNumber[j]); } Print("\n\r"); Numbers_Slot=GetNumberOfSlot(); if (Numbers_Slot==4) Print("Embedded Controller I-84XX, 4 slots\n\r"); if (Numbers_Slot==8) Print("Embedded Controller I-88XX, 8 slots\n\r"); else { Print("Error 'GetNumberOfSlot' Embedded Controller series i-8000\n\r"); return -1; } for(j=0;j=500) { StopWatchReset(7); Led_Run_Mode=!Led_Run_Mode; if(Led_Run_Mode) LedRunOn(); else LedRunOff(); } } //--------------------------------------------------------------------------- void Menu() { if(IsSystemKey()) { switch(GetSystemKey()) { case SKEY_MODE: Print("MODE Key\n\r"); break; case SKEY_UP: Print("UP Key\n\r"); break; case SKEY_DOWN: Print("DOWN Key\n\r"); break; case SKEY_SET: Print("SET Key\n\r"); break; } } } //--------------------------------------------------------------------------- void Re_Program() { int i; i=ReadInitPin(); if(i==Old_ReadInitPin_Value) return; if(i) Print("Init pin is Close to COM\n\r"); else Print("Init pin is Open\n\r"); Old_ReadInitPin_Value=i; } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void Interrupt() { T_irq_Count+=1; if(T_irq_Count==T_half_sek) { T_irq_Count=0; if(T_half_sek_Count==65535) T_half_sek_Count=0; else T_half_sek_Count+=1; if(T_half_sek_Count&0x0001) { if(T_sek_Count==65535) T_sek_Count=0; else T_sek_Count+=1; } } Led_Run(); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void Happy_End() { Disable5DigitLed(); DisableWDT(); StopWatchStop(0); StopWatchStop(1); StopWatchStop(2); StopWatchStop(3); StopWatchStop(4); StopWatchStop(5); StopWatchStop(6); StopWatchStop(7); TimerClose(); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void main() { int i,j,k,Quit=0; if(!Is8000()) { Print("The program must run on I-8000"); return; } if(Start_ICPCON()) return; Addr_8000=GetNetId(); Print("NET ID Value=%d\n\r",Addr_8000); Init(); Init_8073(); InstallUserTimer1C(Interrupt); Print("Press any key\n\r"); Getch(); Recurrent_Init(); EnableWDT(); Print("Run main programm\n\r"); //--------------------------------------------------------------------------- Main_Loop: while(!Quit) { //--------------------------------------------------------------------------- All_Timer_s(); Menu(); Re_Program(); DelayMs(250); //Отладка DI_32(0); RefreshWDT(); // Timeout of WDT is 1.6 seconds //--------------------------------------------------------------------------- if(Kbhit()) { i=Getch(); if(i=='q'||i=='Q') Quit=1; } } //--------------------------------------------------------------------------- Exit: Happy_End(); } //--------------------------------------------------------------------------- //---------------------------------------------------------------------------