Weil ich mit dem Servo Befehl von Bascom Schwierigkeiten habe, biete ich Dir hier eine Alternative (Ohne Gewähr)
Vor Einschalten das Poti ungefähr in Mittelstellung bringen.
Code:
'Modellbauservo einstellen mit Poti
'BASCOM-Demo Version 2.0.5.0 sollte auch auf höheren Versionen laufen.
'Servopulsfrequenz = 50Hz
'Servopulslänge von 821 µs bis 2181 µs in 256 Stufen einstellbar (Auflösung 5,333 µs)
'ADC Meßwertschwankungen werden abgefangen
'Servosignalausgabe an PB1(OC1A)
'Potischleifer an PC0(ADC0), die anderen beiden Anschlüsse an GND und VCC (Referenz für ADC ist intern VCC)
$regfile = "m48def.dat"
$crystal = 12000000
$hwstack = 32
$swstack = 32
$framesize = 32
$baud = 9600
Dim Adc_result As Word
Dim Alt_wert As Word
Dim Differenz As Integer
Config Portb.1 = Output 'Servo MUSS an PB1 !!!
'*** Timer1 Konfiguration auf "Fast PWM", prescale = 64, top = ICR1, clear OC1A on compare match ***
Icr1 = 3749
Tccr1a = Bits(com1a1 , Wgm11)
Tccr1b = Bits(wgm13 , Wgm12 , Cs11 , Cs10)
'*************************** Timer1 Konfiguration ENDE ***********************
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Do
Adc_result = Getadc(0) 'Potiabgriffanschluß an PC0(ADC0),die anderen je an GND und VCC
Differenz = Adc_result - Alt_wert
Differenz = Abs(differenz)
If Differenz > 3 Then
Alt_wert = Adc_result
Shift Adc_Result , Right , 2
Ocr1a = 154 + Adc_Result
End If
Loop
End 'end program
Gruß
Searcher
Lesezeichen