查看: 8058|回复: 9

[MPC] MPC5604的IPWM模式

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
2
最后登录
1970-1-1
发表于 2012-7-21 20:56:19 | 显示全部楼层 |阅读模式
配好的程序如下
 //输入脉宽测量,高电平
 EMIOS_0.CH[9].CCR.B.BSL = 0x01;   /* Use counter bus C */
 EMIOS_0.CH[9].CCR.B.EDSEL = 1; 
 EMIOS_0.CH[9].CCR.B.EDPOL = 1;   /* 高电平测量 */
 EMIOS_0.CH[9].CCR.B.MODE = 0x04;  /* Mode is IPWM Mode */
 EMIOS_0.CH[9].CCR.B.FEN = 1;        /*开中断  */
 INTC.PSR[145].R = 1;                /* EMIOS_0F9 interrupt vector with priority 11*/ 
 SIU.PCR[9].R = 0x0503;           /* Assign EMIOS_0 ch 9 to pad PA9*/
中断程序如下
Distance_Measure = EMIOS_0.CH[9].CADR.R - EMIOS_0.CH[9].CBDR.R; 
   Distance = 17.0*Distance_Measure/500.0;//单位CM
   if(Distance>400) Distance = 400;        
  EMIOS_0.CH[9].CSR.B.FLAG = 1;   /* Clear channel's flag */
Distance 的返回值一直是0,或者是FFFF,为什么呢?
还有就是,这个模式下的A1,A2   B1,B2寄存器之间有什么关系呢?看数据手册的都看疯了……
我知道答案 目前已有9人回答
回复

使用道具 举报

该用户从未签到

0

主题

11

帖子

0

注册会员

Rank: 2

积分
61
最后登录
2018-12-18
发表于 2016-1-20 13:30:53 | 显示全部楼层
本帖最后由 asianeast 于 2016-1-20 13:32 编辑

输入捕获已调试成功,将采集到的频率通过CAN发送出来。
程序中还一并调试了所有的外设,是我这两个礼拜学习的全过程,已全部OK,可以拿来就用。

026 CAN&IC_160120C.zip

195.64 KB, 下载次数: 174, 下载积分: 威望 1

回复 支持 1 反对 0

使用道具 举报

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
2
最后登录
1970-1-1
 楼主| 发表于 2012-7-22 11:05:25 | 显示全部楼层

RE:MPC5604的IPWM模式

好了,看了一天终于懂了……
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

13

帖子

0

新手上路

Rank: 1

积分
33
最后登录
1970-1-1
发表于 2015-1-6 16:00:20 | 显示全部楼层
怎么整的啊?能给段初始化及中断处理的代码吗?
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

251

帖子

0

高级会员

Rank: 4

积分
690
最后登录
2016-11-3
发表于 2015-1-28 14:28:22 | 显示全部楼层
这个是什么东西?
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

11

帖子

0

注册会员

Rank: 2

积分
61
最后登录
2018-12-18
发表于 2016-1-19 13:55:30 | 显示全部楼层
给个例程发出来吧   我现在也是遇到了输入捕获  时间采集都是0的情况
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

52

帖子

0

中级会员

Rank: 3Rank: 3

积分
240
最后登录
2016-10-20
发表于 2016-1-21 13:30:19 | 显示全部楼层
本帖最后由 plabghhahacong1988 于 2016-1-21 13:40 编辑
asianeast 发表于 2016-1-20 13:30
输入捕获已调试成功,将采集到的频率通过CAN发送出来。
程序中还一并调试了所有的外设,是我这两个礼拜学习 ...

