Forum: Mikrocontroller und Digitale Elektronik Servo , ADC Bascom


von Jason (Gast)


Lesenswert?

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

von Jason (Gast)


Lesenswert?

Hallo

Ich habe mal einfach alles entfernt was man nicht direkt braucht.
Mir ist aufgefallen das sobald ich ADC und Servo zusammen configuriere 
das Servo sich nicht steuer läst.

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Servos = 1 , Servo1 = Portd.2 , Reload = 10


Ohne " Config ADC" funktioniert alles bestens , sobald ich aber diesen 
Teil einfüge funktionert das Servo nicht.
Kann man unter Bascom nicht beides machen also Servo und ADC oder was 
mache ich Falsch

von Karl H. (kbuchegg)


Lesenswert?

Jason schrieb:

> Kann man unter Bascom nicht beides machen also Servo und ADC oder was
> mache ich Falsch

Mir fehlt in deinem Code schon mal die zentrale Do-Loop, in der die 
ganze Arbeit immer wieder und immer wieder gemacht wird.

von Jason (Gast)


Lesenswert?

Hallo

Danke für den Tip.

So ich ahbe es nun geschaft das ich das Servo auch dan ansteuern kann 
wenn ich den ADC configuriere.


Nun habe ich aber ein anderes Problem
Ich aheb zwischen den Servobefehlen immer ein " waitms 1000 "stehen.
Das funktioniert auch alleine ganz gut.

Sobald ich aber versuche einen Wert per ADc einzulesen wird es kritisch.
Entweder zuckt das Servo oder der ADCV Wert wird flasch per Print 
ausgegebn , wirre Zahlen.

Wie ist das nun in Bascom , beide Befehle brauche ja einw enig zeit wie 
kann man das machen da man einen AD Wert einliest und dan das Servo 
stellt ?
ohne das die sich behindern

von Karl H. (kbuchegg)


Lesenswert?

Zeig dein Programm.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.