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

📄 main.c

📁 本人s12的一部分机器人巡线程序
💻 C
字号:
#include <hidef.h>      /* common defines and macros */

#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

#include "includes.h"
#define EXT
#include "main.h" 

#define __cplusplus

OS_EVENT *Follow_Semp;//数线信号量
OS_EVENT *Swerve_Semp;//转弯信号量
OS_EVENT *Snath_Semp;
OS_EVENT *Updown_Semp;
OS_EVENT *HostServantComm_Semp;

void main(void)
{
	PLL_Init(3,1);//PLL锁相环倍频 使用8.4672M晶振和使用16M晶振的时候注意修改锁相环的值 void PLL_Init(uchar synr,uchar refdv)
	EnableInterrupts;
	DDRA=0xFF;
	DDRB=0xFF;
	DDRK&=0xDF;
	DDRK|=16;
	key_Comm=FALSE;//没有加锁向电脑通信
	HardwareInit();
	OSInit();

	Semprintp=OSSemCreate(1);
	TaskStartData.PPAGE               = 0x38;
	Task_FollowLineData.PPAGE         = 0x39;
	Task_LineCounterData.PPAGE        = 0x39;
	Task_SpreadShortData.PPAGE        = 0x39;
	Task_SwerveData.PPAGE             = 0x3A;
	Task_SnatchData.PPAGE             = 0x3B;
	Task_UpdownData.PPAGE             = 0x3C;
	Task_HostServantCommData.PPAGE    = 0x3D;

/*创建任务有两种方式:
OSTaskCreate(
              void(*task)(void *pd), //指向任务的指针
              void *pdata,           //传递给任务的参数
              OS_STK *ptos,          //指向任务堆栈栈顶的指针
              INT8U prio             //任务的优先级
            );
OSTaskCreateExt(
                  void      (*task)(void *pd),   //指向任务的指针
                  void      *pdata,              //传递给任务的参数
                  OS_STK    *ptos,               //指向任务堆栈栈顶的指针
                  INT8U     prio,                //任务的优先级
                  INT16U    id,                  //任务的标识
                  OS_STK    *pbos,               //任务堆栈栈底的指针
                  INT32U    stk_size,            //任务堆栈的容量
                  void      *pext,               //指向附加数据域的指针
                  INT16U    opt                  //用于设定操作选项
               );
*/	
	OSTaskCreate((void *)0x8000, (void*)&TaskStartData, (void*)&TaskStartStk[TASK_STK_SIZE-1], 8);
	OSTaskCreate((void *)0x8000, (void*)&Task_FollowLineData, (void*)&Task_FollowLineStk[TASK_STK_SIZE-1], 9);
	OSTaskCreate((void *)0x80EA, (void*)&Task_LineCounterData, (void*)&Task_LineCounterStk[TASK_STK_SIZE-1], 10);	
  OSTaskCreate((void *)0x8100, (void*)&Task_SpreadShortData,(void*)&Task_SpreadShortStk[TASK_STK_SIZE-1],11);
	OSTaskCreate((void *)0x8000, (void*)&Task_SwerveData, (void*)&Task_SwerveStk[TASK_STK_SIZE-1], 12);
	OSTaskCreate((void *)0x8000, (void*)&Task_SnatchData, (void*)&Task_SnatchStk[TASK_STK_SIZE-1], 13);
	OSTaskCreate((void *)0x8000, (void*)&Task_UpdownData, (void*)&Task_UpdownStk[TASK_STK_SIZE-1], 14);
  OSTaskCreate((void *)0x8000, (void*)&Task_HostServantCommData,(void*)&Task_HostServantCommStk[TASK_STK_SIZE-1],15);
	OSStart();
}

⌨️ 快捷键说明

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