Trotz alternativer Pins restlicher Port benutzbar (Attiny2313)?

OP #2598113
Lesenswert?

Huhu,

ich wusste nicht wonach ich suchen sollte, darum Sry, falls es schon mal 
gefragt wurde, aber kann man beim Attiny2313 die restlichen Pins vom 
PortD normal benutzen wenn man die UART benutzt (TxD statt PD1) ?

Und wenn ja, was muss ich dann dabei beachten? Darf man einfach In und 
Out benutzen oder ist man dann auf eines beschränkt? Darf man die 
Pull-ups ziehen oder doch besser lassen?

Und noch etwas: Kann man irgendwie das Signal von TxD wieder einlesen? 
Ich habe es über "sbis PIND, 1" (wenn eine '1' gesendet wird, dann 
überspringe') probiert, aber das klappt nicht.
Gast #2598124
Lesenswert?

Ja, du kannst den restlichen Port nutzen. Die AF bezieht sich dann nur 
auf die Uart-Pins.

Niklas Beuster schrieb:
> Und noch etwas: Kann man irgendwie das Signal von TxD wieder einlesen?
> Ich habe es über "sbis PIND, 1" (wenn eine '1' gesendet wird, dann
> überspringe') probiert, aber das klappt nicht.

Da verstehe ich nicht, was Du genau versuchst....
Gast #2598133
Lesenswert?

0 oder 1 gesendet wird?! Im physikalischen Sinne? Eine Ascii 0 bzw. 1 
besteht ja aus einer Bitsequenze. Außerdem: Du sendest doch die Daten 
selber. Dann wirst du doch auch wissen, was Du sendest...?!
OP #2598140
Lesenswert?

Nein, '1' oder '0' im Sinne von Pegel, also physikalisch. Und ja, ich 
weiß was UART ist und ja - ich weiß was ich sende, aber wie kriegt man 
raus, wann die UART die einzelnen Bits rausgibt? Klar müsste man 
umständlich über die Baudrate berechnen, aber kann man nicht auch 
einfach den TxD-Pin abfragen?
Gast #2598141
Lesenswert?

Die Frage ist wozu man das machen sollte.

Dein Grund dafür wird, so nehmen wir alle erstmal an, plausibel und 
sinnvoll sein. Aber welcher ist das? Vielleicht kannst Du mit einer 
anderen Methode Dein Ziel auch erreichen.

So würde ich erstmal sagen: Nutze einen Software-UART. Da weisst Du wann 
1 und 0 herauskommen.
(Firma: guloshop.de) #2598147
Lesenswert?

Niklas Beuster schrieb:
> Nein, '1' oder '0' im Sinne von Pegel, also physikalisch. Und ja, ich
> weiß was UART ist und ja - ich weiß was ich sende, aber wie kriegt man
> raus, wann die UART die einzelnen Bits rausgibt? Klar müsste man
> umständlich über die Baudrate berechnen, aber kann man nicht auch
> einfach den TxD-Pin abfragen?

Der 2313 hat recht viele Eingänge. Vielleicht ist einer davon noch frei? 
Dann kannst du den TxD über einen Widerstand - sagen wir 4,7 kOhm - auf 
diesen Eingang legen und ihn pollen oder sogar per Pin-Change-Interrupt 
abfragen.
OP #2598161
Lesenswert?

Ok, es geht also scheinbar nicht, Danke, das reicht mir schon ;-)

Ich möchte eigentlich nur die UART-Sequenz FM modulieren und habe leider 
schon PORTB und PORTA komplett belegt für andere Zwecke und wollte das 
Signal wieder einlesen, damit ich einem Timer sagen kann er soll bei 
einer '1' eine andere Frequenz (Interrupt bei Compare) als bei einer '0' 
einstellen und ich in der Interrupt-Routine den einen Pin von PORTA an- 
und ausschalten kann für ein Rechtecksignal, welches sich in der 
Frequenz ändert.

Und ja, ich weiß was Manchester-Codierung ist und nein, ich mag das net 
verwendet und ja ich weiß wie ein Modem funktioniert, Danke ^^
OP #2598318
Lesenswert?

Ha! Es geht doch! Man kann das UART-Signal über PIND einlesen, genauso 
wie ich's im Ausgangsbeitrag geschrieben habe, ich hatte nur einen 
anderen Fehler im Code.

Komisch dass man sowas nur nach Mitternacht mit Bier hinkriegt :D Naja, 
jetzt gehts, wie man hoffentlich auf dem Bild sehen kann. (Wenn denn das 
Forum endlich mal das Bild hochladen würde [und ja, es ist im richtigen 
Format])

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