/* DEMO96.c: Shows how to use the InstallUserTimer function to controll the 5-Digit 7-segment LED. Compiler: BC++ 3.1, Turbo C++ 1.01(3.01) (free from http://cc.codegear.com/free/cpp) MSC 6.0, MSVC 1.52. Compile mode: Large Project: DEMO96.c ..\..\Lib\(8000e.Lib, 7188el.Lib or 7186el.Lib) Hardware: i-7188/uPAC-7186/i-8000 Note: Function used: TimerOpen --> start to use timer TimerClose--> stop to use timer InstallUserTimer --> install user timer function 5DigitLed will show 0 to F, position 1 will be update every 1 sec position 2 will be update every 0.5 sec position 3 will be update every 0.4 sec position 4 will be update every 0.3 sec position 5 will be update every 0.2 sec [Oct 30, 2008] by Liam */ #include #include "..\..\lib\7186e.h" int Data[5]={0, 0, 0, 0, 0}; void MyTimerFun(void) { static int count[5]={0,0,0,0,0}; int i; for(i=0; i<5; i++){ count[i]++; } if(count[0]>=1000){ count[0]=0; Data[0]++; Data[0]&=0x0F; Show5DigitLedWithDot(1, Data[0]); } if(count[1]>=500){ count[1]=0; Data[1]++; Data[1]&=0x0F; Show5DigitLedSeg(2, Data[1]); } if(count[2]>=400){ count[2]=0; Data[2]++; Data[2]&=0x0F; Show5DigitLed(3, Data[2]); } if(count[3]>=300){ count[3]=0; Data[3]++; Data[3]&=0x0F; Show5DigitLed(4, Data[3]); } if(count[4]>=200){ count[4]=0; Data[4]++; Data[4]&=0x0F; Show5DigitLed(5, Data[4]); } } void main(void) { int quit=0; InitLib(); Print("Test User Timer Function & Show5DigitLed ...\r\n"); Print("Now every digit of Show5DigitLed will count in different speed\r\n"); Print("\r\nPress 'q' to quit\r\n"); Init5DigitLed(); TimerOpen(); LedOff(); InstallUserTimer(MyTimerFun); while(!quit) { if(Kbhit() && Getch()=='q') quit=1; } TimerClose(); LedOn(); }