mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zur seriel senden bei AVR


Autor: gost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo leute ich möschte gerne wissen wenn ich die ADC-werte so schicken 
kann über die serielle schnittstelle!

Ich muß aber dies ohne handshake und startbit und stopbit machen!! ist 
dies dann so richtig???

;----------------------------------------------------------------------- 
-

      ldi  TEMP,  0x43





      out ADMUX, TEMP

      ldi   temp1,0xE7







    out   ADCSRA,temp1
loop12:    in    temp1,ADCSRA
    andi  temp1,0x10     ;kontrolliere ob wandlung fertig
    breq  loop12       ;wenn nicht spring auf loop

      sbi   ADCSRA,4    ;set bit in 4


;Senden der AD-Wandlungswert der Temperatur ((((IST DIES SO 
RICHTIG))))))
;===========================================
Senden2: in temp1,ADCL      ;Low byte des AD-Wandler von der temperatur 
in
        ;register- temp setzen
  out  UDR, temp1    ;Wert von temp dann über den seriel-port schicken

  in   temp1,ADCH   ;HIGH byte des AD-Wandler von der temperatur
            ;in register - temp setzen
  out  UDR, temp1    ;Wert von temp dann über den seriel-port schicken

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

Bewertung
0 lesenswert
nicht lesenswert
gost wrote:
> Hallo leute ich möschte gerne wissen wenn ich die ADC-werte so schicken
> kann über die serielle schnittstelle!
>
> Ich muß aber dies ohne handshake
OK

> und startbit und stopbit machen!!
das geht nicht. Start und Stopbit sind integraler Betsandteil
dessen was man RS232 nennt. Ohne funktioniert RS232 einfach
nicht.


> ;Senden der AD-Wandlungswert der Temperatur ((((IST DIES SO
> RICHTIG))))))
> ;===========================================
> Senden2: in temp1,ADCL      ;Low byte des AD-Wandler von der temperatur
> in
>         ;register- temp setzen
>   out  UDR, temp1    ;Wert von temp dann über den seriel-port schicken
>
>   in   temp1,ADCH   ;HIGH byte des AD-Wandler von der temperatur
>             ;in register - temp setzen
>   out  UDR, temp1    ;Wert von temp dann über den seriel-port schicken

> ist dies dann so richtig???

Nein.
Du solltest vor dem Senden (einschrieben in UDR) die
UART zunächst befragen ob sie überhaupt bereit ist
ein Zeichen anzunehmen. Das Senden eines Bytes dauert
seine Zeit.

Warum schaust du nicht ins Tutorial. Das ist das alles
beschrieben.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

und der dürfte dich auch interessieren

http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

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.