Hallo,
ich baue gerade einen Datenlogger, der die Daten auf einen USB-Stick speichert (FAT / txt Datei). Als USB Host benutze ich den Vinculum-Chip der Firma FTDI.
Leider komme ich mit dem PUT-Befehl nicht klar.
Ich möchte die Messungen hochnummerieren mit der Variable "Messung" als Long.
Wer kann mir also den PUT-Befehl im Zusammenhang mit diesem Programm erklären? Ziel ist es mit dem PUT-Befehl die Variable Messung in die log.txt zu schreiben(mit den anderen Werten zusammen)
vielen Dank, Tobias
Code:'------------------------------------------------------------------------------- 'Konfiguration µC: $regfile = "m32def.dat" 'AT-Mega32 $crystal = 14745600 'Quarz: 14,7456 MHz $baud = 9600 'Baudrate definieren '------------------------------------------------------------------------------- 'Ein- Ausgänge: Ddra = &B00000000 '1 Ausgang, 0 Eingang = Pin PA7-0 Ddrb = &B11111111 '1 Ausgang, 0 Eingang = Pin PB7-0 Ddrc = &B11111111 '1 Ausgang, 0 Eingang = Pin PC7-0 Ddrd = &B01111111 '1 Ausgang, 0 Eingang = Pin PD7-0 Porta = &B00000000 '1 = Pullup Portb = &B00000000 '1 = Pullup Portc = &B11111111 '1 = Pullup Portd = &B00000000 '1 = Pullup '------------------------------------------------------------------------------- 'Analogmessung: Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc 'Starte analog Messung '------------------------------------------------------------------------------- 'Vor Programmstart: 'Enable Interrupts Start Adc 'Analogmessung starten '------------------------------------------------------------------------------- 'USB Confi!!!! Echo Off '///für USB-Stick Open "com1:" For Binary As #1 '///für USB-Stick 'Dim Samples As Word 'Anzahl der Messungen Dim Delayms As Long 'Messintervall in ms (Long bis 2.147.483.647) Dim Channels As Word 'Anzahl der Messkanäle (8Kanäle -> 0-7) Dim N As Integer Dim I As Integer Dim L As Integer Dim S As String * 20 Dim Ad As Integer Dim Messung As Long 'anzahl der gemessenen Werte '------------------------------------------------------------------------------- '------------------------------------------------------------------------------- 'Hauptprogramm Do...Loop '------------------------------------------------------------------------------- '------------------------------------------------------------------------------- 'USB-LOOP Do Input S Loop Until S = "D:\>" 'USB Controller abfragen, bis D:\> gesendet wird Waitms 1000 Print "rd todo.txt" + Chr(13); 'todo.txt Datei LESEN Input Delayms 'Wartezeit zwischen den Messungen aus Datei übernehmen Get #1 , L Input Channels 'Anzahl der Messkanäle aus Datei übernehmen Get #1 , L Input S Print "OPW Log.txt" + Chr(13); 'Datei Log.txt öffnen Input S Do Toggle Portb.0 Incr Messung S = "" For I = 0 To Channels 'Kanäle 0-7 MAX Ad = Getadc(i) S = S + Str(ad) If I < Channels Then S = S + Chr(9) Next I S = S + Chr(13) + Chr(10) L = Len(s) 'gibt die Länge von String "S" wieder Print "WRF "; 'Befehl um in die geöffnete Datei zu schreiben Put #1 , 0 Put #1 , 0 Put #1 , 0 Put #1 , L 'L ist die Länge vom String S Put #1 , 13 Print S ; Input S Waitms Delayms 'Wartezeit zwischen den Messungen Loop Until Pind.7 = 0 Print "CLF log.txt" + Chr(13); 'Datei log.txt schließen Input S Portb.0 = 0 'schreib-LED ausschalten End '------------------------------------------------------------------------------- '------------------------------------------------------------------------------- 'ENDE - Hauptprogramm Do...Loop '------------------------------------------------------------------------------- '------------------------------------------------------------------------------- End







Zitieren

Lesezeichen