Die Lib kann 8 Servos an PC2 bis PC7 und PD5, PD6 ansteuern. ADC3 ist nicht vorgesehen.Nur wenn ich das hex File auf den RP6 spiele, passiert mit dem Servo nichts...
Wenn du doch ADC3 für SERVO1 nehmen willst:
1. Änderungen in der RP6ControlServoLib.h:
a) Im Abschnitt // Servo ports:
Die 2 Zeilen:
#define SERVO1_PULSE_ON (PORTC |= IO_PC2) // PC2
#define SERVO1_PULSE_OFF (PORTC &= ~IO_PC2)
... auskommentieren oder löschen.
b) Dafür einfügen:
#define SERVO1_PULSE_ON (PORTA |= ADC3) // PA3
#define SERVO1_PULSE_OFF (PORTA &= ~ADC3)
2. Änderungen in der RP6ControlServoLib.c:
a) In der Funktion initSERVO() die Zeile:
if (servos & SERVO1) {DDRC |= IO_PC2; PORTC &= ~IO_PC2;}
... auskommentieren oder löschen.
b) Stattdessen einfügen:
if (servos & SERVO1) {DDRA |= ADC3; PORTA &= ~ADC3;}
Du kannst dann dein Servo als SERVO1 ansteuern, also die Initialisierung sieht so aus:
initSERVO(SERVO1);
... und die Positionsänderungen erfolgen mit der Variable: servo1_position (in deiner Demo ist das schon so!)
Lesezeichen