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


von gost (Gast)


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

von Karl H. (kbuchegg)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.