ElchiMtr
30.03.2011, 22:24
Hey leute,
ich versuche ein Signal zur Servosteuerung zu erzeugen.
Dazu habe ich folgende ISR geschrieben
ISR(TIMER0_OVF_vect)
{
TCNT0 = preload0;
countTimer0++;
if(countTimer0 <= 2000)
countTimer0 = 0;
if(countTimer0 == 0)
PORTA |= (1 << 1);
if(countTimer0 == 100 + Servo1)
PORTA &= ~(1 << 1);
}
der Timeroverflowinterupt wird alle 10µs ausgelöst so dass 2000 Aufrufe gerade 20ms ergeben. Die Variable Servo enthält zu Beginn den Wert 50.
Also sollte der PinA2 nach 1,5ms wieder auf LOW gehen.
Aber das klappt iwie gar net. Da alles so schnell geht kann ichs mit ner LED nicht testen und nen oszi habe ich net.
Jetzt meine Frage kann das so überhaupt klappen ?
und könnte es sein, dass der Storm aus dem AVR (ATMEGA32) nicht zum Steuern der Taktleitung ausreicht ?
Wenn das nicht ausreicht sagt mir bitte welche Infos ihr noch benötigt.
Vielen Dank für eure hilfe.
ich versuche ein Signal zur Servosteuerung zu erzeugen.
Dazu habe ich folgende ISR geschrieben
ISR(TIMER0_OVF_vect)
{
TCNT0 = preload0;
countTimer0++;
if(countTimer0 <= 2000)
countTimer0 = 0;
if(countTimer0 == 0)
PORTA |= (1 << 1);
if(countTimer0 == 100 + Servo1)
PORTA &= ~(1 << 1);
}
der Timeroverflowinterupt wird alle 10µs ausgelöst so dass 2000 Aufrufe gerade 20ms ergeben. Die Variable Servo enthält zu Beginn den Wert 50.
Also sollte der PinA2 nach 1,5ms wieder auf LOW gehen.
Aber das klappt iwie gar net. Da alles so schnell geht kann ichs mit ner LED nicht testen und nen oszi habe ich net.
Jetzt meine Frage kann das so überhaupt klappen ?
und könnte es sein, dass der Storm aus dem AVR (ATMEGA32) nicht zum Steuern der Taktleitung ausreicht ?
Wenn das nicht ausreicht sagt mir bitte welche Infos ihr noch benötigt.
Vielen Dank für eure hilfe.