Leider bekomme ich nachstehendes Programm auch nach Durchsicht aller Forums Beiträge/Tutorials nicht zum laufen.
Mit dem Programm soll die Dauer von RC-Impulse gemessen werden.
Zum Einsatz kommt ein ATtiny84 zum Einsatz. Programmiert wird mit Atmel Studio 7.
Nun zu meinem Code:
Hoffe es findet sich jemand, der so freundlich ist und mir weiter hilft.Code:/********** ATtiny84A 8MHz ***************/ #include<avr/io.h> #include <avr/interrupt.h> #define F_CPU 8000000UL uint16_t start_puls,end_puls,laenge_puls; uint8_t steigend, fallend; void init_timer_0 (void) { TCCR0A = 0x00; TCCR0B = (1<<CS01) + (1<<CS00); TIMSK0 = (1<<TOIE0) ; TCNT0 =131; } void init_timer_1(void) { TCCR1A=0x00; TCCR1B= (1<<CS11); } ISR (INT0_vect) { if (steigend == 1) { start_puls=TCNT1; steigend=0; MCUCR |= (1<<ISC01); MCUCR &= ~(1<<ISC00); } else { end_puls=TCNT1; laenge_puls=end_puls-start_puls; steigend=1; MCUCR |= (1<<ISC01); MCUCR |= (1<<ISC00); } } int main(void) { init_timer_1(); DDRA = 0xFF; DDRB &= ~(1<<PORTB2); MCUCR |= (1<<ISC01) | (1<<ISC00); // INT0 auf steigende Flanke GIMSK |= (1<<INT0); sei(); while(1) { if (laenge_puls<1300) { PORTA = 0b00000001; } if ((laenge_puls>1300)&&(laenge_puls<1700)) { PORTA = 0b00000010; } if(laenge_puls>1700) { PORTA = 0b00000100; } } }







Zitieren
Lesezeichen