64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
#include "Key.H"
|
|
#include "STC15F2K60S2.H"
|
|
#include "adc.h"
|
|
#include "displayer.h"
|
|
#include "sys.H"
|
|
#include "universal_decode_table.h"
|
|
|
|
code unsigned long SysClock = 11059200; //必须。定义系统工作时钟频率(Hz),用户必须修改成与实际工作频率(下载时选择的)一致
|
|
|
|
char lPos = 4, rPos = 3;
|
|
|
|
// change the i-th bit of char to t
|
|
char change_bit(char i, char t, char c)
|
|
{
|
|
char temp;
|
|
temp = c;
|
|
if (t == 0)
|
|
temp &= ~(1 << i);
|
|
else
|
|
temp |= (1 << i);
|
|
return temp;
|
|
}
|
|
|
|
void navigate()
|
|
{
|
|
char l, r;
|
|
l = GetAdcNavAct(enumAdcNavKeyLeft);
|
|
r = GetAdcNavAct(enumAdcNavKeyRight);
|
|
if (l == enumKeyPress)
|
|
{
|
|
lPos = (lPos + 1) % 8;
|
|
}
|
|
if (r == enumKeyPress)
|
|
{
|
|
rPos = rPos - 1;
|
|
if (rPos < 0)
|
|
rPos = 7;
|
|
}
|
|
}
|
|
|
|
void displayLed()
|
|
{
|
|
char led = 0x00;
|
|
led = change_bit(lPos, 1, led);
|
|
led = change_bit(rPos, 1, led);
|
|
LedPrint(led);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
DisplayerInit();
|
|
AdcInit(ADCincEXT);
|
|
SetDisplayerArea(0, 7);
|
|
Seg7Print(10, 10, 10, 10, 10, 10, 10, 10);
|
|
LedPrint(0x00);
|
|
SetEventCallBack(enumEventNav, navigate);
|
|
SetEventCallBack(enumEventSys10mS, displayLed);
|
|
MySTC_Init();
|
|
while (1)
|
|
{
|
|
MySTC_OS();
|
|
}
|
|
}
|