Microchip
直播中

李捷

7年用户 195经验值
私信 关注
[问答]

怎么使用PIC12F1840中的捕捉和比较模式

你好,我在PIC12F1840和MPLABX IDE 3.35上工作。我写了一个代码读取PWM脉冲宽度在一个引脚,并写入该值到另一个PWM引脚。但是,在逻辑分析仪仿真时,输出PWM脉冲不是连续的,在一个代码中使用捕获模式和比较模式是正确的方法吗?请检查附上的C代码并指导我。谢谢你,Gitanjali。

以上来自于百度翻译


      以下为原文

    Hello,
I am working on PIC12F1840 and MPLABX IDE 3.35 . I have written a code for reading PWM pulse width at one pin and  writing that value to another PWM pin. But, at the time of simulation in logic analyzer output PWM pulse is not continuous.Is a correct way to use capture mode and compare mode in one code ?  please check attached C code and guide me.

thanking you ,
Gitanjali
   Attachment(s)

2_pwm_in_out.txt (4.89 KB) - downloaded 66 times

回帖(2)

王焕树

2019-5-13 14:48:27
摆脱任何东西,你的代码需要它们。在嵌入式编程中,它们很少需要。不要尝试编写自己的延迟例程。优化器会使你绊倒。使用内置的Equinoxin命令和编译器,你可以从中断程序中删除对InITyBuffTh()的调用。在ISR中设置GIE位是致命的!而且,你不应该在ISR内部做一个时间延迟。你的StpWMutuyCyle()被从ISR调用,并且会延迟。

以上来自于百度翻译


      以下为原文

    Get rid of
#include
#include
Nothing i nyour code requires them. They are rarely needed in embedded programming.
 
Don't try to code your own delay routines. The optimiser will trip you up.
Use the __delay_us() and __delay_ms() macros built in to the compiler.
 
As Equinoxin said, get rid of the call to init_interrupt() from your interrupt routine.
Setting the GIE bit inside an ISR is fatal!
 
Also, you should NEVER do a time delay inside an ISR.
Your SetPWMDutyCyle() is called from the ISR, and does a delay.
 
举报

李军林

2019-5-13 15:43:41
哦…好啊。。这意味着没有必要为CPP1配置APFCON寄存器。

以上来自于百度翻译


      以下为原文

     
Ohhh.. OK .. that means no need to configure APFCON register for CCP1. 
thanks qhb 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分