USART Geschwindigkeit

Gast #3157987
Lesenswert?

Hallo Forum

Ich habe ein Programm, welches einen Wert über USART einliest und diesen 
gleich wieder versendet. Dabei ist die Zeit zwischen Einlesen und dem 
Versenden ~15ms. Ich verwende einen 24Mhz Quarz.

Liegt es an der Hardware, dass diese Zeit so lange ist, da ich einen 
kleinen Code habe?

Rore Wellenform= Empfangene Daten
Blaue Wellenform= Gesendete Daten
1
.EQU UBRR_REGISTER          =18
2
.DEF  TEMP=R17
3

4
SBI    DDRD,1
5
SBI    DDRD,2
6
SBI    PORTD,2
7

8
LDI    TEMP,  0B00000000
9
OUT    UCSRA,  TEMP
10

11
LDI    TEMP,  0B00011000
12
OUT    UCSRB,  TEMP
13

14
LDI    TEMP,  0B00000110
15
OUT    UCSRC,  TEMP
16

17
LDI    TEMP,  HIGH (UBRR_REGISTER)
18
OUT    UBRRH,  TEMP
19
LDI    TEMP,  LOW (UBRR_REGISTER)
20
OUT    UBRRL,  TEMP
21

22
START:
23
CBI    PORTD,2
24
SBI    PORTD,2
25

26
USART_RECEIVE:
27
SBIS  UCSRA, RXC
28
  RJMP USART_RECEIVE
29
IN  R16, UDR
30
CLR  UDR
31

32
USART_TRANSMIT:
33
SBIS  UCSRA, UDRE
34
  RJMP USART_TRANSMIT
35
OUT UDR, R16
36

37
RJMP START

Grüsse
Julian
Angehängte Dateien:
Gast #3158066
Lesenswert?

Spess53 schrieb:
> Hi
>
>>Ich habe ein Programm, welches einen Wert über USART einliest und diesen
>>gleich wieder versendet.
>
> Ich glaube nicht, das du dieses Programm benutzt.

Ich auch nicht wirklich. Zumindest 'CLR UDR' dürfte bei allen 
verbreiteten Assemblern für AVR zu einem Fehler führen.

Da weiß wohl wieder mal jemand nicht wirklich, was er da eigentlich tut.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren