搜索
bottom↓
回复: 13

熟悉LPC2000系列的高手进来一下

[复制链接]

出0入0汤圆

发表于 2009-10-28 16:53:07 | 显示全部楼层 |阅读模式
LPC2119
我启用了RTC实时时钟,

        CCR = 1;     //不启用独立晶振

        PREINT = Fpclk / 32768 - 1;
        PREFRAC = Fpclk - (Fpclk / 32768) * 32768;

        YEAR = 2010;
        MONTH = 1;
        DOM = 1;   

        DOW = 5;
        HOUR = 0;
        MIN = 0;
        SEC = 0;

         //   设置秒值的增量产生一次中断
        CIIR = IMSEC;
        CCR |= RTC_CLKEN;                //启动计数器
                VICVectCntl9 = 0x20|0x0D;
        VICVectAddr9 = ( uint32)RTC_Handler;
        VICIntEnable |= (1<<13);
//---------以上是初始化代源------------
本意进行秒增量中断,来更新时间。奇怪的是这个秒中断比正常要慢2~3秒,当2、3秒后才会有一个RTC的秒中断。实际时间一分钟过去了,这个实时时钟才走了20多秒,真是崩溃了我。百思不得其解。如果是是频率的问题,那么,串口使用一直是正常的(都是共用11059200)。请遇到过此问题的高手指导下。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2009-10-28 17:16:28 | 显示全部楼层
LPC2119
这款MCU不存在RTC的独立晶振啊,再说,如果程序没有跑起来,那么不该会有RTC中断啊,现在是中断有,但每次秒中断都慢了3秒,换就是说,RTC的秒中断差不多要4秒才中断一次,现在没法做时间,卡在这里他妈有一天多了,查不到问题。

出0入0汤圆

发表于 2009-10-28 18:56:39 | 显示全部楼层
仅看这段代码应该是没问题的,把你的全部代码传来看看吧

出0入0汤圆

 楼主| 发表于 2009-10-28 19:50:45 | 显示全部楼层
代码全贴上来太多了,中断里面基本上全屏蔽了,只有个LED在反转,刚才发现,在T1里面定时1秒,这个时候和RTC的是一个的。最后没有办法,把任务0和任务1里面的代码全干掉,延时1S来做LED反转,发现居然和RTC的时间是一样,也都是实际时间过了3秒多,然后软件里面才计一秒。

出0入4汤圆

发表于 2009-10-28 20:57:30 | 显示全部楼层
有可能是Fpclk实际与你设置的数值不一致。

出0入0汤圆

 楼主| 发表于 2009-10-28 21:03:14 | 显示全部楼层
一样的啊,11。0592M。再说,如果不一样的话,那么波特率肯定是不能用的,对不?两个串口使用都很正常。就是时间慢了。

出0入0汤圆

发表于 2009-10-29 15:09:24 | 显示全部楼层
可以肯定你的PLL没有设置正确。
在PLL配置的最后,会需要设置        PCLKSEL0 和 PCLKSEL1 (这两个在LPC2378里面有,你的应该也有),这里是将配置好的主频再次进行分频或者倍频的设置。
你查看一下你的PLL就知道了。

出0入0汤圆

 楼主| 发表于 2009-10-29 17:27:59 | 显示全部楼层
LPC2000系列没有这个寄存器啊。
你能不能说清楚点咯

出0入0汤圆

发表于 2009-10-29 18:50:01 | 显示全部楼层
CCR = 1;
改成
CCR = 2;
试一下。
或者
PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
改成
PREFRAC = Fpclk % 32768;
试一下。

出0入0汤圆

 楼主| 发表于 2009-10-31 08:28:52 | 显示全部楼层
试了,没用。
弱弱地问一下,为什么要这样改呢?

出0入0汤圆

发表于 2009-10-31 08:52:16 | 显示全部楼层
1、CCR的bit0是使能,bit1是复位,在设置相关寄存器的时候一般要关掉使能,设置完后再打开使能
2、防止编译器优化掉

另外把CCR = 1改成CCR = 2时,下面的CCR |= RTC_CLKEN也要改成CCR = RTC_CLKEN。

出0入0汤圆

发表于 2009-11-2 08:39:07 | 显示全部楼层
把RTC中断提升到FIQ试试

出0入0汤圆

发表于 2009-11-2 09:26:19 | 显示全部楼层
似乎是Fpclk和实际数值不一致。

出0入0汤圆

发表于 2009-11-4 11:44:49 | 显示全部楼层
看启动代码中PLL的设置。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 16:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表