-
-
Erfahrener Benutzer
Robotik Visionär
Hi RobotMichi,
leider kann ich kein Bascom. Aber so wie ich Deinen Code verstehe, setzt Du da etliche DDRnx´s auf 1 => Du definierst die zugehörigen Pins als Ausgänge. Dann setzt Du noch etliche PORTnx´s => damit weist Du den Controller an, den entsprechenden Pin (!) auf 1 = high = 5V zu schalten. Und das stellst Du ja dann auch fest, oder habe ich da etwas falsch verstanden?
Wenn ich einen ADC einlesen möchte, dann ist der entsprechende Pin bei mir ein Eingang, das entsprechende DDRnx wird auf 0 (in Worten: Null) gesetzt, in C sieht das etwa so aus: ((ADDR) &= ~(1<<(BIT))). Beim ADC macht es eigentlich wenig Sinn, den internen Pullup einzuschalten. Der bleibt auf Null oder wird in dieser speziellen Anwendung (als analoger Eingang), wenn vorher etwas Unklares passiert sein könnte, explizit auf Null gesetzt. Bei manchen "anderen" Eingängen wird der interne PullUp geschaltet - das kommt aber ganz auf die Problem-/Fragestellung an. Denk daran:
Pins/Ports mit DDRnx als Ein- (0) oder Ausgänge (1) definieren, Pull Ups bei Eingängen (DDRnx = 0!!) mit PORTnx (1) aktivieren, mit (0) ausschalten, Ausgänge (DDRnx = 1 !!) mit PORTnx einschalten durch (1) oder ausschalten durch (0). Geschaltete Ausgänge können etwa 20 mA treiben - siehe Datenblatt für ausführlichere Angaben.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen