Hallo Leute, ich habe den ATMega8 und möchte den PortD als Datenausgabe nutzen. Also mache ich ja DDRD auf 0xFF. Jetzt möchte ich aber auch den Pin PD2(INT0) als externen Interrupt nutzen. Kann ich dan ganz normal daten an den Port schreiben, oder muss ich da was beachten??? MfG Muecke
Wenn Du PortD aus Ausgang benutzen willst, kannst Du den INT0 nicht nutzen, da er dann als Eingang fungiert. Es sei denn Du schaltest zwischendurch von Ausgang nach eingang und wieder zurück.
Doch, du kannst den INT0 weiterhin benutzen und mittels entsprechender Ausgabe sowas wie einen Software-Interrupt auslösen. Wie stellst du es dir denn vor, einen Ausgang gleichzeitig auch noch als Eingang zu verwenden?
Wenn du was anderes als "0xFF" (d.h. 0b11111111) in das DDRx-Register schreibst, kannst du auch einzelne Pins als Input benutzen, ist das etwa das Problem?
Ich habe meine Vorstellung meines Programms nun etwas geändert, aber ähnliches Problem: An PortD sind Pin 1-7 als Ausgabe und pin 0 Als Einggabe definiert (0xFE an DDRD) Wie schreibe ich nun Daten an die Pins und lese diese ein? MfG Muecke
> An PortD sind Pin 1-7 als Ausgabe und pin 0 Als Einggabe definiert (0xFE > an DDRD) > Wie schreibe ich nun Daten an die Pins und lese diese ein? Erstmal vereinbaren, ob der interne PullUp für PD0 aktiviert werden soll. Das entscheidet darüber, ob das Bit beim Schreiben 0 oder 1 sein muss. Dann vor dem Schreiben (out portd,r16) dieses Bit (noch im Register) zusätzlich beeinflussen (z.B. mit sbr r16,1 oder cbr r16,1). Beim Lesen dieses Bit einfach ignorieren. Falls das schwer fällt, dann ausmaskieren (andi, cbr). ...
Welche Programmiersprache? - (AVR-GCC-1)C: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial - Asm: http://www.mikrocontroller.net/articles/AVR-Tutorial - Basic: RTFM ("f" für fine...) hth. -Jörg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.