www.mikrocontroller.net

Forum: PC-Programmierung Daten aus dem serial port direkt in Excel tabelle


Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe ein Problem..... :))

Ich habe mir einen ADXL202 Beschleunigungssensor eingelesen und er gibt 
mir dan sugzesiv die zeiten aus. Jetzt da ich die in einer Array matrix 
gespeichert habe muss ich die mit dem Hyperterminal einlesen und dann 
vom Hyperterminal in einer Textdatei aufzeichnen, die Datei dann in 
Excel implemetieren und aus dem Diagramm machen. Meine Frage ist jetzt, 
ob jemand ne Idee hat wie ich das machen kann das meine Daten direkt in 
eine Excel tabelle gelanden oder direkt in ein Diagramm (noch besser) 
damit ich eine automatische Abarbeitung realisiere.

Ich habe einen 80C535 µC und Arbeite mit dem µVision 2 Paket von Keil.

Wenn jemand mir helfen kann danke ich schon im voraus....

Andy

: Verschoben durch Moderator
Autor: Logasta (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Daten sendest du ja anscheinend jetzt schon über einen UART an den 
PC. Dann kannst du dir in Excel mit VBA ein Makro / Programm (wie man 
das nennen möchte) schreiben, das die Daten direkt in eine Tabelle 
einliest. Über VBA hast du Zugriff auf die serielle Schnittstelle (war 
jedenfalls bei VBA 6 so, danach nix mehr damit gemacht)

Autor: pumpkin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder du nimmst LabVIEW. ist eh eleganter.

pumpkin

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider habe ich biss jetzt noch nie mit Makros gearbeitet, könntest du 
mir vieleicht ein Beispiel geben?? Oder ein fertiges Programm ??

Autor: Logasta (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ne ewigkeit her, das ich mit VBA was gemacht habe. War noch VBA 6, 
jetzt ist da ja VBA.net drin. Kannst du denn was Basic bzw. Visual 
Basic? Denn dann sollte es eigentlich relativ einfach sein.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Re: µC zu Excel"
anmelden ->SuFu!

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>oder du nimmst LabVIEW. ist eh eleganter.

Ist auch zwischen 1249 und 2449 € elegant!

Du wirst doch keine 'Sicherungskopie' haben ?? ;-)

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, Zahlendreher!

Ist auch zwischen 1249 und 4249 € elegant!

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß, deine Frage war ganz speziell auf excel ausgerichtet und nicht 
nach Alternativen, dennoch würde ich dir Matlab vorschlagen, wenn du 
darauf Zugriff hast (Student, Uni, FH,...)

Gruß
Tom

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Re: Daten aus dem serial port direkt in Excel tabelle"

Da sich der Threadöffner nicht mehr meldet, hat sichs wohl erledigt.
Einen noch eineindeutigeren Link hatte ich den Tag leider nicht zur 
Hand. Tut mir leid.

AxelR.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Excel mit VBA Makros geht ganz gut um mit der UART zu arbeiten.

Die Com-Schnitstelle kannst Du mit einem Commandshell Aufruf 
konfigurieren, zum Beispiel:

RetVal = Shell("mode.com com1 baud=" + br$ + " parity=n data=8 stop=1 
to=on xon=on dtr=on rts=on")

Dann kannst kannst Du die Schnitstelle öffnen, lesen und schreiben, wie 
auf irgend eine andere Datei, nur statt des Dateinamen verwendest Du die 
entsprechende Schnittstellenbezeichnung, zB "Com1", "Com2" oder "LPT" 
etc...

In VBA könnte das in etwa so aussehen:
Sub Send_and_Read()
  '--------------------------------------------------------
  cmnd$ = "Hello World"        'A string to send
  '--------------------------------------------------------
  Open "COM1" For Binary Access Read Write As #1
  cmnd$ = cmnd$ + Chr(13)      'add [CR] to command string
  Put #1, , cmnd$              'write string to interface
  '--------------------------------------------------------
  answer = ""                  'clear response string
  char = Input(1, #1)          'get first character
  While (answer <> Chr(13))    'loop until [CR]
    If (char > Chr(31)) Then
      answer = answer + char   'add, if printable char
    Else
      ' Do what ever you like
    End If
  Wend
  Close #1
  '--------------------------------------------------------
  Cells(1, 1) = answer        'put response in cell("A1")
End Sub

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, da hatte es noch Fehler, u.a. hab vergessen den nächsten (bzw die 
nächsten chars) zu lesen:

Sub Send_and_Read()
  '--------------------------------------------------------
  cmnd$ = "Hello World"        'A string to send
  '--------------------------------------------------------
  Open "COM1" For Binary Access Read Write As #1
  cmnd$ = cmnd$ + Chr(13)      'add [CR] to command string
  Put #1, , cmnd$              'write string to interface
  '--------------------------------------------------------
  answer = ""                  'clear response string
  char = Input(1, #1)          'get first character
  While (char <> Chr(13))      'loop until [CR]
    If (char > Chr(31)) Then
      answer = answer + char   'add, if printable char
    Else
      ' Do what ever you like
    End If
    char = Input(1, #1)        'get the next character
  Wend
  Close #1
  '--------------------------------------------------------
  Cells(1, 1) = answer         'put response in cell("A1")
End Sub

Autor: Super (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
7 Jahre alt, und immer noch super. So einfach.

Das funktioniert bei mir mit Windows 7 und einem alten Excel-Version.
    sendVar$ = Worksheets("Sheet1").Range("C26") + Chr(13)
    Open "COM1:19200,N,8,1" For Binary Access Read Write As #1 'Open the com port
    Put #1, , sendVar$ 'write string to interface
    '--------------------------------------------------------
    answer = "" 'clear response string
    char = "" 'clear character string
    While (char <> Chr(13))      'loop until [CR]
        char = Input(1, #1)             'get character
        If (char > Chr(31)) Then
            answer = answer + char   'add, if printable char
            'Worksheets("Sheet1").Range("C29") = answer 'OPTIONAL watch cell fill up until carraige return
        End If
    Wend
    Close #1
    '--------------------------------------------------------
    Worksheets("Sheet1").Range("C27") = answer 'put response in cell

Autor: Oliver R. (orb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super schrieb:
> 7 Jahre alt, und immer noch super

Wenn Du schon erkennst, daß das Thema uralt ist, warum buddelst Du es 
dann wieder aus?

Bist Du auf die Gravedigger-Award scharf?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver R. schrieb:
> Super schrieb:
>> 7 Jahre alt, und immer noch super
> Wenn Du schon erkennst, daß das Thema uralt ist, warum buddelst Du es
> dann wieder aus?
Ich würde sagen, dass es hier sogar sinnvoll ist, einen einzigen 
"RS232-Excel" Thread zu haben. Aber jetzt hat der Thread einen leichten 
Trend nach OT...

Autor: ICH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe

Autor: Wolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So was habe ich auch gesucht.

Ist nicht OT.

Aber wie kann ich diese Zeilen in EXCEL integrieren?

Gibt's dazu auch irgendwo eine Anleitung?

Danke

W.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.