Atmel Ausgabe nur auf einem Port

Gast #3255015
Lesenswert?

Hallo,

Ich arbeite gerade mit einem Atmega168 und komme bei einer Sache nicht 
weiter.
Ich nutze bei PORTD (alle Pins Ausgang) die Pins PD0 bis PD6 zur 
Ansteuerung eines LCD Displays, wie man schon sieht, ist PD7 noch 
unbenutzt.

Ich würde allerdings gerne noch etwas machen mit diesen Pins aber wie?
Also wie kann ich an dem Ausgang dort auf High wechseln, ohne das die 
anderen Pins beeinflusst werden und z.B. Müll auf dem Display erscheint? 
Außerdem müsste ich noch abfragen können, ob PD7 gerade High oder Low 
ist.

Wäre nett wenn mir das mal jemand kurz zeigen könnte wie es geht :)


MfG
FX
(Firma: guloshop.de) #3255032
Lesenswert?

FX schrieb:
> Also wie kann ich an dem Ausgang dort auf High wechseln, ohne das die
> anderen Pins beeinflusst werden und z.B. Müll auf dem Display erscheint?

Am einfachsten geht das wohl mit den Assembler-Befehlen sbi und cbi:
1
sbi PORTD,PD7
2
cbi PORTD,PD7

> Außerdem müsste ich noch abfragen können, ob PD7 gerade High oder Low
> ist.

Geht recht gut mit sbis und sbic.

P.S.: ich seh grad, die Leute vor mir haben sehr gute Links gepostet. 
Beide sehr zu empfehlen.
Gast #3255048
Lesenswert?

Ah Danke, das klappt schon mal.

Aber wie überprüfe ich jetzt ob dieser Pin high oder low ist?
Vorher habe ich auf 0b10000000 geguckt, aber es kann ja z.B. auch 
10000011 sein, das ist dann ein anderes Ergebnis aber das 7.bit ist ja 
trotzdem high.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren