你能帮我解释下程序为什么要这样写?步进电机的控制(1)实验设备:HCS12编程器、开发板、步进电机、5804芯片、稳压电源(2)功能实现:控制步进电机转动90度,按下中断后电机连续转动.(
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 12:58:04
你能帮我解释下程序为什么要这样写?步进电机的控制(1)实验设备:HCS12编程器、开发板、步进电机、5804芯片、稳压电源(2)功能实现:控制步进电机转动90度,按下中断后电机连续转动.(
你能帮我解释下程序为什么要这样写?
步进电机的控制
(1)实验设备:HCS12编程器、开发板、步进电机、5804芯片、稳压电源
(2)功能实现:控制步进电机转动90度,按下中断后电机连续转动.
(3)源程序如下:
#include /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"
int i=0;
void main(void)
{
DDRJ=0x00;
PIEJ=0X03;
EnableInterrupts; //中断设置
PWME=0; //关闭所有通道
PWMCTL_CON01=1;//对PWM控制寄存器进行设置,0,1合为一个通道
PWMCNT1=0X00;//0,1通道计数器清0
PWMPOL_PPOL1=1;//上升沿翻转
PWMCLK_PCLK1=0; //设A为其时钟源
PWMPRCLK=0X00; //不对A时钟进行分频
PWMCAE_CAE1=1;//中心对齐输出
PWMPER1=0X20;
PWMPER0=0x4e;//per等于40000,即100赫兹
PWMDTY1=0X10;
PWMDTY0=0X27;//dty等于20000
PWME_PWME1=1;//0,1通道使能
for(;i
你能帮我解释下程序为什么要这样写?步进电机的控制(1)实验设备:HCS12编程器、开发板、步进电机、5804芯片、稳压电源(2)功能实现:控制步进电机转动90度,按下中断后电机连续转动.(
注释的已经很明白了,先配置了PWMxxx各个寄存器,再通过设PWME控制PWM输出或者不输出;
主函数开始后,配置各个寄存器,初始化完成以后,用一个for循环让电机转了90度,然后关PWM,进入一个空的while循环;
当有J口的中断时,进入中断函数,判断J0为1时,开PWM输出,这时PWM通道0和1按照特定时序输出PWM波,电机就连续转起来了.