AVR mega8 und RC5 an RS232

Gast #622741
Lesenswert?
• ▲
▼
Moin!

Ich habe ein Problem mit einem kleinen Dongle das ich bauen möchte. Das 
Teil soll im Prinzip nur die RC5-Codes von einer bestimmten 
Fernbedienung empfangen und via RS232 an einen PC weiterleiten. Um's mir 
einfach zu machen, habe ich das Projekt "avr410.asm" verwendet, weil das 
ja schon ein fertiger RC5-Encoder in Assembler ist. Da wollte ich jetzt 
lediglich noch den USART als Ausgabeschnittstelle installieren, aber das 
klappt nicht so ganz wie ich es mir erhofft habe.
Habe erstmal nur gemessen, was am TxD-Pin rauskommt. Der ist in erster 
Linie auf High-Pegel und macht in regelmäßigen Abständen (hab's nicht 
genau gemessen) zwei kleine "Absacker". Wenn ich auf einer FB eine Taste 
drücke, triggert der Oskar neu, aber es bleibt bei diesen 2 Low-Pegeln.

Hier mal die Code-Stelle die ich verändert habe, der Rest ist im Anhang.
1
reset:    ldi    temp,low(RAMEND)  ;Initialize stackpointer
2
    out  SPL,temp      
3
    ldi    temp,high(RAMEND)
4
    out  SPH,temp
5
  
6
    ldi  temp,1    ;Timer/Counter 0 clocked at CK
7
    out  TCCR0,temp
8

9
    ldi  temp,1<<TOIE0  ;Enable Timer0 overflow interrupt
10
    out  TIMSK,temp
11
    
12
;### Ab hier:
13
    ldi temp, high(12)
14
    out  UBRRH, temp
15
    ldi temp, low(12)
16
    out  UBRRL, temp
17
    ldi temp, 0b00001000
18
    out  UCSRB, temp
19
;###
20
    sei      ;Enable gobal interrupt
21

22
main:    rcall  detect    ;Call RC5 detect routine
23

24
;### Und hier:
25
    cpi  system,SYS_ADDR  ;Zum testen weggelassen!
26
    brne  release
27

28
    andi  command,0x3F  ;Remove control bit
29
transmit:
30
    sbis  UCSRA, UDRE
31
    rjmp  transmit
32
    out  UDR, command
33

34
;###
35

36
    rjmp  main
37

38

39
release:  clr  command    ;Clear PORTB
40
    rjmp  main


Bei 4MHz Takt soll der USART auf 19,2k laufen. Die Fuse-Bits sitzen auch 
alle richtig (CKSEL 1111, CKOPT 1, SUT 11  -> also nicht gesetzt).
Hoffe mir kann jemand helfen...


Vielen Dank schonmal,

Lasse
Angehängte Dateien:
Gast #623399
Lesenswert?
• ▲
▼
Das Register war wohl nicht schuld. Funktioniert immer noch nicht.

Den Originalcode habe ich so nicht ausprobiert. Bin eigentlich davon 
ausgegangen, dass der funktioniert, wenn schon ATMEL drin steht. Das 
Datenblatt zweifel' ich schließlich auch nicht an, die werden schon 
wissen was die entwickelt haben (...).

Naja. Dann werde ich den Kram mal schritt für Schritt durchgehen müssen 
und das Rad neu erfinden :(.

Trotzdem danke!
Gast #623465
Lesenswert?
• ▲
▼
Nein, ich danke dir. Wie der Zufall es will hab ich gestern auch mit dem 
orginal Code gespielt. Aber nicht zum laufen bekommen (sind meine erste 
Gehversuche mit asm) weil ich nicht wusste wie ich ihn portieren muss. 
Dank deiner Portierung funktioniert der einwandfrei :)

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.