Ir ao conteúdo
  • Cadastre-se

Programando micro AVR em C - duvida interrupções


Paivas

Posts recomendados

Ola pessoal

Sou iniciante em programar microcontroladores. estou programando a butterfly, e desenvolvi o seguinte código.

#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);
}

Pretendo que o valor de PORTD apresente o valor da variavel var_3, que corresponde à tensão máxima existente no porto de entrada B num determinado periodo de tempo.

Sempre que ocorre uma interrupção por overflow do timer, a variavel var_3, e portanto o portoD, apresentam um valor 0x00, e não o valor máximo.

Que posso fazer para que quando ocorra uma interrupção, o portoD apresente o valor máximo ocorrido?

obrigado pela atenção:)

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