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

📄 main.c

📁 飞思卡尔嵌入式微处理器S12控制程序
💻 C
字号:
#include <hidef.h>      //基本定义和宏定义
#include <mc9s12dg128.h>     //硬件定义
#include "..\Sources\common_defs.h" //自定义常量

#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

//第三届“飞思卡尔杯“全国大学生智能汽车邀请赛
//MCS12主控制芯片处理程序
//上海东华大学2队
//队员:
//--梁霄(自动化系 硕士研究生)
//--朱汇中(自动化系 本科)
//--童牧(通信系 本科)
//编码人:梁霄
//最后更新时间:2008.06.05 23:28
//(C)版权所有。

//主程序
//文件名:main.c
//编码人:梁霄
//最后更新时间:2008.06.05 23:28

//全局变量定义
int timeOfMDCInterrupt = 0; //中断次数计数器
int incrementDirectionFlag = 0; //PWM占空比增长方向计数器

byte graph[GRAPHBLOCKNUM][MAX_LINES_PER_FIELD][MAX_DOTS_PER_LINE]; //图像采集存储区域,一共有两块,交替进行存储和处理

unsigned int centers[LINESOFGROUP]; //每组中每一行的中心位置
unsigned int finalCenter[GROUP]; //每组的平均中心位置

int lineCounter = 0; //行计数器
int dotCounter = 0; //列计数器

unsigned int canScan = 0; //允许采集控制标志
unsigned int isGraph1 = 0; //图像处理区域转换标志

unsigned int processAllow = 0; //已经转换完成,可以允许处理场标志
unsigned int skipLines = 0; //每场开始时跳过的无效行的计数器
unsigned int total = 0; //统计每组行中的黑线位置的总值

//各模块初始化例程,在inits_tasks.c中实现
void CRG_Init(void); //系统时钟初始化
void PORT_Init(void); //各端口初始化
void PWM_Init(void); //PWM初始化
void MDC_Init(void); //16位减计数器初始化
void IOC_Init(void); //输入捕捉初始化(用于捕捉奇偶场同步信号)
void IRQ_Init(void); //外部中断初始化(用于捕捉行同步信号)
void ATD_Init(void); //模数转换初始化

//中断服务例程,在interrupt_tasks.c中实现
interrupt 6 void IRQ_ISR(void); //行同步中断服务例程
interrupt 9 void IOC1_ISR(void); //奇偶场同步中断服务例程
interrupt 26 void MDC_ISR(void); //16位减计数器中断服务例程

//主函数中的循环任务例程,在common_tasks.c中实现
void SwitchRead(void); //控制开关读入例程
void DirectionAdjust(void); //舵机调节例程
void SpeedAdjust(void); //电机调节例程
void DataProcess(void); //数据处理代码
void Delay(long); //延时例程

void main(void) 
{
  
  //调用系统时钟初始化例程
  CRG_Init();
  //调用各端口初始化例程 
  PORT_Init();
  //调用PWM初始化例程 
  PWM_Init();
  //调用16位减计数器初始化例程
  MDC_Init();
  //调用输入捕捉初始化例程
  IOC_Init();
  //调用外部中断初始化例程
  IRQ_Init();
  //调用模数转换初始化例程
  ATD_Init(); 
  
  //允许中断
  EnableInterrupts; 

  for(;;) 
    {
      //读入控制开关
      //SwitchRead();
      //数据处理
      DataProcess();
      //舵机调节
      DirectionAdjust();
      //电机调节
      //SpeedAdjust();
    } 
}

⌨️ 快捷键说明

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