PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rs232 und Excel



lötkolben
05.09.2007, 11:28
Hallo !!

Also ich kann über Excel von meinem Mikrocontroller Messwerte einlesen. Nur kommen dabei statt 1 Wert bei jeder Messung 4 Werte an, welche natürlich falsch sind.Hyperterminal usw zeigen die richtigen Werte Desweiteren würde ich gerne aus Excel heraus die Messung des Mikrocontrollers starten, sprich..Button drücken---> Mikrocontroller beginnt zu messen.

Wie kann ich über RS232 senden und wie wird das in Bascom realisiert.


Hat jemand vielleicht eine Idee ?

wassermann
05.09.2007, 13:16
Hallo lötkolben,

probier's mal damit.

H.-J. Berndt / B. Kainka
Messen, Steuern und Regeln mit Word und Excel
Franzis-Verlag GmbH, 85586 Poing, 1999 ISBN 3-7723-4093-8

Die dll kannst du auch in VB6 deklarieren.

Zum Thema Bascom: "Ischarwaiting" bzw. "Waitkey".

gruss,
wassermann

lötkolben
05.09.2007, 14:59
Ich benutze die rsapi.dll von Kalinka. Bekomme ja auch Daten, aber mit der Formatierung scheint etwas nicht zu klappen.


Benutze dieses Makro:

Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal Parameter$)
Declare Function READBYTE Lib "RSAPI.DLL" () As Integer
Declare Sub TIMEOUT Lib "RSAPI.DLL" (ByVal ms%)
Declare Sub CLOSECOM Lib "RSAPI.DLL" ()
Declare Sub SENDBYTE Lib "RSAPI.DLL" (ByVal test%)
Declare Sub DELAY Lib "RSAPI.DLL" (ByVal ms%)

Sub Messung()
OPENCOM "COM1:19200,N,8,1"
ThisWorkbook.Sheets("Tabelle1").Activate
Columns("A:B").Select
Selection.ClearContents
Range("A1").Select
TIMEOUT 1500
Zeile = 1

Do
ergebnis = READBYTE
Cells(Zeile, 1).Value = ergebnis
Cells(1, 3).Value = Zeile
Zeile = Zeile + 1

end if
Loop Until (ergebnis < 0 )
CLOSECOM
MsgBox Str(Zeile - 1) + " Meßwerte gelesen"
Application.Calculation = xlAutomatic
End Sub

lötkolben
05.09.2007, 15:36
Habe den Fehler gefunden. Excel zeigt alles dezimal an. wie kann ich das in Ascii umwandeln ohne bei jeder Spalte Zeichen(Zahl) zu verwenden.

wassermann
06.09.2007, 01:04
Hallo lötkolben,

hab's in Excel noch nie probiert. Spricht was gegen deine ASCII-Wandlung?
Ich lass mir immer ein txt-file schreiben, wobei "Text" ein variabler Befehl ist und der µC entsprechend die zugehörigen Antwortdaten "READ" schickt.

Function READ(Text, Anzahl) As String
Dim i As Long
OPENCOM "COM4:115200,N,8,1"
SENDSTRING Text

S$ = Space$(Anzahl)
x = READSTRING(S$)

' READ = Mid(S$, 1, x)
i = Len(S$)
READ = Mid(S$, 1, i)
CLOSECOM
End Function

gruss,
wassermann

UlrichC
09.09.2007, 10:56
Habe den Fehler gefunden. Excel zeigt alles dezimal an. wie kann ich das in Ascii umwandeln ohne bei jeder Spalte Zeichen(Zahl) zu verwenden.

Cells(Zeile, 1).Value = Chr(Asc(ergebnis))