Ir ao conteúdo
  • Cadastre-se
mustang'a

Interrupções em microcontroladores AVR

Recommended Posts

Olá! tenho de programar uma placa AVR e desejava realizar as seguintes tarefas:

-iniciar a conversao ADC e realiza-la durante 10s;

-após os 10s, parar a conversao do sinal analogico;

-realizar algumas tarefas sobre o sinal digital obtido como,epx, o maximo valor obtido durante os 10segungos..

Tentei perceber o codigo que o Paivas postou aqui, que é:

#include <avr/io.h>

#include <avr/interrupt.h>

int var_3=0x00;

void iniciarInt(void)

{

TIMSK0|=(1<<TOIE0);

TCCR0A|=(0<<CS02)|(0<<CS01)|(1<<CS00);

SREG|=(1<<7);

}

int main(void)

{

int var_1;

iniciarInt();

while(1)

{

var_1=PINB;

if(var_1>var_3)

{

var_3=var_1;

}

}

}

ISR(TIMER0_OVF_vect)

{

SREG|=(0<<7);

DDRD=0xFF;

PORTD=var_3;

var_3=0x00;

SREG|=(1<<7);

}

Só que nao percebo muito bem. Sera que alguem me podia explicar? ficaria mt grato.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Salve, mustang'a.

Não sei o que faz esse programa, mas, ele não usa captura pelo AD.

A frequência máxima de operação do AD do AVR, é de 1MHz, dependendo do cristal. Na prática, é um pouco menos do que isso, mas, fica bem próximo disso.

você realmente precisa amarrar a máquina durante esses 10 segundos?

E bixo, tú não é carioca, não, né? eheheheheheheh

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×