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

📄 main.c

📁 ucos再tms320lf2407上的移植程序
💻 C
字号:
/*******************************************************************************
* Module    :   main.c
*
* Purpose   :   First bit of 'C' code that executes after startup (see boot.asm).
;				Starts up the operating system, uC/OS.
*
* Language  :   'c'
*
* Written   :   Kirby W. Cartwright, The Vanner Power Group, 06/29/98
*
* Modified  :
*
* Project   :   Vanner Power Group Modular Controller Project PX-02.
*
* Copyright :   (C) copyright 1998 by Vanner, Inc.  All Rights Reserved.
*
* Notes     :
*
* Unit Tested:
*
*******************************************************************************/
#define	LEDS	0x000C					/* LEDs Register	
#include <ioports.h>
#include <time.h>    */
#include "includes.h"

extern void KickDog(void);
OS_STK Task0[OS_TASK_IDLE_STK_SIZE];
OS_STK Task1[OS_TASK_IDLE_STK_SIZE];
OS_STK Task2[OS_TASK_IDLE_STK_SIZE];
OS_STK Task3[OS_TASK_IDLE_STK_SIZE];

static void TimeOfDayTask0(void *); 
static void TimeOfDayTask1(void *);
static void TimeOfDayTask2(void *);
/*******************************************************************************
*
* Routine	:   main
*
* Purpose   : 	Initialize further hardware, start multitasking.
*
* Inputs    :   None (void).
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).
*
* Note(s)	:
*
*******************************************************************************/
void main(void)
	{
	int i;
	extern void ConfigureWatchDog(void);
    ConfigureWatchDog();
	OSInit();
	OSTaskCreate(TimeOfDayTask0,(void *)&i,(void *)&Task0[OS_TASK_IDLE_STK_SIZE], 10);       
	OSTaskCreate(TimeOfDayTask1,(void *)&i,(void *)&Task1[OS_TASK_IDLE_STK_SIZE], 30); 
	OSTaskCreate(TimeOfDayTask2,(void *)&i,(void *)&Task2[OS_TASK_IDLE_STK_SIZE], 1); 
    OSStart();                                             /* Start multitasking */
	}

/*******************************************************************************
*
* Routine	:   void abort(void)
*
* Purpose   : 	Satisfy a link requirement.
*
* Inputs    :   None (void).
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).
*
* Note(s)	:   Should never get here.  Should add code to annunciate if we
*				ever do.
*
*******************************************************************************/
/*void abort(void)
	{
    while (1);
    }*/
/*******************************************************************************
*
* Routine	:   void interrupt DefaultISR(void)
*
* Purpose   : 	Supply a default ISR for unused vectors.
*
* Inputs    :   None (void).
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).
*
* Note(s)	:   Should add code to annunciate if we ever get here.
*
*******************************************************************************/
void interrupt DefaultISR(void)
	{
    }
/*******************************************************************************
*
* Task		:   void TimeOfDayTask(void *j);
*
* Purpose   : 	Time of day task.
*
* Inputs    :   Pointer to context?  Pointer to time/date structure.
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).  Should never return.
*
* Note(s)	:   Should add code to go update global time and date structures.
*				Y2K compliant.
*				Should add code to initialize from hardware RTC on power-up.
*				The actual interrupt rate is 15625/256=61.03515625 Hz.
*
*******************************************************************************/

void TimeOfDayTask0(void *j)
	{
   /* volatile INT8U LEDTick=0;*/ 
   		asm("        LDP	#0E8H");
        asm("        LACC	4");
        asm("        OR		#040H");
        asm("        SACL	4");
    while (1)
    	{    
    	asm("        .bss	B,1,1");
    	asm("        LDP	#0111H");
        asm("        SPLK	#0FFFH,B");
        asm("        OUT	B,0000H");
        asm("        OUT	B,0004H");
        asm("        RPT	#255");
        asm("        NOP");
        asm("        RPT	#255");
        asm("        NOP");
        asm("        SPLK	#0H,B");
        asm("        OUT	B,0000H");
        asm("        OUT	B,0004H");  
        OSTimeDly(OS_TICKS_PER_SEC);
        }
    }        
/*******************************************************************************
*
* Task		:   void TimeOfDayTask(void *j);
*
* Purpose   : 	Time of day task.
*
* Inputs    :   Pointer to context?  Pointer to time/date structure.
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).  Should never return.
*
* Note(s)	:   Should add code to go update global time and date structures.
*				Y2K compliant.
*				Should add code to initialize from hardware RTC on power-up.
*				The actual interrupt rate is 15625/256=61.03515625 Hz.
*
*******************************************************************************/

void TimeOfDayTask1(void *j)
	{
   /* volatile INT8U LEDTick=0;*/
    while (1)
    	{    
    /*	asm("        .bss	B,1,1");*/
    	asm("        LDP	#0111H");
        asm("        SPLK	#0FFFH,B");
        asm("        OUT	B,0000H");
        asm("        OUT	B,0004H");
        asm("        RPT	#255");
        asm("        NOP");
        asm("        RPT	#255");
        asm("        NOP");
        asm("        SPLK	#0H,B");
        asm("        OUT	B,0000H");
        asm("        OUT	B,0004H");  
        OSTimeDly(2*OS_TICKS_PER_SEC);
        }
    }        
/*******************************************************************************
*
* Task		:   void TimeOfDayTask(void *j);
*
* Purpose   : 	Time of day task.
*
* Inputs    :   Pointer to context?  Pointer to time/date structure.
*
* Globals	:	None.
*
* Outputs (Returns):
*				None (void).  Should never return.
*
* Note(s)	:   Should add code to go update global time and date structures.
*				Y2K compliant.
*				Should add code to initialize from hardware RTC on power-up.
*				The actual interrupt rate is 15625/256=61.03515625 Hz.
*
*******************************************************************************/

void TimeOfDayTask2(void *j)
	{
   /* volatile INT8U LEDTick=0;*/
    while (1)
    	{    
    /*	asm("        .bss	B,1,1");*/
    	asm("        LDP	#0111H");
        asm("        SPLK	#0FFFH,B");
        asm("        OUT	B,0000H");
        asm("        OUT	B,0004H");
        asm("        RPT	#255");
        asm("        NOP");
        asm("        RPT	#255");
        asm("        NOP");
        asm("        SPLK	#0H,B");
        asm("        OUT	B,0000H");
        asm("        OUT	B,0004H");  
        OSTimeDly(0.5*OS_TICKS_PER_SEC);
        }
    }        

⌨️ 快捷键说明

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