Hi.
ich bin echt ratlos. Zwar bin ich erst anfänger in basic, aber nen
Zähler mit ner Schleife habe ich bisher in jeder Programmiersprache
hinbekommen.
Kann mir evtl. jemand erklären, wieso das folgende nichts funzt?!
Bei jedem Durchlauf soll "I" incrementiert werden.
Sobald I grösser als 10 ist, soll er mir dies über ein LED (LED an)
zeigen. Ist I < 10, bleibt das LED aus.
Nach ein paar Tests konnte ich lediglich feststellen, das I den
Wert 1 erreicht. Es scheint also, als würde er die Funktion oder
das Increment nur einmal ausführen.
(AT90S2313, gecodet mit Bascom)
1 | Ddrb = &B11111100
|
2 | Portb = &B00001111
|
3 | Ddrd = &B1001011
|
4 | Portd = &B0000000
|
5 |
|
6 | Dim I As Long 'Schleifenzaehler
|
7 | I = 0
|
8 |
|
9 | On Timer0 Zeitmesser
|
10 | Config Timer0 = Timer , Prescale = 8
|
11 |
|
12 | Enable Timer0
|
13 | Enable Interrupts
|
14 |
|
15 | Zeitmesser:
|
16 | ' 1 Ueberlauf = 0,1ms
|
17 | Timer0 = 210 'Startposition
|
18 |
|
19 | If I > 10 Then
|
20 | Reset Portb.3
|
21 | Else
|
22 | Set Portb.3
|
23 | End If
|
24 |
|
25 | Incr I 'I incrementieren (+1)
|
26 | Return
|
27 |
|
28 | Do
|
29 | Loop
|