PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : input und output an einen pin



rathma
28.06.2006, 23:58
hi,
ich will einen attiny2313 an ein bussystem hängen. dieser bus besteht aus 3 leitungen.
auf einen dieser leitungen sendet die gegenstelle einen kurzen impulse(ca 2-4 usec)
ich hab dieses signal auf portd.2
sobald ich dieses signal empfangen habe muss ich während die anderen ports die daten senden auch diesen portd.2 auf high stellen.

die anderen 2 leitungen die die daten senden und das clocksignal beinhalten sind portd.4 und portd.5

kann ich einfach mit

config portd.4 = output
config portd.5 = output
config portd.2 = input

schleife mit:
wenn portd.2 = 1 ist dann:
config portd.2 = output
set portd.2

daten senden

reset portd.2

und dann
config portd.2 = input
und dann wieder wie gehabt warten ...

mir wurde gesagt ich soll die pullup wiederstände setzen, das macht doch der befehl config ... = output für mich oder muss ich da noch was anderes beachten?

gruss
markus

rathma
06.07.2006, 09:13
hat keiner einen tipp wies gehen könnte?

PicNick
06.07.2006, 09:34
Bei einem Soft-I2C geht das tadellos: (mit pullup)
an setzt das Port permanent auf LOW (PORTX.y = 0)

auf Output (DDRX.y = 1) kann man d die Leitung runterziehen

auf Input (DDRX.y = 0), kann man mit PINX.y = ? die Leitung lesen.

P_II
06.07.2006, 09:38
der befehl config port2.d =output hat nichts mit pull ups zu tun.
Pull ups ziehen eine pin auf eine definierte Spannung (vermutlich 5 volt) und machen des wegen nur bei inputs sinn.
die pull-ups aktivierst du glaube ich per portd.2 =1 wenn portd.2 ein output pin ist.

So jetzt hoffe ich mal dass ich nicht alles durcheinader gebracht habe.