robin
02.02.2008, 20:23
Hi, ich weis, dieses Thema wurde schon so oft angesprochen, deswegen entschuldige ich mich im voraus, falls dies jemandem nicht passt.
ich habe folgendes Problem:
ich verwende einen Mega 168 mit 20Mhz, wenn ich in bascom nun ein Programm mit servo befehl schreibe, hab ich nur die werte von 6-24 zur Verfügung, die restlichen sind außerhalb des überreiches des Servos. Verwende ich ein Programm, dass ich hier im Forum gefunden habe, in dem die servos mit einer case Bedingung und dem waitus befehl gesteuert werden, muss ich die waitzeit auf 20-100 ändern, alles andere ist wieder außerhalb des Wertebereichs. ist das normal? weil eigentlich ja die werte zwischen 500 und 2000 liegen sollten.
ich verwende einen 5€ servo vom C, kann es vielleicht daran liegen? was anderes fällt mir im Moment nicht ein.
$regfile = "m168def.dat" ' the used chip
$crystal = 20000000 ' frequency used
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Portd = Output
Config Lcd = 16 * 2
Config Portb = Output
Enable Interrupts
Dim Us As Word
Dim Ad1 As Word
Do
Ad1 = Getadc(0)
Portb.1=1
Select case Ad1
Case Is < 50 : Waitus 10
Case 51 To 100 : Waitus 20
Case 101 To 200 : Waitus 30
Case 201 To 300 : Waitus 40
Case 301 To 400 : Waitus 50
Case 401 To 500 : Waitus 60
Case 501 To 600 : Waitus 70
Case 601 To 700 : Waitus 80
Case 701 To 800 : Waitus 90
Case 801 To 900 : Waitus 100
Case 901 To 1000 : Waitus 110
Case Is > 1001 : Waitus 120
End select
Portb.1=0
Waitms 15
Cls
Lcd Ad1
Loop
End 'end program
ich habe folgendes Problem:
ich verwende einen Mega 168 mit 20Mhz, wenn ich in bascom nun ein Programm mit servo befehl schreibe, hab ich nur die werte von 6-24 zur Verfügung, die restlichen sind außerhalb des überreiches des Servos. Verwende ich ein Programm, dass ich hier im Forum gefunden habe, in dem die servos mit einer case Bedingung und dem waitus befehl gesteuert werden, muss ich die waitzeit auf 20-100 ändern, alles andere ist wieder außerhalb des Wertebereichs. ist das normal? weil eigentlich ja die werte zwischen 500 und 2000 liegen sollten.
ich verwende einen 5€ servo vom C, kann es vielleicht daran liegen? was anderes fällt mir im Moment nicht ein.
$regfile = "m168def.dat" ' the used chip
$crystal = 20000000 ' frequency used
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Portd = Output
Config Lcd = 16 * 2
Config Portb = Output
Enable Interrupts
Dim Us As Word
Dim Ad1 As Word
Do
Ad1 = Getadc(0)
Portb.1=1
Select case Ad1
Case Is < 50 : Waitus 10
Case 51 To 100 : Waitus 20
Case 101 To 200 : Waitus 30
Case 201 To 300 : Waitus 40
Case 301 To 400 : Waitus 50
Case 401 To 500 : Waitus 60
Case 501 To 600 : Waitus 70
Case 601 To 700 : Waitus 80
Case 701 To 800 : Waitus 90
Case 801 To 900 : Waitus 100
Case 901 To 1000 : Waitus 110
Case Is > 1001 : Waitus 120
End select
Portb.1=0
Waitms 15
Cls
Lcd Ad1
Loop
End 'end program