智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2585|回复: 0
打印 上一主题 下一主题

请教 PWM 中断方式怎么不行啊?请大家指教!!3Q

[复制链接]

2

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
180
威望
231
贡献
39
兑换币
0
注册时间
2010-12-8
在线时间
4 小时
跳转到指定楼层
1#
发表于 2010-12-10 11:55:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教 PWM 中断方式怎么不行啊?请大家指教!!3Q

这是我的程序代码:

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

#pragma LINK_INFO DERIVATIVE "MC9S12XEP100"


/************************************************************/
//功    能:实现一段时间的延时
//入口参数:无
//出口参数:无
/************************************************************/
void delay(unsigned int delay_time)
{
  unsigned int loop_i,loop_j;      //定义循环变量
  for (loop_i=0;loop_i<delay_time;loop_i++)
  {
    for (loop_j=0;loop_j<500;loop_j++)
    {
      ;
    }
  }
}

int i=0;
void main(void)
{
DDRJ=0x00;
PIEJ=0X01;
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<=1854;)
{
if(PWMCNT0==0X4e)
i++;
} //步进电机转90度
PWME=0;//0,1通道关闭
while(1){;}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void man(void)
{
if(PIFJ_PIFJ0==1)
{
PIEJ_PIEJ0=0;//关闭中断
PIFJ_PIFJ0=0;//清除中断标志PIFJ0    (怎么不行啊????)
PWMPER1=0X2a;
PWMPER0=0x68;//per等于26666,即150赫兹
PWMDTY1=0X15;
PWMDTY0=0X34;//dty等于13333
PWME_PWME1=1;//0,1通道使能
delay(10);
PWME_PWME1=0;//0,1通道禁止
PIEJ_PIEJ0=1;//开启中断

}
}
#pragma CODE_SEG DEFAULT

请大家帮忙看看 问题出在哪里?xiexie
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 02:17 , Processed in 0.367986 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表