main.c

来自「嵌入式操作系统ucosii在msp430CPU中的移植代码」· C语言 代码 · 共 72 行

C
72
字号
#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 + =
减小字号Ctrl + -
显示快捷键?