完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在PIC16F1779 I.PWM10DCH和PWM10DCL上占空比寄存器有问题。PWM10DCH工作如预期,但是每当我在PWM10DCL中设置比特6或7时,PWM输出变为100%。因为PWM10DCL的第6位和第7位是10位占空比寄存器的LSB,所以我希望占空比只有很小的变化?我使用XC8和最新的MPLAB IDE V3.35,下面的PICKIT3是我的初始化代码和PWM达到100%时的一个例子。有什么想法吗?另外,如果其他人遇到这个问题,发现这个线程在这个部分的数据表上有一个错误。数据表表示,PWM10OUT的RXYPPS是011110。它应该读011100。这浪费了我的时间,所以我希望这可以固定在未来的数据表上。LATA=0;TRISA=0xFF;PWM10CON=0x00;T2PR=0x52;//周期寄存器PWM9DCL=0x00;PWM9DCH=0x00;PIR1bits.TMR2IF=0;T2CLKCON=0b00010;//osc/4内部T2CON=0x00;T2CON=0b10100000;//在打开(!PIR1bits.TMR2IF;TRISA=0xF0;RA3PPS=0b00011100;PWM10CON=0x80;PWM10DCH=0x25;//使用这两行占空比与预期值相同,PWM10DCL=0x00;PWM10DCH=0x25;//使用这两行占空比是100%PWM10DCL=0xC0;//如果将6位或7位的占空比设置为100%;
以上来自于百度翻译 以下为原文 I am having trouble with the duty cycle registers on the PIC16F1779 ie. PWM10DCH and PWM10DCL . PWM10DCH is working as expected however whenever I set bits 6 or 7 in PWM10DCL the PWM output goes to 100%. Since bits 6 and 7 of PWM10DCL are the LSBs of the 10 bit duty cycle register I would expect only small changes in the duty cycle? I am using XC8 with the latest MPLAB IDE V3.35 and a PICKIT3 Below is my initialization code and an example of when the PWM goes to 100% . Any thoughts why? Also in case others having trouble with this part find this thread there is an error on the Datasheet for this part. The datasheet says RxyPPS for PWM10_out is 011110 . It should read 011100 . This wasted hours of my time so I hope this can be fixed on future datasheets. LATA=0; TRISA=0xFF; PWM10CON=0x00; T2PR=0x52; // period register PWM9DCL = 0x00; PWM9DCH = 0x00; PIR1bits.TMR2IF = 0; T2CLKCON=0b00000010; // osc/4 internal T2CON = 0x00; T2CON=0b10100000; // prescale 4 timer on while (!PIR1bits.TMR2IF); TRISA=0xF0; RA3PPS=0b00011100; ; PWM10CON = 0x80; PWM10DCH= 0x25; // Using these 2 lines the duty cycle is as expected PWM10DCL=0x00; PWM10DCH= 0x25; // Using these 2 lines the duty cycle is 100% PWM10DCL=0xC0; // if either bit 6 or 7 is set the duty cycle goes to 100% |
|
相关推荐
2个回答
|
|
我注意到没有人回答你的问题。这仍然是个问题吗?如果是这样的话,我会看看我是否可以搜索一些零件并验证这个问题。
以上来自于百度翻译 以下为原文 I noticed that no one has responded to your question. Is this still an issue? If so I will see if i can scrounge some parts and verify the issue. |
|
|
|
我想我找到了您的问题。请更改如下:FromT2CLKCON=0b00000010;//osc/4.(实际上是FOSC)ToT2CLKCON=0b00001;//FOSC/4您可能还需要根据您的应用程序将预调用程序更改为1:1。我在MCC中设置它,这样我可以快速地验证任何其他条件。我还验证了RA3PPS应该设置为0x1C,而不是0x1E,以便正确地输出PWM10。
以上来自于百度翻译 以下为原文 I think I found your problem. Change the following: From T2CLKCON=0b00000010; // osc/4 internal (this is FOSC actually) To T2CLKCON=0b00000001; //FOSC/4 You may also need to change the prescaller to 1:1 depending on your application Let me know if this works. I set it up in MCC so I can quickly verify any other conditions. I also verified that the RA3PPS should be set to 0x1C not 0x1E to correctly output PWM10. |
|
|
|
只有小组成员才能发言,加入小组>>
5188 浏览 9 评论
2009 浏览 8 评论
1933 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3181 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2232 浏览 5 评论
743浏览 1评论
629浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
642浏览 0评论
538浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 19:38 , Processed in 1.314216 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号