PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Speicherverteilung/Problem Attiny13



bnitram
21.10.2013, 18: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

Searcher
21.10.2013, 19:05
Hallo, weis nicht ob es alle Probleme löst. Bei 2 Servos muß da auf jeden Fall eine 2 hin.

Config Servos = 1 , Servo1 = Portb.0 , Servo2 = Portb.2 , Reload = 10
Gruß
Searcher

bnitram
21.10.2013, 19:10
Oh....
Das nenn ich mal peinlich...... :oops::oops:

Das war das Problem. Hab ich garnicht drauf geachtet....

Damit hat sich das Thema erledigt.
DANKE!