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:
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
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.
Lesezeichen