'****************************************************** 17.10.2009 *********** '* A V R - B E I S P I E L E * '* Copyright 1988-2010 RIBU Elektronik GmbH * '* * '* Dieses Beispiel zeigt wie man mit unseren USB-Host-Modulen ganz einfach * '* einen Datenlogger programmiert der die Daten als HTML-File ausgibt. * '* Dazu muß auf den USB-Stick eine Datei mit dem Namen "Info.txt" erstellt * '* werden und die Einstellungen zur Messung gespeichert werden. * '* 1. Anzahl, 2. Pause in Milisekunden, 3. Anzahl der Meßkanäle. * '* Für 10 Messungen alle 900 mS von Kanal 0-3 speichern Sie: * '* 10 * '* 900 * '* 4 * '* Bei Meßbeginn geht PortB.0 auf High und nach Meßende auf Low. Die Meß- * '* daten sind danach in der Datei Log.htm auf dem USB-Stick gespeichert und * '* können mit jedem Internet-Browser aufgerufen werden. * '***************************************************************************** $regfile = "m2560def.dat" ' Controllerauswahl $crystal = 16000000 'Quarzfrequenz Open "COM4:" For Binary As #4 'verwendete Schnittstelle Con1 bis com4 Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 'verwendete Schnittstelle Con1 bis com4 Config Portb = Output Dim Messungen As Word , Delayms As Word , Kanaele As Word Dim N As Integer , I As Integer , L As Integer , Ad As Integer Dim S As String * 100 Config Adc = Single , Prescaler = Auto , Reference = Off Start Adc Echo Off Do 'auf OK vom USB-Host-Modul warten Input #4 , S If S = "D:\>" Then Exit Do End If Loop Portb.0 = 1 Print #4 , "RD Info.txt" + Chr(13); 'Meßeinstellungen von Info.txt lesen Input #4 , Messungen Get #4 , L Input #4 , Delayms Get #4 , L Input #4 , Kanaele Get #4 , L Input #4 , S Waitms 100 Kanaele = Kanaele - 1 '1. Messkanal ist AD-Wandlerkanal 0 Print #4 , "OPW Log.htm" + Chr(13); 'Log.htm öffnen oder neu erstellen Input #4 , S S = "Meßdaten" Gosub Schreiben S = "" Gosub Schreiben S = "
" Gosub Schreiben S = "" Gosub Schreiben S = "" Gosub Schreiben S = "
Meßdaten
" Gosub Schreiben S = "" Gosub Schreiben For N = 1 To Messungen S = "
" Gosub Schreiben For I = 0 To Kanaele Ad = Getadc(i) S = "" Gosub Schreiben Next I S = "
" S = S + Str(ad) S = S + "
" Gosub Schreiben Waitms Delayms Next N S = "" Gosub Schreiben Ende_schreiben: Print #4 , "CLF log.htm" + Chr(13); 'Log.htm schließen Input #4 , S Portb.0 = 0 Schreiben: 'Unterpromm zum schreiben auf den USB-Stick S = S + Chr(13) + Chr(10) L = Len(s) Print #4 , "WRF "; 'auf USB-Stick schreiben Put #4 , 0 Put #4 , 0 Put #4 , 0 Put #4 , L 'Länge der Meßdaten übertragen Put #4 , 13 Print #4 , S; 'Meßdaten schreiben Input #4 , S Return End 'ende programm