Hallo!! Habe mein myAVR-Board mitlerweile soweit, das ich einen Wert über den AC an PortC.0 einlesen kann, und den Wert (0...1023) auf dem Display ausgeben kann...hier der Code dazu: $regilfe = "m8def.dat" $crystal = 368400 Condig Adc= Single , Prescaler = Auto , Reference = Internal Start ADC Dim W as Word Dim A as Word Do W = Getadc(0) Cls LCD W ; " Wert" ; Waitms 500 Loop End Jetzt möchte ich den Wert 0...1023 in einen "Spannungswert" oder "Temperaturwert" umrechnen. Wie mache ich das? Die Umrechnungsformel dazu habe ich mir wie folgt "überlegt": Wert in Volt = W * (Maximale Spannung) / 1024 Die Maximale Spannung habe ich mit einem guten Voltmesser zu 5.23V gemessen, also müsste die Formel lauten: Wert in Volt = W * 5.23 / 1024 Aber wie setze ich das jetzt in Bascom um? Wäre für jede Hilfe dankbar!
Hallo, naja irgenwie so: DIM Volt as Single Volt = w * 5.23 volt = volt/1023
Hehe...ich als "alter" C-Programmierer wollte das in eine Zeile machen, kein Wunder das es nicht ging... Jetzt geht es aber... Danke soweit! Ach so, wie kann ich die Anzahl der Zeichen von "Volt" ändern? So: Dim Volt as Single * 5 ?!?!
Warum bleibst du nicht einfach bei C. ist wesentlich besser als BASCOM..
Würde ich ja gerne, aber mit den Programmen WinAVR und so weiter komme ich mal überhaupt nicht klar... :-/ Das programmieren an sich ist ja kein Problem, aber ich bekomme es einfach nicht hin, eine Hex-Datei zu bekommen, und die irgendwie zu programmieren...das programmieren an sich könnte ich ja mit myAVR Workpad SE Demo machen, aber dazu bräuchte ich erstmal ein Grundgerüst für den mega8 in C, und so weiter und so weiter...da ist Bascom dich irgendwie einfacher... :-/ Aber bin für jeden guten Tip dankbar... ;-)
und ich will von Bascom zu C verrückte Welt ... Habe WinAVR installiert und ich bekomme auch eine Hex Datei , und auch das Brennen mit dem STK200 Klappt .... Dank der Anleitung im AVR-GCC-Tutorial Das Programmieren in C na ja mal sehen .... Wie meinst das mit : Anzahl der Zeichen von "Volt" ändern? Die Komma stellen oder was ? dann schau dir mal den Befehl Fusing "#.##" an oder Erkläre noch mal was du vor hast .
Ja, genau, "Volt" soll halt eine Nachkommastelle haben (wird später zur Temperaturmessung verwendet, und genauer geht's da eh nicht!) Habe dann noch eine Frage: Der MC soll auf "Tastendruck" Befehle ausführen, habe Config Portd = Input gesetzt, und dann Do If Pind.5 = 1 then Portd.6 = 1 End If Loop Aber warum macht er es nicht? Habe den Taster 1 vom myAVR-Board an PortD.5 gelegt, wenn ich den Port betätige tut sich aber an Portd.6 nix...
...ohne Test aber so in etwa : $regfile = "m8def.dat" $crystal = 368400 Config Pind.5 = Input 'Tasten Config Pind.6 = Output 'LED Config Adc = Single , Prescaler = Auto , Reference = Internal Start ADC Dim W as Word Dim A as Word Dim Volt As Single W = Getadc(0) Volt = W * 5.23 Volt = Volt / 1023 Cls Lcd Fusing(volt , "#.#") ; " V" If Pind.5 = 1 Then Set Portd.6 Else Reset Portd.6 End If Oder Den Befehl Debounce....einsetzen !
Hallo Großmeister, beachte bei der nutzung des PORTD das da ja schon das display dran hängt... ;-)
Das Display ist an Port B, Port C wird für die A/D-Wandlung genutzt, Port D soll für die Ein- /Ausgabe genutzt werden... Also von daher sollte das passen, werde mal den Code von HansHans versuchen...danke erstmal!!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.