完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我对PIC18F27 J53有一个问题。我已经浏览过数据表一百次了。我已经看过振荡器的流程图,所有的东西都应该设置为从外部晶体流出,但它在内部振荡器上运行。我有一个20mhz的水晶连接,并尝试了u***(工作良好),但有一个循环计数至100万,打开一个LED,然后计数至1000000和关闭它。当我将内部振荡器设置为3KHz时,LED保持大约3秒,关闭大约3秒。当我改变信息时,它会改变LED闪烁速度。所以它必须运行代码。我只是不能为我的生活找出原因。我试图控制一些WS28 12B在我的最终代码,这是相当困难的内部振荡器速度。所以让它从外部运行是必要的。下面是用于测试振荡器速度的简单代码IM,我希望能了解一下我的错误所在。
|
|
相关推荐
19个回答
|
|
|
在这些配置行之前是否包括XC.H?(你应该)一旦你加入了XC.H,你就不需要包括P18F27 J53。
|
|
|
|
|
|
我使用mcc18编译器。我已经把include
|
|
|
|
|
|
你有它的注册副本吗?否则,你最好远离长期被遗弃的过时编译器。如果不被C18世界所束缚,XC8有很多优点。
|
|
|
|
|
|
我没有挂号的复印件。只是习惯于使用它。最初我用这个评价来做几个引导加载程序。我尝试编译到XC8,但仍然得到相同的结果。我从图中读回了代码,最后几个字节(应该是配置字节)与应该能够作为时钟源进行结晶的设置相匹配。我认为微控制器本身没有问题,因为我试过在我制造的两个不同的板上,这两个板上的晶体接近微针,两个板都使用18f27j53。我倾向于赞成特定的PIC,因为它的PPS特征和CCP输出的丰富性。但是我仍然不明白为什么我不能使它比内部振荡器运行得更快。我的理解是,进入u***块的输出应该是48mhz,应该能够被路由到cpu,这应该决定代码运行的速度。但是,如果它运行在48 MHz,我的循环计数到1000000应该跑得如此快,LED将切换到小于1秒。
|
|
|
|
|
|
为了在3秒内计数到1000000,假设每个计数有15个周期(查看反汇编以获得准确的计数),它是5000000个周期/秒,大约为20MHzFOSC。
|
|
|
|
|
|
顺便说一下,如果没有使用USB模块,使用ITCOSCPLL模式,PLLDIV=2,48 MHz也是可以实现的。
|
|
|
|
|
|
嘿,我还没有在u***us最新的mplab x上工作过,它有很好的特性,每个振荡器选择位一个接一个,比如hs1,hs2,而且可能更多地使用晶体振荡器选择会造成问题。
|
|
|
|
|
|
我认为内部振荡器正在使用的主要原因是当我改变OSCCon值(BITS6—4)时,LED闪烁率发生变化。当我把内部振荡器设置为4 MHL时,它需要大约1秒而不是3秒。这些位应该只改变内部振荡器的后定标器。除非我搞错了,不知何故,外部水晶仍然使用内部后定标器。
|
|
|
|
|
|
当使用内部振荡器为4MHz时,是否使用了IntoScLL模式?
|
|
|
|
|
|
不,我把它设置为HSUPLL,就像上面的代码一样。但是,当我把它改为iToSCPLL时,速度保持不变(随音阶变化而变化)。但是,它必须在hs_pll模式下使用晶体,因为当我缩短晶体时,代码停止(但不在intosc_pll模式下)。但我仍然困惑为什么后缩放器在HSL PLL模式中改变速度。
|
|
|
|
|
|
你能把它设置成HSPL,并编程PIC,然后从Flash中读取配置位,并验证它吗?我认为它可能有什么问题…+ +是否有可能为项目选择另一个PIC?BTW在时钟图中可能有一些故障,对PLL模块的ItoSc应该来自于ItoSc后缩放器…
|
|
|
|
|
|
经过这么多次,我可以建议:不要计算指令来检查振荡器。使用定时器或UART或一些可以计数和控制引脚的模块。它更容易出错。-保罗
|
|
|
|
|
|
我已经读取配置位,PLL启用并开启。该图确实显示了来自ItoSc的输入经过后标器,然后进入PLL。所以我认为是正确的。但是我没有选择的iNoSc。我选择了HSL PLL。当我到家的时候,我必须试试这个计时器,看看它是否有效。我没想到
|
|
|
|
|
|
BoP,啊,这是家里的一个项目。在我的几乎所有项目中,我有一个1ms定时器来运行各种活动。我做的第一件事就是用1ms中断服务例程切换一个PIN。如果我没有看到500赫兹的信号,我首先解决这个问题。你开始看到,你知道你还活着,可以一步一步地从那里开始。当然,在PIC18上,你只能得到两个ISR(高优先级和低优先级,如果你使用优先级)。所以它是一个在各种中断源上测试标志位的大ISR。1ms的定时器只是其中之一。现在等待:如果有人已经没有说,最大水晶可用于这个东西与4X锁相环启用是16MHz。它不会运行在80兆赫(4X 20)。您可能会得到一些模块来运行(几年前我就意外地执行过),但这部分超出了规范。如果你想运行48兆赫,你使用16MHz晶体。在20MHz的晶体上,你只能跑20MHz。祝你好运。-保罗
|
|
|
|
|
|
我很好奇你打算如何驱动WS28 12B,以及为什么它很难与内部振荡器。我使用PIC16F1类设备,他们似乎能够驱动他们很好地只用内部设备。
|
|
|
|
|
|
对Ocelo-在PLL之前有一个分频器。我已经设置了5除以给锁相环第四个它需要的,然后被提升到第九个除以2,最后达到48mhz.4u***工作,所以我肯定它必须得到48mhl(除非它以u***低速运行,以较低的速度工作)。对DaviBLIT我打算使用BIT Bang.如果我使用常量,并且在开始传输之前为LED设置2个4位值,它就可以工作。但是如果我从一个数组(每个led一个字节,例如led_.[._.])中取出3个独立的8位(每个颜色1个),那么将3个字节转换为1个变量需要太长时间,并且只有大约10个led响应。如果我使用1变量而不是字节数组,它工作得很好,例如:led_.[1],但是增加到下一个数组字节似乎需要足够长的时间来使ws2812芯片触发复位脉冲。
|
|
|
|
|
|
1秒-这是关于如何快速增加32位数字1000000次与48兆赫时钟。所以,PLL可能正在工作。我不认为PLL会用PLLDIV=5(如你的语法中所设定的那样)来操作。所以,它不是水晶就是PLLDIV不是5?如果你认为你从IPCOSC获得PLL而不是水晶,请看OSCCon的0…1位。如果将它们设置为0,则PLL的源将由FCOS1值确定。它似乎在你的语用中被正确地设定了。OsCon的其余部分不重要吗?我会从你的程序中读取Ong1L(0x1FFF8)CONT2L(0x1FFFA)来检查它们是什么。
|
|
|
|
|
|
我从来没有使用过18FXXJXX部分,所以我不知道你在OSC上有更多的选择。我使用的PIC18只有4×PLL,ON或OFF。-保罗
|
|
|
|
|
|
我刚做了一个程序,设置Time0来中断,并切换A引脚。用引脚连接到我的pickit2(它在技术上不支持18f27j53,但是我把它添加到我的设备文件中,所以它工作),并读取它保持高和低的时间。我在家里没有示波器,所以这应该足够用于IM检查。我使用“MikReleltRoNokk-定时器计算器”来获得设置Time0所需的值,以便得到1ms的时间。我把它设置为48mhz的振荡器,当我应该得到1ms时,我得到了4.8ms,所以我把它设置为20mhz,根据这个计算定时器0值,现在它给出1ms开,1ms关脉冲。所以我猜它用的是水晶,而不是乘法。但是当OSCCon设置为0x00时,它只给出1ms的脉冲。当我将OSCCON设置为0xF0,将比特设置为4-6高(IRCF<2:0>:内部振荡器频率选择比特)时,根据将内部振荡器设置为8mhz的数据表,我得到了.424ms的脉冲,但是振荡器结构的框图显示这不应该影响任何东西。除非内部振荡器被设置,否则它不存在。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:43 , Processed in 1.115242 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1501