Hallo
Für Programme die keine Leds verwenden ist es grundsätzlich nicht falsch die entsprechenden Pins als Eingang zu definieren. Wenn die Leds dann doch verwendet werden sorgt die entsprechende Funktion für die richtige Datenrichtung:
Code:
void updateStatusLEDs(void)
{
DDRB &= ~0x83;
PORTB &= ~0x83;
if(statusLEDs.LED4){ DDRB |= SL4; PORTB |= SL4; }
if(statusLEDs.LED5){ DDRB |= SL5; PORTB |= SL5; }
if(statusLEDs.LED6){ DDRB |= SL6; PORTB |= SL6; }
DDRC &= ~0x70;
PORTC &= ~0x70;
DDRC |= ((statusLEDs.byte << 4) & 0x70);
PORTC |= ((statusLEDs.byte << 4) & 0x70);
#ifdef POWER_ON_WARNING
leds_on = (leds_on ? leds_on : (statusLEDs.byte && 1));
#endif
}
(Aus der Datei RP6RobotBaseLib.c der RP6-Library)
Sogar hier werden die Pins PB0, Pb1 und PB7 zuerst als Eingang definiert, 0x83 ist 0b10000011
Gruß
mic
Lesezeichen