📄 sample_main.c
字号:
/*******************************************************************************
** AVR GUI v2.0 **
** **
** **
** Build by GUI Builder v2.0.0.10 **
** Program by aleyn.wu **
** e-mail:aleyn@e-midas.cn **
** **
********************************************************************************
** **
** Menu Author : **
** Last update : 2008-06-19 09:23 **
** **
*******************************************************************************/
#include <Mega16.h>
#include <Delay.h>
#include "Sample.h"
BYTE LED_FlashType=0;
#define LED_TYPE_STOP 0
#define LED_TYPE_NUM_INC 1
#define LED_TYPE_NUM_DEC 2
#define LED_TYPE_SHIFT_LEFT 3
#define LED_TYPE_SHIFT_RIGHT 4
#define LED_TYPE_NUM_XOR 5
#include "Sample_Event.c"
/*******************************************************************************
** 函数名称: timer0_ovf_isr **
** 功能描述: 时间中断函数 **
** 输入参数: 无 **
** 输出参数: 无 **
*******************************************************************************/
BYTE TimeInt=0;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TimeInt = 1;
}
/*******************************************************************************
** 函数名称: TIMER0_Init **
** 功能描述: TIMER0 定时器初始化 **
** 输入参数: 无 **
** 输出参数: 无 **
*******************************************************************************/
void TIMER0_Init(void)
{
TCCR0 = 0x00;
TCNT0 = 0x00;
OCR0 = 0x00;
TIMSK |= 0x01;
TCCR0 = 0x4D;
}
/*******************************************************************************
** 函数名称: PORT_Init **
** 功能描述: MCU的端口初始化 **
** 输入参数: 无 **
** 输出参数: 无 **
*******************************************************************************/
void PORT_Init(void)
{
DDRC = 0xFF;
PORTC = 0xFF;
}
/*******************************************************************************
** 函数名称: DisplayVersion **
** 功能描述: 显示自己的版本 **
** 输入参数: 无 **
** 输出参数: 无 **
*******************************************************************************/
void DisplayVersion(void)
{
LCD_Clear();
LCD_Position(1,1);
LCD_PutStrF("GUI Builder");
LCD_Position(2,1);
LCD_PutStrF("Version 2.0");
}
/*******************************************************************************
** 函数名称: main **
** 功能描述: 主程序 **
** 输入参数: 无 **
** 输出参数: 无 **
*******************************************************************************/
void main(void)
{
BYTE cnt100MS=0;
BYTE OldKey=NO_KEY;
BYTE KeyDelay=0;
BYTE LedDelay;
BYTE LedData;
PORT_Init();
TIMER0_Init();
LCD_Init();
delay_ms(100);
KEY_Init();
GUI_Init();
DisplayVersion();
CTV_DELAY_TIME = 5;
LedDelay = CTV_DELAY_TIME;
LedData = 0;
#asm("sei");
while (1)
{
if (TimeInt)
{
TimeInt = 0;
cnt100MS++;
if (KeyDelay<100) KeyDelay ++;
GUI_ProgressMessage();
}
if (cnt100MS >=6)
{
cnt100MS = 0;
Key = KEY_GetChar();
if (Key!=NO_KEY)
{
if (Key==OldKey)
{
if (KeyDelay>2)
{
OldKey=Key;
KeyDelay=0;
}
else
{
Key=NO_KEY;
}
}
else
{
OldKey=Key;
KeyDelay=0;
}
}
if (LedDelay==0)
{
switch (LED_FlashType)
{
case LED_TYPE_NUM_INC:{LedData++;break;}
case LED_TYPE_NUM_DEC:{LedData--;break;}
case LED_TYPE_SHIFT_LEFT:{LedData=(LedData<<1)|(LedData>>7);break;}
case LED_TYPE_SHIFT_RIGHT:{LedData=(LedData>>1)|(LedData<<7);break;}
case LED_TYPE_NUM_XOR:{LedData^=0xFF;break;}
}
LedDelay = CTV_DELAY_TIME;
}
else
LedDelay -- ;
if ( LED_FlashType != LED_TYPE_STOP )
PORTC = ~LedData;
else
PORTC = 0xFF;
}
};
}
/*******************************************************************************
** END OF FILE **
*******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -