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.
Code:$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







Zitieren

Lesezeichen