das servo ansich alleine sollte gehen aber wenn noch ein timer ins spielkommt und dann noch timer 0 dann ist essig mit sauberem signal bei 1Mhz
beim tiny26 mit 8mhz intern ist das alles kein problem siehe oben im beitrag
wenn das layout für eagel gewünscht wird oder das programm kann ich gerne zur verfügung stellen
Code:
'/////////////////////////////////////////////////////////
'/// Bascom ISP Programmer TEST ///
'/// PORT B toggel LED SERVOan portb3 LCD
' ADC1 porta1=signal 0-5V FUNKTION TYNY26 feb 2007
'/////////////////////////////////////////////////////////
$regfile = "AT26def.dat" ' used device
$crystal = 8000000
$hwstack = 32 ' default use 32
$swstack = 10 'default use 10 for
$framesize = 40 'default use 40 for
Ddra = &B11110000
Config Adc = Free , Prescaler = 64 , Reference = Off
Start Adc
Config Pinb.3 = Output
Config Pinb.4 = Output
Config Pinb.5 = Output
Config Servos = 1 , Servo1 = Portb.3 , Reload = 10
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portb.5 , Rs = Portb.4
Config Lcd = 20 * 2
Const Teiler = 0.00488
Const Teiler2 = 1.636
Enable Interrupts
Dim Wertad As Word
Dim Tmp As Word
Dim Wertse As Byte
'Dim A As Byte
'Dim Teiler As Single
Dim Volt As Single
Wertad = 500
Do
Waitms 10
Wertad = Getadc(1)
If Wertad > 1022 Then Wertad = 1022
If Wertad < 10 Then Wertad = 10
Tmp = Wertad / 4
If Tmp > 150 Then Tmp = 150
If Tmp < 40 Then Tmp = 40
Wertse = Low(tmp)
Servo(1) = Wertse
Volt = Wertad * Teiler
Cls
Lcd "Volt :" ; Volt
Locate 1 , 11 : Lcd " V " '; Fusing(volt , "# . ##")
Lowerline
Wertse = Wertse - 40
Volt = Wertse * Teiler2
Lcd "Grad :" ; Volt
Locate 2 , 13 : Lcd " " '; Fusing(volt , "# . ##")
Waitms 100
Loop
eminen wichtig bei Bascom ist die reienfolge der inizialisierung
Lesezeichen