Forum: Mikrocontroller und Digitale Elektronik Port ansprechen


von Christian S. (mueke)


Lesenswert?

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

von Danny (Gast)


Lesenswert?

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.

von Philipp B. (philipp_burch)


Lesenswert?

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?

von Joerg X. (Gast)


Lesenswert?

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?

von Christian S. (mueke)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

> 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).

...

von Joerg X. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.