?? task.c~
字號:
#include <mega128.h>
#include "ucos_ii.h"
#include "lcd.h"
#include "lio.h"
#include "key.h"
#include "task.h"
#include "menu.h"
void KeyScanTask(void *p_arg);
void MenuProcTask(void *p_arg);
void MenuDispTask(void *p_arg);
void SecondTask(void *lcndata);
#define ADC_KEY_CHANNEL 0x40
static void KeyScanTask (void *p_arg)
{
INT8U i;
INT8U err;
INT16U ADC_key;
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
p_arg = p_arg; /* Prevent compiler warnings */
while (TRUE) /* Task body, always written as an infinite loop. */
{
OSTimeDly(2);
OS_ENTER_CRITICAL();
ADMUX = ADC_KEY_CHANNEL; //鍵盤掃描
ADC_key = ADCW;
OS_EXIT_CRITICAL();
key_scan(ADC_key);
if(F_KEY_OK == 1)
OSSemPost(KeySem);
OS_ENTER_CRITICAL();
ADCSRA &=~ (1<<ADIF) ;
ADCSRA |= (1 << ADSC); //*重新啟動ADC
OS_EXIT_CRITICAL();
}
}
//秒定時中斷
INT8U t1s;
static void SecondTask(void *lcndata)
{
lcndata=lcndata;
while(1)
{
t1s++;
PORTD ^= 0x01;
OSTimeDly(OS_TICKS_PER_SEC);
}
}
static void MenuProcTask(void *p_arg)
{
INT8U err;
p_arg = p_arg;
menu_init();
while (TRUE)
{
OSSemPend(KeySem,0, &err);
if(err == OS_NO_ERR)
{
menu_select(KEY_value);
F_KEY_OK = 0;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -