Hallo,
ich habe ein paar Fragen zur Initialisierung der Ports des ATMEGAs und
hoffe mir kann Jemand auf die Sprünge helfen:
1.) Direkt am Anfang in main() werden die DDRs der Ports gesetzt wie in
pinning.c definiert, welches sich wiederum aus der pinning.m4 Datei und/oder
der
named_pin.c ergibt. Habe ich das so richtig verstanden?
2.) Anschließend werden in main() die PORT Register durch die Funktion
portio_init() in core/portio/portio.c initialisiert, wie in pinning.c
definiert,
welches sich wiederum aus der pinning.m4 Datei und/oder der named_pin.c ergibt.
Habe ich das so richtig verstanden?
3.) Soweit zum Verständnis, jetzt aber zu meinem Problem. Ich habe
NAMED_PIN_SUPPORT aktiviert und in meiner Config einige Pins als OUTPUT und
einen PIN als INPUT active LOW definiert. Wenn ich das ganze compiliere werden
die DDRs für meine konfigurierten PINs korrekt gesetzt jedoch wird der interne
Pull-Up für den einen INPUT Pin nicht aktiviert. In named_pin.c finde ich
folgendes:
/* If input and active low set pullup */
if (input &&
(pgm_read_byte(&portio_pincfg[i].active_high) == 0))
vport[port].write_port(port,
vport[port].read_port(port) | _BV(pin));
i++;
}
Da ich den einen INPUT Pin als active LOW in NAMED_PIN definiert habe, wäre
ich davon ausgegangen, dass die Funktion dafür sorgt, dass der Pull-Up bei der
Initialisierung aktiviert wird. Wird er aber nicht.
Hat Jemand einen Hinweis woran das liegen könnte??
Danke und Gruß,
Pewel
_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel