Hi,
so jetzt habe ich endlich zeit gehabt um deine Fehler zu korrigieren:
Aber leider tut sich immer noch nichts! Ich weiß nicht woran es liegen kann! Naja vielleicht könnt ihr ja was im Quellcode finden! Danke für eure hilfe!Code:#include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> #include <inttypes.h> #include <math.h> volatile unsigned char servowert; volatile unsigned char puls; volatile unsigned char zaehler; int set_servo(volatile uint8_t pos) { servowert = (pos/180) + 1; } int main(void) { zaehler = 0; sei(); DDRD = (1<<PD7); PORTD = (1<<PD7); //Timer0 übernimmt die Highphase //muss 1ms sein also 25 Takte bei einem Prescaler von 64 puls = 25; TCCR2 = (1<<CS21) | (1<<CS20); TCNT2 = (255-puls); TIMSK = (1<<TOIE0); for(;;) { } } SIGNAL(SIG_OVERFLOW2) { if(zaehler == 0) { PORTD &= ~(0<<PD7); TCNT2 = (255-puls); zaehler++; //PORTB = (0<<PB0); } else if ( (zaehler > 0 ) && (zaehler < 20 ) ) { TCNT2 = (255-puls); zaehler++; } else { TCNT2 = (255-puls); zaehler = 0; PORTD = (1<<PD7); } }
matic







Zitieren

Lesezeichen