我正在弄pwm.
但是没有pwm波形的输出.
麻烦你帮我看看.我想输出周期和占空比均可调的pwm波形,系统频率64MHz.
  1. void pwm_init(uint8 Chn)
  2. {
  3.    EMIOS.MCR.B.MDIS = 0;    //eMIOS模块进入正常工作模式
  4.    EMIOS.MCR.B.GPRE = 63; //eMIOS模块全局64分频,分配后内部计数器频率为64MHz/(63+1) = 1MHz
  5.    EMIOS.MCR.B.ETB = 0;     //禁止外部时基
  6.    EMIOS.MCR.B.GTBE = 1;  //使能全局时基
  7.    EMIOS.MCR.B.FRZ = 1;
  8.    EMIOS.MCR.B.GPREN= 1; //使能全局分频器
  9.    EMIOS.CH[Chn].CCR.B.BSL  = 3; //使用内部时钟计数器
  10.    EMIOS.CH[Chn].CCR.B.UCPREN = 1;  //使能内部时钟分频
  11.    EMIOS.CH[Chn].CCR.B.UCPRE = 0;  //设置通道内部时钟分频值为1
  12.    EMIOS.CH[Chn].CCR.B.EDPOL = 0;  //匹配A时输出0,匹配B时输出1
  13.    EMIOS.CH[Chn].CCR.B.MODE = 0x19;  //eMIOS模式为:OPWFM
  14.    SIU.PCR[Chn + 179].B.PA  = 1;  //设置管脚通道为PWM功能
  15.    SIU.PCR[Chn + 179].B.OBE = 1;
  16. }
  17. void Pwm_Output(uint8 Chn,uint32 Period, uint32 DutyCycle)
  18. {
  19.    EMIOS.CH[Chn].CADR.R = DutyCycle;  //设置占空比
  20.    EMIOS.CH[Chn].CBDR.R = DutyCycle;  //设置周期
  21. }

  22. int main(void)
  23. {
  24.    pwm_init(0);  //初始化eMIOS[0]
  25.    Pwm_Output(0,1000,200); //输出频率1KHZ,占空比20%的pwm波
  26. }
复制代码


回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

52

帖子

0

中级会员

Rank: 3Rank: 3

积分
240
最后登录
2016-10-20
发表于 2016-1-21 13:53:50 | 显示全部楼层
asianeast 发表于 2016-1-20 13:30
输入捕获已调试成功,将采集到的频率通过CAN发送出来。
程序中还一并调试了所有的外设,是我这两个礼拜学习 ...

EMIOS_0.CH[10].CCR.B.MODE  = 0x60;        // 选择OPWMB模式
你的代码里面,pwm的输出选择的是OPWMB模式,这个模式下周期是由23通道的CADR值决定的.
你只能修改占空比,如果我希望输出占空比和周期均可变的pwm波形该怎么办?
所以我想选择OPWFM模式(Mode=0x19)输出pwm波形...
但是现在的结果是出不来波形,很奇怪,麻烦你帮我看看..
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

11

帖子

0

注册会员

Rank: 2

积分
61
最后登录
2018-12-18
发表于 2016-1-22 09:39:44 | 显示全部楼层
plabghhahacong1 发表于 2016-1-21 13:53
EMIOS_0.CH[10].CCR.B.MODE  = 0x60;        // 选择OPWMB模式
你的代码里面,pwm的输出选择的是OPWMB模式,这个模 ...

我记得EMIOS_0.CH[10]好像没有内部时钟的,需要选用BUS A的时钟源。
有内部时钟的手册上说只有CH0~CH7,你从这个上面看看,是否有用。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

11

帖子

0

注册会员

Rank: 2

积分
61
最后登录
2018-12-18
发表于 2016-1-22 09:42:18 | 显示全部楼层
plabghhahacong1 发表于 2016-1-21 13:53
EMIOS_0.CH[10].CCR.B.MODE  = 0x60;        // 选择OPWMB模式
你的代码里面,pwm的输出选择的是OPWMB模式,这个模 ...

对于定周期的PWM  BUS A的周期可以不变  
如果需要改变周期的话  设置CH[23]的计数即可   我的理解是这样
设置这些只是应用上的事情  无关功能
如果输出不了PWM应该就是模式或者时钟源的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 15:12 , Processed in 0.111009 second(s), 32 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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