Ir ao conteúdo

Posts recomendados

Postado

Bom Dia:

Estou tendo problemas para fazer o TMR2 do at89s52 (família do 8051) funcionar com o 

auto-reload.

Se alguém estiver vendo  no meu programa algum erro que eu não estou conseguindo enxergar,

por gentileza, se manifeste...

 

valor após reset do registrador T2CON configura o timer 2 para 16bits auto-reload,o 
valor após reset do registrador T2MOD configura o timer 2 para contagem progressiva

 

void main(){
EA=1; // habilita chave geral das interrupções
ET2=1;// habilita a interrupção do TMR2
RCAP2H=0X3C;  // CONFIGURA O VALOR DE AUTO-RELOAD
RCAP2L=0XAF;  // CONFIGURA O VALOR DE AUTO-RELOAD
TR2=1; // inicia a contagem do TMR2
LCD_init();

...........

 

void timer() interrupt 1{
      TF2=0;      //apaga o flag da interrupção do TMR2
      voltas++;
      if(voltas==20){
          voltas=0;
          contagemS++;}
          
      if(contagemS >= 60){          
          contagemS=0;
          contagemM++; }     
                                           
      if(contagemM >= 60){
          contagemM=0;
          contagemH++;    }
   
       }                        

 

 


 

at89s52_ds.pdf

Postado

Achei o erro.

 

A palavra de associação do TMR2 é interrupt 5. Eu estava usando a palavra de 

associação interrupt 1 que é do TMR0.

 

Corrigi e está tudo funcionando. 

 

Josias001

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!