PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port/Pin



wicked
10.11.2011, 17:49
Guten abend zusammen,

seit zwei tagen bin ich im besitz eines STK500. Da ich Bascom Avr benutze wollte ich mal fragen was da falsch ist.


'Test
'
$regfile = "m8def.dat"
$crystal = 1000000



Config Pinb.0 = Output

do
Pinb.0 = 1
Waitms 100
Pinb.0 = 0
Waitms 100
Loop

End
Die Funktion ist klar ersichtlich, aber er will nicht. Die Led auf dem STK leuchtet die ganze Zeit. Schreibe ich aber im Code Port anstatt Pin
funktioniert es. Was verstehe ich falsch wenn ich PIN oder PORT schreibe. Pin bezieht sich doch auf EINEN ausgangspin eines Port. Und
wenn ich Port benutze ist sind alle Pins aktiv, oder? Warum ist es dann nicht möglich nur einen Pin zu schalten?

Vielen Dank für jede Hilfe ;)
Atmega8-16pu

radbruch
10.11.2011, 17:56
Ausgangspins/interne PullUps werden mit Portx,y gesetzt/gelöscht.

https://www.roboternetz.de/community/threads/55505-Pin-als-Input-funktioniert-nicht

Ihr solltet mal einen Blick in die Bascom-Hilfe werfen:
http://avrhelp.mcselec.com/newbie_problems.htm

Gruß

mic

Besserwessi
10.11.2011, 20:40
Das Register Pinb dient zum lesen des Zustandes. Schreiben in das Register hat nur bei einigen neueren Chip einen Effekt - beim Mega 8 tut sich da gar nichts.

Das Register Portb dient zur Ausgabe oder für die Anschlüsse die als Eingang (0 in Register Ddrb) definiert sind zum Setzen der Pullup Widerstände.

Neutro
11.11.2011, 18:25
Pinx.y dient dazu um z.B einen Taster einzulesen also als Eingang zu nutzen.
Portx.y dient dazu einen einen Pin auf High oder low zu schalten, also als Ausgang zu verwenden.

Hoffe ich konnte helfen

MFG