PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warten...



Johannes84
27.12.2005, 00:17
Hallo,

bin blutiger Anfänger in Bascom/Basic/AVR und wollte dieses Programm ausführen:



$regfile = "m32def.dat"
$crystal = 1000000
Ddrc = &B00000010


Schleife:
Portc = &B0000010
Wait 1
Portc = &B0000000
Goto Schleife


Ich dachte die LED würde so blinken, im 1 Sekunden Takt, aber leider bleibt sie einfach nur an! Woran hängts?

Danke im voraus
Johannes

Marco78
27.12.2005, 02:23
Schleife:
Portc = &B0000010
Wait 1
Portc = &B0000000
Wait 1
Goto Schleife

Oder,

Do 'beginn einer Schleife
Portc = &B0000010 'LED einschalten
Wait 1 'eine Sekunde wartem
Portc = &B0000000 'LED aus
Wait 1 'eine Sekunde warten (das fehlte)
Loop 'Schleife beginnt von vorne

Die LED blinkt jetzt auch schon. Allerdings ist so nur sehr kurz aus und es ist für's Auge nicht zu erkennen.
PS: Waitms 1000 erzeugt einen kleineren Code als Wait 1.

Johannes84
27.12.2005, 09:30
oh...jetzt wo ich drüber nachdenke....hast du recht :) danke schön

Torsten_G
27.12.2005, 11:28
Hallo Johannes,

schön, dass Du jetzt programmieren kannst!

In Ergänzung zum Gesagten, Du brauchst nicht jedesmal das gesamte Byte für einen Port zu verändern, es ist auch ein bit-weiser Zugriff möglich, in Deinem Fall: Portc.1 =1 bzw. Portc.1 =0

Möchtest Du den Status eines Port-Bits abfragen, musst Du allerdings "Pin" verwenden, also z. B.

If Pinc.1=1 then

.... tuwas....

end if

Frag mich nicht, warum - ist halt so eine kleine Schrulle von Bascom...

Viele Grüße

Torsten