📄 main.c
字号:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#include "PLL.h"
#define RudderDefault 305
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
#define RudderSet PWMDTY67
signed int position;
void PWM_Init(void);
void main(void) {
DisableInterrupts;
PLL_Init();
PWM_Init();
for(;;){
position =25;
RudderSet = RudderDefault + position;
position =20;
RudderSet = RudderDefault + position;
position =15;
RudderSet = RudderDefault + position;
position =10;
RudderSet = RudderDefault + position;
position =5;
RudderSet = RudderDefault + position;
position =0;
RudderSet = RudderDefault + position;
position =-5;
RudderSet = RudderDefault + position;
position =-10;
RudderSet = RudderDefault + position;
position =-15;
RudderSet = RudderDefault + position;
position =-20;
RudderSet = RudderDefault + position;
}
}
void PWM_Init()
{
PWME=0x00; //禁止所有PWM
PWMCTL=0x80; //使6,7路合并为十六位 其余均为八位。
PWMPRCLK=0x00; //不预分频
PWMSCLB=81;
PWMSCLA=7; //使用sa时钟为pmw时钟
PWMCLK=0xB0; //时钟选择
PWMPOL=0xA0; //极性选择
PWMCAE=0x00; //左对齐
PWMPER67=2962;//50Hz //500~2000都可以
//PWMPER67=1480;//100Hz
//PWMPER67=1234;//120Hz
//PWMPER67=1139;//130Hz
//PWMPER67=1057;//140Hz
//PWMPER67=1000;//150Hz
PWMDTY67=300; // 越小,车轮越向右
PWMPER4=200; //10KHz
PWMPER5=200; //10KHz,方向与四相同
PWMDTY4=200;
//如果和5相同则 不制动,制动程度决定于5低点平时 4高点平的占空比
PWMDTY5=200; //越大,速度越快,测试的时候先设小一点
DDRP=0xff; //将PWM端口设为输出
PWMCNT67=0; //开始计数
PWMCNT45=0;
PWME=0xB0; //允许PWM 7 4 5
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -