芯片复制MC9S12XDP512飞思卡尔串口发送XDP512源程序
芯片复制MC9S12XDP512双核处理器的串口程序,带操作系统UCOSII。
芯片复制单片机源程序如下:
- 芯片复制#include "includes.h"
- 芯片复制extern word Period[8],Duty[8];
- 芯片复制#define TASK_STK_SIZE 128 /* static size */
- OS_STK TaskStartStk[TASK_STK_SIZE]; /*定义任务的堆栈空间*/
- OS_STK TaskStartStkA[TASK_STK_SIZE]; /*定义任务A的堆栈空间*/
- OS_STK TaskStartStkB[TASK_STK_SIZE]; /*定义任务B的堆栈空间*/
- OS_STK TaskStartStkC[TASK_STK_SIZE]; /*定义任务C的堆栈空间*/
- OS_STK TaskStartStkD[TASK_STK_SIZE]; /*定义任务D的堆栈空间*/
- OS_STK TaskStartStkE[TASK_STK_SIZE]; /*定义任务D的堆栈空间*/
- OS_STK TaskStartStkF[TASK_STK_SIZE]; /*定义任务D的堆栈空间*/
- void TaskStart(void *data);
- void TaskStartA(void *data); /*声明任务A的函数原型*/
- void TaskStartB(void *data); /*声明任务B的函数原型*/
- void TaskStartC (void *pdata);
- void TaskStartD (void *pdata);
- void TaskStartE (void *pdata);
- void TaskStartF (void *pdata);
- void DATA_Init();
- #define ROUTE_INTERRUPT(vec_adr, cfdata) \
- INT_CFADDR= (vec_adr) & 0xF0; \
- INT_CFDATA_ARR[((vec_adr) & 0x0F) >> 1]= (cfdata)
-
- static void SetupXGATE(void) {
- XGVBR= (unsigned int)(void*__far)(XGATE_VectorTable - XGATE_VECTOR_OFFSET);
- ROUTE_INTERRUPT(TIMER_OVERFLOW, 0x86); /* RQST=1 and PRIO=1 */
- ROUTE_INTERRUPT(CAPTURE_CH0, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH1, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH2, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH3, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH4, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH5, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH6, 0x87);
- ROUTE_INTERRUPT(CAPTURE_CH7, 0x87);
- ROUTE_INTERRUPT(ATD0, 0x81);
- ROUTE_INTERRUPT(ATD1, 0x81);
- ROUTE_INTERRUPT(SPI0, 0x84);
- ROUTE_INTERRUPT(SPI1, 0x84);
- ROUTE_INTERRUPT(RTI, 0x85);
- ROUTE_INTERRUPT(MODULUS_UNDERFLOW, 0x82);
- XGMCTL= 0xFBC1; /* XGE | XGFRZ | XGIE */
- }
- void main (void)
- {
-
- DisableInterrupts;
- DATA_Init();
- MCU_Init();
- SetupXGATE();
- OSInit(); /* initial UCOS-II 系统初始化函数*/
- OSTaskCreate(TaskStart , (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 8);
- OSTaskCreate(TaskStartA, (void *)0, &TaskStartStkA[TASK_STK_SIZE - 1], 3);
- OSTaskCreate(TaskStartB, (void *)0, &TaskStartStkB[TASK_STK_SIZE - 1], 4);
- OSTaskCreate(TaskStartC, (void *)0, &TaskStartStkC[TASK_STK_SIZE - 1], 5);
- OSTaskCreate(TaskStartD, (void *)0, &TaskStartStkD[TASK_STK_SIZE - 1], 6);
- OSTaskCreate(TaskStartE, (void *)0, &TaskStartStkE[TASK_STK_SIZE - 1], 7);
- OSTaskCreate(TaskStartF, (void *)0, &TaskStartStkF[TASK_STK_SIZE - 1], 9);
-
- EnableInterrupts;
-
- OSStart(); /* 开始多任

芯片解密