Hallo,
ich möchte mit der RN-Control ein einfaches Servo von Conrad
per Software PWM ansteuern. Komisch ist wenn der Controller die
ISR ausführt dann stürzt er ab. Servo bewegt sich kurz und macht dann
nichts mehr. Ich hab auch schon alles mögliche ausprobiert und
per Try and Error andere Werte eingesetzt jedoch verhält sich
der Servo stets gleich. Kurze Bewegung und stop.
Vielleicht kann mir ja einer weiterhelfen...
Hier der Code:
Viele GrüsseCode:#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int ontime = 0; int offtime = 2000; ISR(TIMER0_COMP_vect) { static int onBuf; if( offtime - ontime > 0 ) { onBuf = ontime; offtime--; } else { if( onBuf == 0 ) { offtime = 2000; PORTA &= ~0x80; onBuf = ontime; } else { if( onBuf == ontime ) PORTA |= 0x80; onBuf--; } } } int main(void) { DDRA = 0x80; PORTA = 0x00; // CLK/8 Prescaler CS01 TCCR0 = (1<<CS01); OCR0 = 20; // 16000000/8 = 1999490/20 = 99974,50Hz => 0,01ms TIMSK |= (1<<OCIE0); sei(); int i = 0; ontime = 3; // links for(i=0;i<312;i++) _delay_ms( 16 ); ontime = 11; // mitte for(i=0;i<312;i++) _delay_ms( 16 ); ontime = 19; // rechts for(i=0;i<312;i++) _delay_ms( 16 ); ontime = 0; while(1); }
Thomas







Zitieren

Lesezeichen