PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgangsspannung AVR Microcontroller



Patricko
20.06.2012, 14:53
Hi,

hab mal meine Pins folgendermaßen deklariert:

DDRB = 0x00; //Port B0...B7 are used as inputs
PORTB |= (1<<PB1); //internal pull-up for push-button at PortB1 activated

und würde jetzt eigentlich erwarten, wenn ich die Spannung an PB1 zu GND messe, dass ich dann 5V habe!?
In meinem Fall sind es 0V.
Wenn ich den Pull-up deaktiviert hätte, wären es 0V!?
Woran liegt das?
Gibt es eigentlich irgendwo ne gute Beschreibung zu den versch. Aus- und Eingängen, wie Sie beschaltet, angesteuert werden können und was für ne Ausgangsspannung anliegen sollte?


Danke.

Patrick

HeXPloreR
20.06.2012, 15:07
hey,
ich würde sagen du hast deinen Port komplett zu einem Eingang gemacht.
Da kommt also nichts raus. Ports automatisch alle auf "0" also Eingänge initialisiert.

Versuch mal: DDRB = 1; //Port B0 is used as OUTPUT ; B1...B7 are used as INPUT


Wenn du wirklich den zweiten PortPIn ( PORTB1) benutzen möchtest, solltest du DDRB = 2 (z.B binär = 0b00000010) schreiben und Kommentar ggf anpassen.

Zum Pullup bin ich mir nicht ganz sicher deshalb sag ich da mal nichts ;)

Viel Grüße

PS: Bitte Bitte hab ich doch gern gemacht...bloß keine Rückmeldungen ob noch irgendwas geklappt hat oder ob ich totalen Mist geschrieben habe. Nicht das Andere hier auch noch was lernen könnten.

oberallgeier
20.06.2012, 16:56
... Gibt es eigentlich irgendwo ne gute Beschreibung zu den versch. Aus- und Eingängen ...Klar, beim Hersteller direkt (klick hier für mega-Typen). (http://www.atmel.com/products/microcontrollers/avr/megaAVR.aspx?tab=documents) Ein Datenblatt ist ja eine Muss-Lektüre - sonst wirds ein Blindflug durch die elektronische Nichtwissen-Nacht.

Da gibts ein Kapitel (so ungefähr 12) das heißt I/O-Ports. Bessere Unterlagen gibts kaum. Dort steht auch die Geschichte mit den Pull Ups ausführlich beschrieben. Ziemlich am Anfang der Dokumentation gibts auch eine Schaltungsskizze zum Pin selbst.