12
返回列表 发新帖
楼主: 3572923

[已解决] 求助:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定(已解决)

[复制链接]

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-17 16:36:07 | 显示全部楼层

回复:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

回复第 10 楼 于2014-06-17 16:31:44发表:
回复第 6 楼 于2014-06-12 16:04:29发表:
楼主你好,你是使用TPM输出PWM波形,然后又配置了一个PIT的中断,发现PIT的中断会影响到TPM的PWM是吗?
理论上是不应该影响的,TPM是硬件方式的输出PWM, 这样你把你的工程给我调试下看看,是不是什么地方的配置有问题。
 
工程有90M,方便给个邮箱吗?
 

 

你是什么工程呢? 你先clearn下,把不必要的给删掉。
然后压缩下上传,太大可以分块压缩上传。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

147

帖子

0

中级会员

Rank: 3Rank: 3

积分
343
最后登录
1970-1-1
发表于 2014-6-17 17:16:29 | 显示全部楼层

RE:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

楼主定时中断中:
   FL1 = BGET(GPIOE_PDIR,5);
    FL2 = BGET(GPIOE_PDIR,4);
    FL3 = BGET(GPIOE_PDIR,3);
    FR3 = BGET(GPIOE_PDIR,2);
    FR2 = BGET(GPIOC_PDIR,13);
    FR1 = BGET(GPIOC_PDIR,12);
这个是干什么的?
读端口方向吗? 还有你只要屏蔽time_counter++就没有问题了?
你time_counter这个后面还有做什么呢?
如果你去掉中断中FL1,FL2等的操作会有什么影响?
是不是中断函数内执行时间过长导致的。
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

15

帖子

0

新手上路

Rank: 1

积分
36
最后登录
1970-1-1
 楼主| 发表于 2014-6-18 14:57:58 | 显示全部楼层

回复:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

回复第 11 楼 于2014-06-17 16:36:07发表:
回复第 10 楼 于2014-06-17 16:31:44发表:
回复第 6 楼 于2014-06-12 16:04:29发表:
楼主你好,你是使用TPM输出PWM波形,然后又配置了一个PIT的中断,发现PIT的中断会影响到TPM的PWM是吗?
理论上是不应该影响的,TPM是硬件方式的输出PWM, 这样你把你的工程给我调试下看看,是不是什么地方的配置有问题。
 
工程有90M,方便给个邮箱吗?
 

 

你是什么工程呢? 你先clearn下,把不必要的给删掉。
然后压缩下上传,太大可以分块压缩上传。
 
文件已经上传,请多指教
 

KL25PWM.zip

4.84 MB, 下载次数: 0, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

15

帖子

0

新手上路

Rank: 1

积分
36
最后登录
1970-1-1
 楼主| 发表于 2014-6-18 15:01:02 | 显示全部楼层

回复:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

回复第 12 楼 于2014-06-17 17:16:29发表:
楼主定时中断中:
FL1 = BGET(GPIOE_PDIR,5);
FL2 = BGET(GPIOE_PDIR,4);
FL3 = BGET(GPIOE_PDIR,3);
FR3 = BGET(GPIOE_PDIR,2);
FR2 = BGET(GPIOC_PDIR,13);
FR1 = BGET(GPIOC_PDIR,12);
这个是干什么的?
读端口方向吗? 还有你只要屏蔽time_counter++就没有问题了?
你time_counter这个后面还有做什么呢?
如果你去掉中断中FL1,FL2等的操作会有什么影响?
是不是中断函数内执行时间过长导致的。
FL1 = BGET(GPIOE_PDIR,5);
FL2 = BGET(GPIOE_PDIR,4);
FL3 = BGET(GPIOE_PDIR,3);
FR3 = BGET(GPIOE_PDIR,2);
FR2 = BGET(GPIOC_PDIR,13);
FR1 = BGET(GPIOC_PDIR,12);
很明显是读端口输入电平的
后面没有什么了,我奇怪的原因和管理员一样,理论上不该产生干扰的两部分(中断和TPM模块),为什么就因为在中断中执行了i++就产生了干扰
 
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

15

帖子

0

新手上路

Rank: 1

积分
36
最后登录
1970-1-1
 楼主| 发表于 2014-6-18 15:03:17 | 显示全部楼层

回复:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

回复第 8 楼 于2014-06-17 13:18:07发表:
周期总是和延迟同步的,你查下延迟时间的原因
本人愚钝,没明白您说的什么意思?烦请详述
 
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

802

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1763
最后登录
1970-1-1
发表于 2014-6-18 16:41:43 | 显示全部楼层

RE:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

我觉得他是在设置上有点问题, 按理说中断后很容易检查问题的
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-7-10 09:58:33 | 显示全部楼层

RE:求助:在PIT中断函数中使用i++,居然影响PWM输出波形的稳定

我觉得楼主的问题应该是PIT中断里执行的时间过长,你可以用systick测试下你中断内部执行了多久,中断中尽量少做事,做重点事,能在外面做的不要放中断中。
建议减小中断中的代码。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-21 10:49 , Processed in 0.102730 second(s), 27 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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