📄 main.c
字号:
#include "..\Ports\includes.h"
#include "lcd.c"
#define TASK_STK_SIZE 128
OS_STK TaskSTK[TASK_STK_SIZE];
OS_STK TaskSTK2[TASK_STK_SIZE];
OS_EVENT *pSem;
void print_task(void *data)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
INT8U err;
data=data;
//LCD init.
P4SEL=0x00; /*所有P4口线均为I/O端 */
P4DIR|=BIT3+BIT4+BIT6;/*将/CS、/WR、DATA置输出模式*/
Lcd_InitCommand(0x00);
Lcd_InitCommand(0x29);
Lcd_InitCommand(0x18);
Lcd_InitCommand(0x01);
Lcd_InitCommand(0x03);
LCD[0]=0;
LCD[1]=1;
LCD[2]=0;
LCD[3]=0;
for(;;){
OSSemPend(pSem,50,&err);
OS_ENTER_CRITICAL();
display_valve();
display_mode();
OS_EXIT_CRITICAL();
//OSTimeDly(63);/*1S delay*/
}
}
void task(void *pdata){
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
pdata=pdata;
LCD[2]=1;
LCD[3]=2;
for(;;){
OS_ENTER_CRITICAL();
display_valve();
display_mode();
LCD[2]=(LCD[2]+1)%10;
LCD[3]=(LCD[3]+1)%10;
OS_EXIT_CRITICAL();
OSSemPost(pSem);
OSTimeDlyHMSM(0,0,1,0);/*2S delay*/
}
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
OSInit();
pSem = OSSemCreate(1);
OSTaskCreate(print_task,(void *)0,&TaskSTK[TASK_STK_SIZE-1],0);
OSTaskCreate(task, (void *)0,&TaskSTK2[TASK_STK_SIZE-1],5);
WDTCTL = WDT_ADLY_16; /* WDT is clocked by fACLK (32KHz) */
IE1|=WDTIE;
OSStart();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -