Du hast auch zwei Fehler in deinem Programm.
Mit diesem Befehl:
Portb = A
schreibst du den Inhalt der Variable A in das Register von PortB. Dies machst du in deinem Programm vor der eigentlichen Schleife.
Wenn du das regelmässig ändern willst muss das so aussehen:
Do
For A = 0 To 4
Waitms 10
Next A
Waitms 200
Loop
End
Wenn du das vor dem "Do" machst wird das nur 1x beim starten des Programmes gemacht. Desweiteren wird im Simulator nur bis 5x gezählt, weil die "For"-Schleife nur von 0-4 geht. Wenn du höher zählen willst musst du:
For A = 0 To 100
oder sowas schreiben.
Das fertige Programm sieht dann etwa so aus:
Nun wird alle 200ms etwa die Variable um 1 erhöht und das wird dann am PortB ausgegeben. Mit "For A = 0 To 255" legst du eine "For"-Schleife fest die die Variable A von 0-255 zählt. Dann mit "Next A" wird die Variable dann um den festgelegten Schritt erhöht. Da du in der "For"-Schleife keinen Schritt festgelegt hast wird die Variable bei "Next A" um 1 erhöht. Mit "PortB = A" schreibst du die Variable in das PortB-Register.Code:$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 32 $framesize = 60 Ddrb = &B0001_1111 Portb = &B0000_0000 Dim A As Byte Do For A = 0 To 255 Waitms 10 Next A Portb = A Waitms 200 Loop End






Zitieren

Lesezeichen