#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
/********************CLOCK**************************/
//函数名 : initial_pll(void)
//功能 : 初始化时钟
//入口参数: 无
//全局变量: 无
//返回参数: 无
//说明 : 总线时钟为 24MHz ,片内系统时钟为 48MHz
//说明 PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
//说明 =2*16M*(2+1)/(1+1)
//说明 =24M
/***************************************************/
void initial_pll (void)
{
REFDV=0x01;
SYNR =0x02;
while (!(CRGFLG & 0x08)) /*till VCO run stable*/
{ }
CLKSEL=0x80; /*PLL Clock Enable*/
}
/**************************PORT*****************************/
//函数名 : init_port(void)
//功能 : 初始化端口 PORTA PORTB PORTH
//入口参数: 无
//全局变量: 无
//返回参数: 无
//说明 : PORTA PORTB 用于采集传感器的数据 PTH_PTH1为开关
/***********************************************************/
void init_port(void)
{
DDRB =0; /*PORTB 为输入 */
DDRA &=0xF0; /*PORTA 的前4 个BIT0~BIT3 为输入*/
DDRH_DDRH1=0; /*PTH的端口1为输入*/
PTH_PTH1 =0;
}
/***************************SERVO*****************************/
//函数名 : init_pwm1(void)
//功能 : 初始化pwm1,产生频率为 200Hz的用于控制舵机转向的信号
//入口参数: 无
//全局变量: 无
//返回参数: 无
//说明 : 无
/*************************************************************/
void init_pwm1(void)
{
PWME &=0XFC; /*Disable PWM1*/
PWMPRCLK &=0xF0; /*BUS /1*/
PWMCLK |=0X02; /*选 CLOCKA*/
PWMSCLA =0X03; /*CLOCKA=BUS /(2 *3)=4000000*/
PWMPOL |=0X03; /*PWMchannel 1 output is high at the beginning of the period*/
PWMCAE &=0XFC; /* 左对齐*/
PWMCTL |=0x10; /*选 PWM1 为16位*/
PWMPER0 =0x4E;
PWMPER1 =0x20; /*设定周期为 1000 再结合上面就可得到200HZ 的脉冲*/
PWMDTY0 =0x17;
PWMDTY1 =0x70; /*1.5MS 默认车不转向*/
PWME_PWME1 =1; /*Enable PWM1*/
}
/************************ DC MOTOR_2 **************************/
//函数名 : init_pwm2(void)
//功能 : 初始化pwm2,产生频率为 1.5625KHz的用于控制电机正转的信号
//入口参数: 无
//全局变量: 无
//返回参数: 无
//说明 : 无
/****************************************************************/
void init_pwm2 (void)
{
PWME_PWME2 = 0; /*Disable PWM2*/
PWMCLK_PCLK2 = 0; /*选CLOCKB*/
PWMPRCLK |= 0x70; /*128 分频*/
PWMPOL_PPOL2 = 1; /*output is high at the beginning of the period*/
PWMCAE_CAE2 = 0; /*选择所要产生的方波的对齐方式,先高后低*/
PWMPER2 = 120; /*dedicated period register for channel 2*/
PWMDTY2 = 0; /*初始化占空比为0*/
PWME_PWME2 = 1; /*Enable PWM2*/
}
/************************ DC MOTOR_1 **************************/
//函数名 : init_pwm3(void)
//功能 : 初始化pwm3,产生频率为 1.5625KHz的用于控制电机反转的信号
//入口参数: 无
//全局变量: 无
//返回参数: 无
//说明 : 无
/****************************************************************/
void init_pwm3 (void)
{
PWME_PWME3 =0; /*Disable PWM3*/
PWMCLK_PCLK3 =0; /*选CLOCKB*/
PWMPRCLK |=0x70; /*128 分频*/
PWMPOL_PPOL3 = 1; /*output is high at the beginning of the period*/
PWMCAE_CAE3 = 0; /*选择所要产生的方波的对齐方式,先高后低*/
PWMPER3 = 120; /*dedicated period register for channel 3*/
PWMDTY3 = 0; /*初始化占空比为0*/
PWME_PWME3 = 1; /*Enable PWM3*/
}
/*************************MCCNT*****************************/
//函数名 : init_MCCNT(void)
//功能 : 初始化模下计数器,定时间隔为 10ms
//入口参数: 无
MC9S12XS128智能小车源程序.rar
4星 · 超过85%的资源 需积分: 10 91 浏览量
2011-09-11
09:38:45
上传
评论 1
收藏 6KB RAR 举报
xuelinzi
- 粉丝: 0
- 资源: 6
最新资源
- 高性能量化工具 hikyuu 2.0.3 python3.9 ubuntu 安装包
- Cyclone Version 9.51
- 高性能量化回测工具 hikyuu 2.0.3 python 3.12 windows 安装包
- 省级城乡居民基本养老保险情况数据集(2010-2022年).xlsx
- 舞队填写版.cpp
- 基于BP神经网络的多输入单输出回归预测.zip
- 高性能量化回测工具 hikyuu 2.0.3 python 3.9 windows 安装包
- 省级城镇职工基本养老保险情况2000-2022年.xlsx
- 高性能量化回测工具 hikyuu 2.0.3 python 3.10 windows 安装包
- 算法部署-使用OpenVINO+C#部署PaddleOCR字符识别算法-项目源码-优质项目实战.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