Ir ao conteúdo
  • Cadastre-se

Interrupções em microcontroladores AVR


mustang'a

Posts recomendados

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!

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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