Hallo Paolo,
Die Änderungen für Fahrtregler an ADC0/1 sind echt nicht so schlimm:Zitat:
... ,Dirk mit deinem Demo Programm komme ich leider noch nicht ganz klar. Ich habe da immer wieder Fehler Meldungen wenn ich da die ADC1 u. ADC2 einfüge, irgentwas mach ich da falsch, ...
In der RP6BaseServoLib.h änderst du die 4 Zeilen:
... in:Code:#define SERVO7_PULSE_ON (PORTC |= SCL) // PC0
#define SERVO7_PULSE_OFF (PORTC &= ~SCL)
#define SERVO8_PULSE_ON (PORTC |= SDA) // PC1
#define SERVO8_PULSE_OFF (PORTC &= ~SDA)
Und in der RP6BaseServoLib.c änderst du die 2 Zeilen:Code:#define SERVO7_PULSE_ON (PORTA |= ADC0) // PA0
#define SERVO7_PULSE_OFF (PORTA &= ~ADC0)
#define SERVO8_PULSE_ON (PORTA |= ADC1) // PA1
#define SERVO8_PULSE_OFF (PORTA &= ~ADC1)
... in:Code:if (servos & SERVO7) {DDRC |= SCL; PORTC &= ~SCL;}
if (servos & SERVO8) {DDRC |= SDA; PORTC &= ~SDA;}
Meine Demo vom 8.3. in diesem Thread schreibst du so um (der Rest der Demo bleibt gleich!):Code:if (servos & SERVO7) {DDRA |= ADC0; PORTA &= ~ADC0;}
if (servos & SERVO8) {DDRA |= ADC1; PORTA &= ~ADC1;}
Viel Erfolg!Code:// Initialize the servo lib for use of servos 7, 8:
initSERVO(SERVO7 | SERVO8);
startStopwatch2(); // Used for the demo
pos = 2; // Start with motor
stopped
servo7_position = MOTOR_STOP;
servo8_position = MOTOR_STOP;
while(true)
{
// ---------------------------------------------------------------------
// The demo code for positioning a drive controller (servo 1):
if (getStopwatch2() > 5000) { // Change position every ~5s
if (pos == 0) {
servo7_position = MOTOR_BACK_FULL;
servo8_position = MOTOR_BACK_FULL;}
if (pos == 1) {
servo7_position = MOTOR_BACK_HALF;
servo8_position = MOTOR_BACK_HALF;}
if (pos == 2) {
servo7_position = MOTOR_STOP;
servo8_position = MOTOR_STOP;}
if (pos == 3) {
servo7_position = MOTOR_FORWARD_HALF;
servo8_position = MOTOR_FORWARD_HALF;}
if (pos == 4) {
servo7_position = MOTOR_FORWARD_FULL;
servo8_position = MOTOR_FORWARD_FULL;}
if (pos == 5) {
servo7_position = MOTOR_FORWARD_HALF;
servo8_position = MOTOR_FORWARD_HALF;}
if (pos == 6) {
servo7_position = MOTOR_STOP;
servo8_position = MOTOR_STOP;}
if (pos == 7) {
servo7_position = MOTOR_BACK_HALF;
servo8_position = MOTOR_BACK_HALF;}
pos++;
if (pos > 7) {pos = 0;}
setStopwatch2(0);
}
// ---------------------------------------------------------------------
Gruß Dirk