⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机实现消息队列的例子
💻 C
字号:
#include "define.h"
#include "message.h"
#include "interrupt.h"
#include "system.h"
#include "max6955.h"
#ifdef SMTIMER
#include "smarttimer.h"
#endif
#ifdef RTC
#include "rtc.h"
#endif
#ifdef UART
#include "uart.h"
#endif
#ifdef KEYBOARD
#include "keyboard.h"
#endif
#ifdef LED
#include "led.h"
#endif
#ifdef LCD
#include "lcd.h"
#endif
#ifdef ADC
#include "adc.h"
#endif
#ifdef DAC
#include "DAC.h"
#endif
#ifdef WATCHDOG
#include "watchdog.h"
#endif
#ifdef PSM
#include "PSM.h"
#endif
#ifdef I2C
#include "I2C.h"
#endif
void SystemInit(void)
{
	#ifdef SMTIMER
	Timer2Init();
	#endif
	#ifdef RTC
	RtcInit();
	#endif
	#ifdef UART
	UartInit();
	#endif
	#ifdef ADC
	ADCInit();
	#endif
	#ifdef DAC
	DACInit();
	#endif
	#ifdef WATCHDOG
	WatchdogInit();
	#endif
	#ifdef PSM
	PSMInit();
	#endif
	#ifdef I2C
	I2CInit();
	#endif
	InterruptInit();
	#ifdef LED
	LedInit();
	#endif
	#ifdef LCD
	LcdInit();
	#endif
	#ifdef KEYBOARD
	KeyInit();
	#endif
}
void main(void)
{
	byte nSampleData;
	nSampleData=0;
	SystemInit();					/*r初始化进程*/
	LEDWrite(0,0);
	P2=0xff;
	/****************************************************/
	RtcSetTime(9,40,0);
	while(TRUE)
	{
		MsgQueueOut();
		switch(g_MsgTypeReturn)						/*r根据消息队列的取值进行处理*/
		{
			#ifdef KEYBOARD
			case MSG_KEY:						/*r若是按键消息*/
				KeyProcess();
				break;
			#endif	
			#ifdef UART_RX
			case MSG_UART:						/*r若是串口通信消息,则进行串口通信处理*/
				UartProcess();
				break;
			#endif
			#ifdef RTC
			case MSG_RTC:
				LEDWrite(LED0,g_RTCMember.hour/10);
				LEDWrite(LED1,g_RTCMember.hour%10);
				LEDWrite(LED2,g_RTCMember.minute/10);
				LEDWrite(LED3,g_RTCMember.minute%10);
				LEDWrite(LED4,g_RTCMember.second/10);
				LEDWrite(LED5,g_RTCMember.second%10);
				break;
			#endif	
			case MSG_ADC:
				nSampleData=ADCIn(5);
				UartSend(&nSampleData,2);
				LEDWrite(0,nSampleData%10);
				break;
			default:
				break;
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -