Forum: Mikrocontroller und Digitale Elektronik Senden UART ATMEGA64 Probleme


von KlausMahrert (Gast)


Lesenswert?

Hallo,

ich möchte den Empfang eines Zeichens an UART1 eines ATMega64 mit einem 
Acknowledge bestätigen. Ich habe mich soweit es ging an den Quellcode 
aus dem Datenblatt gehalten, jedoch habe ich bislang keine Erfolge beim 
Senden eines Zeichens erzielen können. Der Empfang klappt. Vielleicht 
könnt Ihr ja den Code mal kritisch beäugen: (ich habe nur die 
Initialisierungsroutine und die entsprechende Routine zum empfangen und 
senden eingefügt; Der Aufruf erfolgt im Hauptprogramm)
1
InitUART:
2
        LDI  r24,LOW(2)                 ; UCSR1A = 0x02
3
        STS  UCSR1A,r24
4
        LDI  r24,LOW(152)               ; UCSR1B = 0x98
5
        STS  UCSR1B,r24
6
        LDI  r24,LOW(6)                 ; UCSR1C = 0x06
7
        STS  UCSR1C,r24
8
        LDI  r24,LOW(0)                 ; UBRR1H = 0x00
9
        STS  UBRR1H,r24
10
        LDI  r24,LOW(16)                ; UBRR1L = 0x10
11
        STS  UBRR1L,r24
12
        ret
13
14
Warte:
15
        ; auf ein empfangenes Byte warten
16
        lds     r24, UCSR1A
17
        sbrs    r24, RXC
18
        rjmp    Warte
19
        lds     r24, UDR1
20
Antwort:
21
        ; warten bis der Sendepuffer leer ist
22
        lds     r25, UCSR1A
23
        sbrs    r25, UDRE
24
        rjmp    Antwort
25
        ; Antwort senden
26
        ldi     r25, 0x02
27
        sts     UDR1, r25
28
        ret

Vielen Dank
Klaus

von Johannes M. (johnny-m)


Lesenswert?

Was glaubst Du denn, was die Gegenstelle mit dem Zeichen 0x02 (STX) 
macht? Um was für eine Gegenstelle handelt es sich denn überhaupt? Wenn 
es ein PC ist, dann solltest Du vielleicht zunächst mal besser ein 
Zeichen senden, das auch darstellbar ist...

von KlausMahrert (Gast)


Lesenswert?

Was mit dem angefangenen Zeichen gemacht wird ist doch erst mal egal. Ja 
es ist ein PC. Das Problem ist aber wie oben beschrieben, dass der 
Controller das Zeichen gar nicht auf die TX Leitung schickt. Mit Hilfe 
eines Oszis kann man so etwas prüfen.

von Johannes M. (johnny-m)


Lesenswert?

KlausMahrert wrote:
> Was mit dem angefangenen Zeichen gemacht wird ist doch erst mal egal. Ja
> es ist ein PC. Das Problem ist aber wie oben beschrieben, dass der
> Controller das Zeichen gar nicht auf die TX Leitung schickt. Mit Hilfe
> eines Oszis kann man so etwas prüfen.
Ist das ein Grund, hier pampig zu werden bzw. klugzuscheißen? Die 
Information, dass Du das mit einem Oszilloskop nachgemessen hast, ist im 
OP nicht enthalten und ich bin kein Hellseher!

Abgesehen davon ist Deine ganze Initialisierung Kernschrott. Das kann 
kein Mensch lesen. Warum benutzt Du nicht die Bitnamen? Glaubst Du, hier 
gräbt jemand erst mal das Datenblatt aus und sucht sich die einzelnen 
Bitkonfigurationen zusammen? Für das Schreiben der Steuerregister ist 
das da oben die denkbar schlechteste Methode! So kann man nur pauschal 
und mit Vermutungen antworten (Sender überhaupt eingeschaltet...?)

von KlausMahrert (Gast)


Lesenswert?

Der einzige der hier pampig wird bist du Ausdrücke wie Kernschrott zu 
verwenden werde ich nicht kommentieren! Ich bin froh das die Mehrzahl 
der User hier im Forum nicht so ist wie du . Vielen Dank für deine 
Hilfe. Wenn dich die Beantwortung von Fragen hier im Forum so 
unterfordert dann würde ich es mal mit einer Aufgabe versuchen die dir 
gewachsen ist! Es gibt weltliche Probleme die deiner Hilfe unbedingt 
bedürfen wie zum Beispiel die Erschaffung eines Perpetuum Mobile (kleine 
Hilfe:http://de.wikipedia.org/wiki/Perpetuum_Mobile) oder das Erreichen 
von Lichtgeschwindigkeit da brauchst du dich nicht mit solchem stupidem 
"Kernschrott" abzugeben. Man gut das ich das Problem auch ohne dich 
lösen konnte. So ein bisschen Ablenkung hilft halt immer wieder.
Schönen Tag noch...

von Johannes M. (johnny-m)


Lesenswert?

KlausMahrert wrote:
> Der einzige der hier pampig wird bist du Ausdrücke wie Kernschrott zu
> [...]
Sorry, Freundchen, wenn Du mir in dem Ton erzählst, dass man "das mit 
Hilfe eines Oszis prüfen kann", das Oszi aber vorher nirgends erwähnt 
wird, dann ist das ziemlich unverschämt. Und anstatt mit brauchbaren 
Informationen rauszurücken, kommt dann sowas? Den "Kernschrott" habe ich 
erst nach Deinen ersten Unverschämtheiten erwähnt! (Und ich bleibe 
auch dabei: Diese Initialisierung ist ungeeignet zur Fehlersuche!) 
Herzlichen Dank für's Gespräch.

von Klausy (Gast)


Lesenswert?

der Himmel is blau, die Vögel zwitschern, alles wird gut...

von Matthias L. (Gast)


Lesenswert?

>Ich bin froh das die Mehrzahl
>der User hier im Forum nicht so ist wie du . Vielen Dank für deine
>Hilfe. Wenn dich die Beantwortung von Fragen hier im Forum so
>unterfordert dann würde ich es mal mit einer Aufgabe versuchen die dir
>gewachsen ist!

Also Leute, jetzt beruhigt euch mal wieder!

@KlausMahrert

Folgendes solltest du beachten:
Das ist ein kostenloses Forum, wo man sich Hilfe holen kann. Die Leute 
hier antworten aus Lust&Freude&Spass. Nicht weil sie es müssen. Du 
hast hier um Hilfe gefragt und solltest (übertrieben ausgedrückt) froh 
sein, dass du kompetente (ja-ich denke das kann ich beurteilen) Hilfe 
bekommst/bekommen wirst.

>Kernschrott
Das Wort ist sicherlich "ungünstig" gewählt, trifft aber zu. Ich denke, 
ich bin lange genug hier dabei, um behaupten zu können, dass  /Johannes 
M/ eine "gewisse" Erfahrung und Kompetenz hat, um solche Aussagen zu 
machen.

Ich würde dir raten, solche Aussagen wie
>Abgesehen davon ist Deine ganze Initialisierung Kernschrott.
nicht als persönliche Beleidigung auffassen, sondern von "alten Hasen" 
gewissen Dinge (gern hinterfragend) hinnehmen...

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.