Archiv verlassen und diese Seite im Standarddesign anzeigen : Tiny26 ADc servo LCD funzt aber?
servus ich habs mittlerweile geschafft (DANK RIO CArneval on FTV bis 3Uhr)
es läuft ADC misst perfekt die spannungen aus %V und 1Mohm poti via AREF=vcc
und der timer 0 steuert perfekt das servo mit 0,5ms bis 2.5ms =180grad
sauberes signal
auch das lcd 20*2 tut seinen dinst im 100ms takt
ALLES am TINY 26mit intern 8Mhz und bascom 1.11.8.4 demo
TOLL soweit
jetzt würde ich noch gerne die werte des ADSC 0-1023 in spannungen
auf dem lcd ausgeben
teiler ist 0.00488 *1023=5V
hat da jemand einen tip für mich in sachen kommawerte
welche dim ist da das günstigste und ich bräuchte auch nur 2 kommastellen
wie ich das machen könnte
DANKE
code folgt umgehend nach feierabend
Also ich habs so gemacht
Ergebnis = Wert * 0.0048828125
Locate 2 , 7
Lcd Fusing(ergebnis , "#.##") ; "V"
MfG Matthias
danke werde ich dann heute abend gleich ausprobieren und hier posten
leider sprengt das fusing den chip speicher
aber es geht auch so mogeln is ja inn
'/////////////////////////////////////////////////////////
'/// 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 Volt As Single
Wertad = 500
Do
Waitms 10
Wertad = Getadc(1)
'If Wertad > 500 Then Set Porta.5
'If Wertad < 500 Then Set Porta.6
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
'kein speicherplatz ehr auf dem chip fusing nicht möglich
kann man testprogramme hier auch in eine codesamlung reinlegen
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.