Ir ao conteúdo

PIC Nao estou conseguindo configurar a interrupçao do ADC


Ir à solução Resolvido por .if,

Posts recomendados

Postado

gente o profesSor fernando do Microgenios pediu para fazer um exercicio onde mostro no lcd o valor do ADC E USAR também A iNTERRUPÇAO, 

A parte de amostragem no lcd esta tudo beleza ja, mais a interrupçao nao funciona de maneira nehuma, o Flag (ADIE) so fica em 1 mesmo eu zerando ela. alguem me ajuda a encontrar onde estou errando? estou usando o pic 18f25k20

 

 

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;

void Interrupt_()
{

 GIE_bit  = 1;//Ativa interrupçao global
 //PEIE_bit = 1;//Interrupções periféricas habilitadas
 ADIE_bit = 1;
 
 ADIF_bit = 0;


}

void Init_ADC()
{

 ADCON0 = 0B00000001;
 ADCON1 = 0B00000000;
 ADCON2 = 0b10101110;

}

void main()
{
 unsigned int resultADC;
 unsigned char txt [6];
 unsigned char txt1 [6];
 
 TRISA = 1;
 PORTA = 0;
 
 TRISC = 0;
 PORTC = 0;
 
 TRISB = 0;
 PORTB = 0;
 
 C1ON_bit = 0;
 C2ON_bit = 0;
 
 Init_ADC(); 
 Interrupt_();
 ADC_Init();
 Lcd_Init();

 
 Lcd_Cmd(_LCD_CLEAR);
 Lcd_Cmd(_LCD_CURSOR_OFF);
 
 while(1)
 {
 
  resultADC = ADC_read(0);//ResultADC recebe o valor do conversor AD
  

  
  if(ADIF_bit == 1 )
  {
   RC7_bit = ~rc7_bit;


   ADIF_bit = 0;
  }


 WordToStr(ADIF_bit, txt);
 Lcd_Out(1, 1, txt);//Exibe no lcd o valor do conversor ADC
 
 WordToStr(resultADC, txt1);
 Lcd_Out(2, 7, txt1);//Exibe no lcd o valor do conversor ADC
 delay_ms(500);
 }

}

 

  • Membro VIP
  • Solução
Postado

O flag sempre vai ser 1 pois ele seta a cada leitura ad e esta está dentro do loop infinito. Tire do loop e coloque isso...

 if(ADIF_bit == 1 )
  {
   RC7_bit = ~rc7_bit;


   ADIF_bit = 0;
  }

dentro da interrupt pra ver pra crer pra entender pra me explicar😁

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!