Hallo Ich habe ein Problem mit der Servo ansteuerung unter Bascom. Ick kann das Servos mit disem ganz normal ansteuer ! alles funktioniert $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 100 $swstack = 100 $framesize = 100
1 | Config Servos = 1 , Servo1 = Portd.2 , Reload = 10 |
2 | |
3 | Config Portd = Output |
4 | |
5 | Enable Interrupts |
6 | |
7 | Servo(1) = 0 |
8 | |
9 | |
10 | Waitms 1000 |
11 | |
12 | Servo(1) = 150 |
13 | |
14 | |
15 | |
16 | Waitms 1000 |
17 | Waitms 1000 |
18 | |
19 | Servo(1) = 0 |
Wenn ich nun aber diesen Code benutzen will ghet es leider nicht mehr. Ich kann zwar die AD Werte auslesen aber das Servo hat keine Funtion. Ich habe den Code jetzt schon xmal durchgeschaut und kann einfach den Fehler nicht finden. Ich hoffe ihr könnt mir helfen
1 | regfile = "m8def.dat" |
2 | $crystal = 8000000 |
3 | $hwstack = 100 |
4 | $swstack = 100 |
5 | $framesize = 100 |
6 | Const Adc_multi = 0.0048828125 |
7 | Dim Messergebnis As Word |
8 | Dim Volt As Single |
9 | Dim Volt2 As Single |
10 | Dim Teiler As Single |
11 | |
12 | Config Adc = Single , Prescaler = Auto , Reference = Avcc |
13 | Config Servos = 1 , Servo1 = Portd.2 , Reload = 10 |
14 | |
15 | Start Adc |
16 | Enable Interrupts |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | Servo(1) = 150 |
26 | |
27 | Waitms 1000 |
28 | Messergebnis = Getadc(0) |
29 | |
30 | Waitms 100 |
31 | Teiler = 6 |
32 | Locate 1 , 1 |
33 | Waitms 100 |
34 | Volt = Messergebnis / Teiler |
35 | If Messergebnis < 20 Then Volt = 0 |
36 | If Volt > 150 Then Volt2 = 150 Else Volt2 = Round(volt) |
37 | Waitms 100 |
38 | |
39 | |
40 | |
41 | Waitms 1000 |