完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
您好,我在PIC16F17822上用可编程开关模式控制器。为了简单起见,最初,我试图得到一个PWM输出,没有更多。在调试模式下,我没有得到PSMC PWM输出-直到我暂停调试器然后继续运行,然后它工作!在独立模式下,我只是不获取PWM输出,处理器正在通过CLKOUT运行。下面的.(1)循环测试PSMC的定时器,并随着定时器的变化摇摆IO线。IO线不做任何事情,除了我上面所说的,暂停并恢复调试器,然后它是快乐的!莫名其妙!下面是项目的勇气,我希望我已经提供了足够的信息,其他一切都是不寻常的。我真的很感激任何人的想法!谢谢!包括&stdio.h>包括<&stdlib.h>包括<_&stdlib.h>包括<_xc.xc.h>;包括“config.c.c.config.c”int main(void){OSCCON=0xF00xF0LATB=0xF0xF0000XF0000LAPUE=0x00000000WPUE=00WPUE=0x000000000XXXO00000000000;LATA=0x0X0LATA=0X0=0X0;LATA=0X0=0X0=0X0;LATC=0X0=0WPUA=0X0=TRISB=0b10011100;TRISC=0b00000000;TRISA=0b00101111ANSELA=0b00100000;ANSELB=0b001111000000;PSMC1CON=0b10000000;PSMC1CON=0b10000000;PSMC1CLK=0x01;PSMC1CLK=0xMC1CLK=0x01;//PSMC时钟64MPSMC时钟64MHzPSMCMCMCMCMCMCMC1PR1PRSbits.P1PRST=1;//设定时间基作为所有事件PSMCMCMCMC1PHS位的源。P1PHST=1;PSMCMC1PHST=1;PSMC1DC1DCS位;PSMC1DCMC1DCS位;PSMC1DCMC1DCS位;P1PHST=1;PSMC1DCST=1;PSMC1DCST=1;PSMC1DCSTL=0x7f;//periodPSMC1DCH=0x02;PSMC1DCL=0x3f;//占空比PSMC1PHH=0x00;PSMC1PHL=0x00;//无相位偏移PSMC1STR0bits.P1STRA=1;//在A上输出,正常极性PSMC1POLA=0;PSMC1OENbits.P1OEA=1;而(1){if(PSMC1TMRH>0)LATCbits.LATC2=1;//指示定时器运行…?如果(PSMC1TMRH==0)LATCItiT。LATC2=0;}
|
|
相关推荐
4个回答
|
|
|
你的配置设置是什么?请贴上代码标签([c o d e]代码这里[/c o d e]没有空格)。我怀疑您已经设置了PLLEN配置位。你也有软件SPLLIN位集。你不需要要么得到64 MHz的PSMC时钟,你当然不需要两者。事实上,设置PLLIN配置位会导致您遇到的问题。最后,设置PSMC1CON寄存器。当设置PSMC1EN位时,周期、占空比和偏移值变化被暂停,直到PSMC1LD位被设置。我建议在第一条指令中清除PSMC1CON寄存器。我还看到您包含了文件“CONFIG.C”。这是头文件还是源文件?如果是源文件,则将其添加到项目文件源中,不包括它。如果它是头文件,那么点扩展应该是“H”而不是“C”。我个人喜欢源文件中的配置设置。
|
|
|
|
|
|
我认为那是不对的。我有一个项目与PIC16F1788与8兆赫内部振荡器和PLL,给32兆赫系统时钟。(这是OP在OSCCON任务中的设置。)我也选择64MHz的PSCM时钟来获得最高的PWM频率/分辨率。所有的都是好的。这是关键:如果您启用具有默认寄存器值的PSMC1,则不提供输出。在设置PSMC1LD之前,寄存器更改不会生效。(所以,如果OP在初始化序列的末尾添加PSMC1LD指令,它就开始工作——至少它在我的'1788主板上对我有效。)然而……我同意。我总是这样做的。然后我将它作为初始化序列中的最后一个指令。
|
|
|
|
|
|
谢谢你的信息。这里的事情…我的初始化是这样的(这是典型的几乎所有我的项目):1。配置Primas集Hfimtoc和设置PLLEN为02。我把OSCCON IRCF位设置为0b1110,然后设置SPLLENI猜我只是运气好。[编辑]实际上,现在我看得更近一些,我发现我的项目使用的是rev B0设备,所以错误表不适用于我的电路。谁会想到,稍后的硬件版本会显示出原来的实现中的问题?我的意思是,我(几乎总是)在评估一个新设备时查看errata,但是我不一定以后再查看是否有新的bug出现。(除非我开始有其他无法解释的问题。)软件升级有时被定义为“用更新的和偷偷摸摸的bug替换旧的熟悉的bug。”我猜想(有时)也适用于硬件芯片旋转。哦,好吧……[编辑]关于Dave,
|
|
|
|
|
|
你好,谢谢WB!对其他的受访者来说,非常感谢评论。WB——你的一个建议让我走了!!最后设置PSMC1CON(最初清除它),排序它,现在一切顺利!是的,我确实有两个PLL启用位设置。我并没有从数据表中看出这是禁忌,但是毫无必要,但是,清除Config PLL启用位并没有改变任何东西。我也接受了你对我的Config文件和它的头/源性质的善意评论。非常感谢!S.
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:38 , Processed in 0.656571 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1300