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

Antwort per Email an