S3C2440按键与定时器冲突,急!!!

[复制链接]
3135|5
 楼主| sxh924 发表于 2008-11-17 17:22 | 显示全部楼层 |阅读模式
我用S3C2440的通用商品J做为按键的接口,用的是ucos-ii,当按下按键后ucos的系统时钟会跑得非常快,远远超过设定置,不用按键时,发现时间是很准的.用另外的定时器时也是一样的情况.请大家给分析一下,谢谢.
阿南 发表于 2008-11-17 19:20 | 显示全部楼层

楼主的按键为何和定时器有关系?

最好把问题描述的清楚些
 楼主| sxh924 发表于 2008-11-18 09:14 | 显示全部楼层

详细的情况是这样的.

我用S3C2440外接了一个智能LCD,就是只要发送命令就可以让LCD显示.没有用S3C2440本身的LCD模块.我先是在2440上移植了最新的UCOS-II,用2440的定时器0作为系统时钟,测试了两个任务,系统时钟能正确计时.我用的是一款开发板,用J口作为按键接口(J口在开发板上是用来接摄像头的,但我没使用,就改为一般的输入端口了),但在我按下按键后发现我的系统时钟乱了,时间跑得非常快.按理说按键接口跟定时器没有直接的联系的.如果我不按按键,我的定时器都很准.这个问题一两个星期了.头都大了.<br /><br />再补充一点:我在用这块开发板时,曾经将开发板外接的LCD烧掉,是开发板带的LCD,不是现在的这块.当时由于开发板放在我左手边,我用右手插电源时不放便,换了个手,但没换方向,电源插反了.不过,我很快发现了关了电源.这样会不会对开发板的其它模块有影响?有没有可能我现在遇到的问题跟硬件相关,可能不是软件问题呢?问下懂硬件的高手.
 楼主| sxh924 发表于 2008-11-18 09:27 | 显示全部楼层

补充说明

我要在LCD上显示系统当前时间,本来是用定时器1每秒产生一个中断来调用一个时间更新函数.但按键按下时定时器1的时间跑乱了,我发现是定时器1进入中断提次数太快所致.就是说可能在10ms它就进入了中断,而我定的是100ms.下面是我的定时器0-1的设置.<br /><br />void&nbsp;TimerInit(void)<br />&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DisableIrq(BIT_TIMER0);<br />&nbsp;&nbsp;&nbsp;&nbsp;DisableIrq(BIT_TIMER1);<br />&nbsp;&nbsp;&nbsp;&nbsp;pISR_TIMER0&nbsp;=&nbsp;(U32)OSTickISR;<br />&nbsp;&nbsp;&nbsp;&nbsp;pISR_TIMER1&nbsp;=&nbsp;(U32)Time1Handler;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCFG0&nbsp;=&nbsp;0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//prscale:-timer0-1:256<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCFG1&nbsp;=&nbsp;0x30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//divider:-timer0-2,timer1-16<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCNTB0&nbsp;=&nbsp;(PCLK/512)/OS_TICKS_PER_SEC;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCNTB1&nbsp;=&nbsp;(PCLK/(256*16))/10;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCMPB0&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCMPB1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCON&nbsp;=&nbsp;0xa0a;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCON&nbsp;&=&nbsp;~((1&lt&lt1)|(1&lt&lt9));<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCON&nbsp;|=&nbsp;((1&lt&lt0)|(1&lt&lt8));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EnableIrq(BIT_TIMER0);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EnableIrq(BIT_TIMER1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;}&nbsp;<br /><br />另外值得一提的是,我在最初移植UCOS-II时用的是定时器0,设置如下:<br />void&nbsp;Timer0Init(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;DisableIrq(BIT_TIMER0);<br />&nbsp;&nbsp;&nbsp;&nbsp;pISR_TIMER0&nbsp;=&nbsp;(U32)OSTickISR;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCFG0&nbsp;=&nbsp;0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;rTCFG0&nbsp;&=&nbsp;~(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCFG1&nbsp;=&nbsp;0x0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;rTCFG1&nbsp;&=&nbsp;~(0xf);<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCNTB0&nbsp;=&nbsp;(PCLK/512)/OS_TICKS_PER_SEC;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCMPB0&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCON&nbsp;=&nbsp;0xa;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;rTCON&nbsp;|=&nbsp;(1&lt&lt3)|(0&lt&lt2)|(1&lt&lt1)|(0&lt&lt0);<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCON&nbsp;&=&nbsp;~(1&lt&lt1);<br />&nbsp;&nbsp;&nbsp;&nbsp;rTCON&nbsp;|=&nbsp;(1&lt&lt0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//start&nbsp;timer0&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EnableIrq(BIT_TIMER0);&nbsp;<br />&nbsp;}<br />这样可以正常运行,但设置为备注中的表达式时不能正常运行?检查发现备注中的设置应该没问题我运行程序时发现OSTime值明显不对,感觉比实际时间大太多,我曾在网上参考过别人对2440定时器的设置,但用在我的系统上时,都会跑乱,最后自己按上面的设置时才能正常工作.谢谢各位。我的PCLK=405MHz,为什么?<br />
阿南 发表于 2008-11-18 13:00 | 显示全部楼层

这个只能到现场调试才能确定原因了

不好意思,帮不了楼主
 楼主| sxh924 发表于 2008-11-18 16:01 | 显示全部楼层

给点建议

阿南版主,我不怎么懂硬件,我想问下,如果从硬件上来看的话,有什么测试手段来测试我的开发板各个功能模块都能正常工作呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

59

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部