打印

麻烦帮忙看看系统时钟的问题

[复制链接]
1461|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LastNew|  楼主 | 2008-1-10 13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近学习做个小系统,用了T2做了个系统时钟,发现有个问题,想不明白。

下面的程序是这个意思:在P1口上接了8个LED,每秒钟依次亮一个;时钟是5ms,m是计数,200个系统时钟后点一个灯。

现在的问题是:在系统中断里对m的操作没有效果,AAAA注释下的是我为了判断有没有进入中断加的,以前是BBBB段代码,用AAAA仿真的时候灯亮,也很暗(因为是5ms一次,看不出来,所以都亮,都很暗,这个结果应该是对的吧?),但用BBBB段代码仿真的时候就什么反映都没了,想不明白

#include <system.h>

unsigned char m;

void SystemTimer(void) interrupt 5       //5mS
{    
    TF2=0;    

    if(P1==0x7f)                  //=====================AAAA
        P1=0xfe;
    else
        {P1<<=1;P1+=1;} 
 
/*     m--;                          //=====================BBBB

if(m==0)                  // 1 s
{
    m=200;
                      
    if(P1==0x7f)
        P1=0xfe;
    else
        {P1<<=1;P1+=1;}    
}*/
}

void SystemInit(void)
{
    IP=0x20;                       // IP:   定时器 2中断优先                             
    IE=0x20;                       // IE:   开定时器 2中断                
    EA=1;
    T2CON=0x00;                      
    
    timeload=TIMEdata(50);             //定时器重载值

    TH2=timeload/256;
    TL2=timeload%256;   
            
    TR2=1;

    RCAP2H=timeload/256;
    RCAP2L=timeload%256;

    m=200;
}
void main(void)
{
     P1=0xfe;

    SystemInit();

    while(1)
    {    };     
}

相关帖子

沙发
LastNew|  楼主 | 2008-1-10 14:04 | 只看该作者

好像可以解决了,但是不知道为什么

好像可以解决了,但是不知道为什么

刚开始用的Large内存模式,改为Small模式就好了,不知道为啥,从哪里着手去搞明白它

使用特权

评论回复
板凳
LastNew|  楼主 | 2008-1-10 14:37 | 只看该作者

还是麻烦

keil用户手册上没有详细的介绍,关于Small模式和Large模式到底是怎么个回事啊,貌似只关系到变量的存储时间啊

我试过发现这个现象:变量在Small模式时初始化是0x00,而在Large模式下是0xFF.

用到Large模式是因为加上别的模块时不够用,以后必须要用Large模式的啊,急死了

使用特权

评论回复
地板
孤星119| | 2008-1-10 15:43 | 只看该作者

程序错了.

 while(1)
    {    }     
改为while(1);

使用特权

评论回复
5
LastNew|  楼主 | 2008-1-10 17:11 | 只看该作者

谢ls

加了还是一样的,还是large模式下出问题

使用特权

评论回复
6
zjzx| | 2008-1-10 17:26 | 只看该作者

仿真不能仿LARGE模式吧

仿真不能仿LARGE模式吧,猜测的
直接烧进去试一下,用BBBB那个代码

使用特权

评论回复
7
LastNew|  楼主 | 2008-1-10 17:48 | 只看该作者

谢ls

我选的芯片内部有AUX_RAM,容量1k

使用特权

评论回复
8
LastNew|  楼主 | 2008-1-10 18:20 | 只看该作者

ls

内置RAM也不能仿真吗

使用特权

评论回复
9
LastNew|  楼主 | 2008-1-10 18:50 | 只看该作者

应该可以

要不怎么code可以是large模式的呢

使用特权

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

本版积分规则

62

主题

352

帖子

0

粉丝