mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik A/D Wandlung werte über RS232 schicken


Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich will mit einem Atmega8 Controller eine Spannung messen diese Wandeln
und per RS232 an Hyperterminal schicken. RS232 Kommunikation klappt.
Problem 10 bit A/D Wert 8 bit über RS232, wie löse ich das? Nacheinander
einlesen?
Weiteres Problem will z.B jede ms einen Messwert, mach ich das übern A/D
Wandler Takt oder per Interrupt?

Autor: Robert S. (razer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Problem 10 bit A/D Wert 8 bit über RS232, wie löse ich das? Nacheinander
> einlesen?

Die empfangenen daten am Hypertminal sind einzelne Zeichen. Wenn du den 
Messert als Wert (zB 785) am Hyperterminal sehen willst, musst du vorher 
im µC die Zahl in einen String umwandeln und den Schickst du dann über 
den UART raus.

> Weiteres Problem will z.B jede ms einen Messwert, mach ich das übern A/D
> Wandler Takt oder per Interrupt?

Was meinst du mit Interrupt genau?? Ich wrde einen Timer initialisieren, 
der alle 1ms einen Interrupt auslöst. Und in der Interruptroutine würde 
ich eine AD Wandlung starten. Oder nur ein Flag setzen und das Flag in 
der Main pollen.

mfg Robert

Autor: Jörn Paschedag (jonnyp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must ACII-Zeichen senden. Such mal nach ASCII-Tabellen. Um den Wert 
785 zu übertragen musst du hex37, 38 und 35 senden.

Autor: Lu Ke (luke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie du Variablen-Werte über die Uart senden kannst ist hier
http://www.mikrocontroller.net/articles/AVR-GCC-Tu... sehr 
gut beschrieben.

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo VIelen Danlk für die Hilfe.

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach eins noch, das mit dem String senden werde ich dann wohl 
hinbekommen.
Wie kann ich denn jeden Wert in einen neue Zeile packen, so das ich mit 
Excel arbeiten kann? Kann ich dafür dir mir bekannten C-Befehle nutzen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Indem du, wie in C üblich, ein '\n' Zeichen einbaust.
Eventuell brauchst du auch die Sequenz "\r\n"

Autor: Willi Wacker (williwacker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorsicht mit Hyperterminal, wir hatten hier das Problem, dass das Teil 
ab und an mal ein paar Bytes verschluckt hat.

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was kann man sonst empfehlen ausser Hyperterminal? Eventuell direkt 
Excel mittels VBA programmieren? Habti ihr euch auch eine Zeitachse 
senden lassen?

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viel schöner als das Windows-Hyperterminal: HTerm
Siehe http://www.der-hammer.info/terminal/index.htm

Autor: Robert S. (razer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HTerm funktioniert wirklich super. Du kannst auch umstelleen in welchem 
Zahlenformat das empfangene Zeichen dargestellt werden soll...

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Anmerkung zur Zeit: Da ich ja jede ms abtasten will, macht es 
ja Sinn jede ms einen Interrupt auszulösen, der die A/D Wandlung 
startet, nur die Wandlung selber dauert ja auch 250us? Wie kann ich 
diesen Einfluss reduzieren?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da gibts keine Einfluß zu reduzieren. Du kannst den Timer so einstellen, 
dass er zyklisch alle 1ms einen Interrupt auslöst. Sollte dieser Mode 
nicht vom Controller unterstützt werden, mußt Du als erstes den Timer in 
der Interruptroutine zurücksetzen und neu starten. Der Timer läuft ja 
weiter, so lange Deine Wandlung dauert, wenn es das ist, was Du 
befürchtest.

Autor: Bobby 1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo stimmt, somit hat die Wandlungszeit keinen Einfluß

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.