bombernigno Inserito: 16 gennaio 2012 Segnala Share Inserito: 16 gennaio 2012 Ciao a tutti,ho scritto questo programma in avr studio 4 ma quando sono andato a simularlo non capisco perchè non mi setta il valore di PORTB uguale a quello contenuto nella variabile "conteggio"avete qualche idea?#include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h>unsigned char prox_fronte;int conteggio;unsigned char over;void main(void) { prox_fronte=0; DDRD=(0x00); // la porta D è impostata come in PORTD=0x00; SREG=0b10000000; // abilito gli interrupt MCUCR=0b00001100; //settaggio interrupt su INT0 GIMSK=0b10000000; // set interrupt sul fronte di salita sul PIND 3 TIMSK=0x02; sei(); // abilitazione degli interrupt generali DDRB=0xff; over=0x00; while(1) { PORTB=conteggio; _delay_ms(1); } } //*************************************************************************ISR(INT1_vect) { if (prox_fronte==0) { TCNT0=0x00; //set del contatore a 0 TCCR0=0x03; // accensione del contatore con prescaler clock/256 GIFR=0x00; // cancellazione dei flag prox_fronte=1; } else { conteggio=TCNT0; prox_fronte=0; TCCR0=0x00; } }//**************************************************************************ISR(TIMER0_OVF0_vect) { over=over+1; } Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora