打印

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

[复制链接]
2231|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sxh924|  楼主 | 2008-11-17 17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
阿南| | 2008-11-17 19:20 | 只看该作者

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

最好把问题描述的清楚些

使用特权

评论回复
板凳
sxh924|  楼主 | 2008-11-18 09:14 | 只看该作者

详细的情况是这样的.

我用S3C2440外接了一个智能LCD,就是只要发送命令就可以让LCD显示.没有用S3C2440本身的LCD模块.我先是在2440上移植了最新的UCOS-II,用2440的定时器0作为系统时钟,测试了两个任务,系统时钟能正确计时.我用的是一款开发板,用J口作为按键接口(J口在开发板上是用来接摄像头的,但我没使用,就改为一般的输入端口了),但在我按下按键后发现我的系统时钟乱了,时间跑得非常快.按理说按键接口跟定时器没有直接的联系的.如果我不按按键,我的定时器都很准.这个问题一两个星期了.头都大了.

再补充一点:我在用这块开发板时,曾经将开发板外接的LCD烧掉,是开发板带的LCD,不是现在的这块.当时由于开发板放在我左手边,我用右手插电源时不放便,换了个手,但没换方向,电源插反了.不过,我很快发现了关了电源.这样会不会对开发板的其它模块有影响?有没有可能我现在遇到的问题跟硬件相关,可能不是软件问题呢?问下懂硬件的高手.

使用特权

评论回复
地板
sxh924|  楼主 | 2008-11-18 09:27 | 只看该作者

补充说明

我要在LCD上显示系统当前时间,本来是用定时器1每秒产生一个中断来调用一个时间更新函数.但按键按下时定时器1的时间跑乱了,我发现是定时器1进入中断提次数太快所致.就是说可能在10ms它就进入了中断,而我定的是100ms.下面是我的定时器0-1的设置.

void TimerInit(void)
 {  
    DisableIrq(BIT_TIMER0);
    DisableIrq(BIT_TIMER1);
    pISR_TIMER0 = (U32)OSTickISR;
    pISR_TIMER1 = (U32)Time1Handler;   
     
    rTCFG0 = 0xff;                    //prscale:-timer0-1:256
    rTCFG1 = 0x30;                    //divider:-timer0-2,timer1-16
    rTCNTB0 = (PCLK/512)/OS_TICKS_PER_SEC;
    rTCNTB1 = (PCLK/(256*16))/10;    
    rTCMPB0 = 0;
    rTCMPB1 = 0;
    rTCON = 0xa0a;
    rTCON &= ~((1<<1)|(1<<9));
    rTCON |= ((1<<0)|(1<<8));                        
    EnableIrq(BIT_TIMER0); 
    EnableIrq(BIT_TIMER1);                   
    
 } 

另外值得一提的是,我在最初移植UCOS-II时用的是定时器0,设置如下:
void Timer0Init(void)
{  
    DisableIrq(BIT_TIMER0);
    pISR_TIMER0 = (U32)OSTickISR;        
    rTCFG0 = 0xff;                          // rTCFG0 &= ~(0x00);
    rTCFG1 = 0x0;                           // rTCFG1 &= ~(0xf);
    rTCNTB0 = (PCLK/512)/OS_TICKS_PER_SEC;
    rTCMPB0 = 0;
    rTCON = 0xa;            // rTCON |= (1<<3)|(0<<2)|(1<<1)|(0<<0);
    rTCON &= ~(1<<1);
    rTCON |= (1<<0);              //start timer0 
    EnableIrq(BIT_TIMER0); 
 }
这样可以正常运行,但设置为备注中的表达式时不能正常运行?检查发现备注中的设置应该没问题我运行程序时发现OSTime值明显不对,感觉比实际时间大太多,我曾在网上参考过别人对2440定时器的设置,但用在我的系统上时,都会跑乱,最后自己按上面的设置时才能正常工作.谢谢各位。我的PCLK=405MHz,为什么?

使用特权

评论回复
5
阿南| | 2008-11-18 13:00 | 只看该作者

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

不好意思,帮不了楼主

使用特权

评论回复
6
sxh924|  楼主 | 2008-11-18 16:01 | 只看该作者

给点建议

阿南版主,我不怎么懂硬件,我想问下,如果从硬件上来看的话,有什么测试手段来测试我的开发板各个功能模块都能正常工作呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

59

帖子

0

粉丝