完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
希望每一个都会好。我在生成PWM时感到困惑。我使用MPLABX V3.65,XC编译器V1.31,模拟器和DSIC30F2010中心对齐模式。我希望端口应该改变它的状态,当PDC2值与PTMR相匹配时,当PDC2值的一半被计算W时,ButPoT改变它的状态。PTMR。即(PDC2/2)和PDC1类似的问题,为什么?
以上来自于百度翻译 以下为原文 Hope every one will be fine. I am confused while generating PWM. I am using MPLABX V3.65, XC compiler v1.31, simulator and dsPIC30F2010 center aligned mode. I expect that PORTE should change its state and when PDC2 value is matched with PTMR. but PORTE changes its state when half of PDC2 value is mathed with PTMR. i.e.(PDC2/2) and similar problem with PDC1. wondering why? #include // DSPIC30F2010 Configuration Bit Settings // FOSC #pragma config FPR = XT_PLL16 // Primary Oscillator Mode (XT w/PLL 16x) #pragma config FOS = PRI // Oscillator Source (Primary Oscillator) #pragma config LPOL = PWMxL_ACT_HI // Low-side PWM Output Polarity (Active High) #pragma config HPOL = PWMxH_ACT_HI // High-side PWM Output Polarity (Active High) #pragma config PWMPIN = RST_PWMPIN // PWM Output Pin Reset (Control with HPOL/LPOL bits) #pragma config MCLRE = MCLR_EN // Master Clear Enable (Enabled) void main() { PTCON=0b10; // continuous up down counting mode selected. PWMCON1=0b110011; // complementary mode selected and PWMxH,PWMxL pins are enabled for PWM. IFS2bits.PWMIF=0; // PWM interrupt flag cleared IEC2bits.PWMIE=1; // PWM interrupt enabled PTPER=30; PDC1=20; PDC2=10; PTCONbits.PTEN=1; // Start time base PWM. while(1) { Nop(); } } void _ISR _PWMInterrupt() { PTPER=30; PDC1=20; PDC2=10; IFS2bits.PWMIF=0; // PWM interrupt flag cleared } |
|
相关推荐
4个回答
|
|
以防万一,不要太相信模拟器。如果可以的话,测试真实的硬件。
以上来自于百度翻译 以下为原文 Just in case, don't trust too much the SIMulator. If you can, test real hardware. |
|
|
|
谢谢CinziaG。我很难用真实的硬件来测试它。有人能为我测试一下我的代码吗?我想符合之前,把它在真正的硬件,当PWM PWM引脚改变他们的状态。
以上来自于百度翻译 以下为原文 Thanks CinziaG. It is very hard for me to test it in real hardware. Could some one test my code for me. I want to conform before placing it in real hardware that when PORTE PWM pins change their state. |
|
|
|
我认为使用“中心对齐模式”而不是简单的PWM模式会让你困惑。
以上来自于百度翻译 以下为原文 I think using "centre aligned mode" rather than just plain PWM mode is confusing the issue for you. |
|
|
|
感谢QHB的回复。我试着用自由运行MODETCON=0,但仍然是同样的问题。在我的例子中,PtMR改变了它的状态,当PTMR值达到值10时,PtMR应该改变它的状态。因为EPDC2=10;//在我的例子中。困惑为什么模拟器没有给出正确的结果。
以上来自于百度翻译 以下为原文 Thanks qhb for reply. I tried with free running mode PTCON = 0; but still same problem. PORTE changes its state when in my example PTMR reaches the value 5. while I expect PORTE should change its state when PTMR value reaches the value 10. because PDC2=10; // in my example. confused why simulator is not giving correct results. |
|
|
|
只有小组成员才能发言,加入小组>>
5192 浏览 9 评论
2012 浏览 8 评论
1936 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3183 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2238 浏览 5 评论
746浏览 1评论
633浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
517浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
644浏览 0评论
544浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 11:30 , Processed in 1.190828 second(s), Total 55, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号