Hi,
hier mal ein schnell in ein paar Minuten geschriebener Code, der AD/Werte ausliest und über die serielle Schnittstelle sendet (ohne Schönheitsgarantie) :
Code:$regfile = "M32DEF.DAT" 'Controller ist ein Mega32 $crystal = 16000000 'mit 16 MHz Baud = 9600 'serielle Schnittstelle initialisieren mit 9600,n,8,1 Config Adc = Single , Prescaler = Auto 'AD Wandler Konfigurieren Dim Temperatur As Integer 'Werte dimensionieren Dim Spannung As Integer Dim Strom As Integer Dim Ausgabe As String * 5 Dim Sendestring As String * 40 Start Adc 'AD-Wandler starten Do Temperatur = Getadc(0) 'Werte vom AD-Wandler holen Spannung = Getadc(1) Strom = Getadc(2) Gosub Werte_berechnen Gosub Werte_ausgeben Loop End Werte_ausgeben: Ausgabe = Str(temperatur) 'Wert in String umwandeln Ausgabe = Format(ausgabe , "+0000") 'String formatieren inkl. Vorzeichen Sendestring = "Temperatur = " + Ausgabe + " Grad" 'Beschreibung dazu Print Sendestring 'senden und cr/lf anhängen Ausgabe = Str(spannung) Ausgabe = Format(ausgabe , "+0000") Sendestring = "Spannung = " + Ausgabe + " Volt" Print Sendestring Ausgabe = Str(strom) Ausgabe = Format(ausgabe , "+0000") Sendestring = "Strom = " + Ausgabe + " Ampere" Print Sendestring Return Werte_berechnen: 'Hier kann man dann noch die Werte "mundgerecht aufarbeiten" Return
Bascom hat übrigens auch einen eigenen Simulator.
Da kann man sowas prima testen
Das Prog. beötigt übrigens 3% des Programmspeichers im Chip
Kleiner uns hübscher geht's auch, aber ist eben schnell zusammengefummelt..
Wenn du dann noch ein LCD Display dranhängen willst, sind's nochmal etwa 10 Zeilen mehr.
Also alles nicht so schwer und kompliziert..
Ist halt ein riesen Vorteil von Basic.
Hier mal ein Codevergleich von verschiedenen Programmiersprachen für die AVRs :
https://www.roboternetz.de/wissen/in...ourcevergleich
Gruß
Christopher







Zitieren
Lesezeichen