bnitram
21.10.2013, 19:48
Hallo Forum,
ich habe hier ein kleines Programm, das mir ein Servosignal verringert(so das der Servoausschlag ca. halbiert wird). Der Attiny 13 soll das für 2 Servos gleichzeitig machen. Das Programm läuft theoretisch, wenn ich jedoch das 2. Servo dazu nehme im Programm, dann bekomme ich folgende Fehlermeldung:
Index out of range [2]
Array index out of range [2]
LOOP expected
Hier mal das Programm:
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 5
$framesize = 20
Config Servos = 1 , Servo1 = Portb.0 , Servo2 = Portb.2 , Reload = 10
Dim Servo1 As Byte
Dim Servo2 As Byte
Config Portb = Output
Enable Interrupts
Do
Pulsein Servo1 , Pinb , 3 , 1
Pulsein Servo2 , Pinb , 4 , 1
Servo1 = Servo1 / 1.5
Servo2 = Servo2 / 1.5
Servo(1) = Servo1
Servo(2) = Servo2 <-------- Wenn diese Codezeile exestiert, bekomm ich die Fehler. Sonst nicht!
Loop
End
Liegt das jetzt daran das das Programm zu groß oder ist die Speicherverwaltung(die Stack's) nur falsch?
Mich wundert das, weil es immer an dieser einen Codezeile scheitert. Ist der Befehl so groß?
Ich hoffe mir kann jemand helfen... ich wäre euch sehr Dankbar.
MfG
bnitram
ich habe hier ein kleines Programm, das mir ein Servosignal verringert(so das der Servoausschlag ca. halbiert wird). Der Attiny 13 soll das für 2 Servos gleichzeitig machen. Das Programm läuft theoretisch, wenn ich jedoch das 2. Servo dazu nehme im Programm, dann bekomme ich folgende Fehlermeldung:
Index out of range [2]
Array index out of range [2]
LOOP expected
Hier mal das Programm:
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 5
$framesize = 20
Config Servos = 1 , Servo1 = Portb.0 , Servo2 = Portb.2 , Reload = 10
Dim Servo1 As Byte
Dim Servo2 As Byte
Config Portb = Output
Enable Interrupts
Do
Pulsein Servo1 , Pinb , 3 , 1
Pulsein Servo2 , Pinb , 4 , 1
Servo1 = Servo1 / 1.5
Servo2 = Servo2 / 1.5
Servo(1) = Servo1
Servo(2) = Servo2 <-------- Wenn diese Codezeile exestiert, bekomm ich die Fehler. Sonst nicht!
Loop
End
Liegt das jetzt daran das das Programm zu groß oder ist die Speicherverwaltung(die Stack's) nur falsch?
Mich wundert das, weil es immer an dieser einen Codezeile scheitert. Ist der Befehl so groß?
Ich hoffe mir kann jemand helfen... ich wäre euch sehr Dankbar.
MfG
bnitram