Problem:
Leider hat das auch noch nicht ganz funktioniert, der Compiler schreibt mir folgende Fehlermeldungen hin:
Code:
../RP6Lib/RP6control/RP6ControlLib.c: In function 'initRP6Control':
../RP6Lib/RP6control/RP6ControlLib.c:935: error: static declaration of '__vector_9' follows non-static declaration
../RP6Lib/RP6control/RP6ControlLib.c:934: error: previous declaration of '__vector_9' was here
../RP6Lib/RP6control/RP6ControlLib.c: In function '__vector_9':
../RP6Lib/RP6control/RP6ControlLib.c:936: warning: implicit declaration of function 'servoAnsteuerung'
Die Einstellungen für den Timer 1 sehen wie folgt aus:
Code:
TCCR1A= (0 << COM1A1)
| (0 << COM1A0)
| (0 << COM1B1)
| (0 << COM1B0)
| (0 << FOC1A)
| (0 << FOC1B)
| (0 << WGM11)
| (0 << WGM10);
TCCR1B= (0 << ICNC1)
| (0 << ICES1)
| (0 << WGM13)
| (1 << WGM12) //CTC-Mode (Auslösen bei OCR1A-->TOV1 to MAX
| (1 << CS12) //Prescaller = 256
| (0 << CS11)
| (0 << CS10);
OCR1A = 625;
TIMSK = (0 << TICIE1)
| (0 << OCIE1A)
| (0 << OCIE1B)
| (1 << TOIE1); //wird ausgelöst wenn TOV1 set
ISR(TIMER1_OVF_vect)
{
servoAnsteuerung();
}
Ich habe das direkt in die bereits vorhandene RP6Controlllib.c geschrieben. Das Unterprogramm servoAnsteuerung steht in einem anderen File (wo auch das Hauptprogramm steht) aber deswegen müsste er es doch trotzdem finden. Warum funktioniert der Timer1 nicht so wie ich das mache? Ich habe mir auch die funktion von TIMER0 angesehen, aber das ist im Prinzip das gleiche denke ich.
Aber ich habe auch eine erfreuliche Nachricht:
Inzwischen ist das 4x20 Display vom Conrad gekommen, ich habe schon geschafft auf dem ziemlich viel Text auszugeben und vielleicht bau ich mir in den nächsten Tagen zusätzlich zur Zustandsanzeige, die derzeit die Position der einzelnen Servos angibt noch eine kleine Wetterstationd dazu.
Lesezeichen