www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR mega8 und RC5 an RS232


Autor: Lasse Beyer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.
reset:    ldi    temp,low(RAMEND)  ;Initialize stackpointer
    out  SPL,temp      
    ldi    temp,high(RAMEND)
    out  SPH,temp
  
    ldi  temp,1    ;Timer/Counter 0 clocked at CK
    out  TCCR0,temp

    ldi  temp,1<<TOIE0  ;Enable Timer0 overflow interrupt
    out  TIMSK,temp
    
;### Ab hier:
    ldi temp, high(12)
    out  UBRRH, temp
    ldi temp, low(12)
    out  UBRRL, temp
    ldi temp, 0b00001000
    out  UCSRB, temp
;###
    sei      ;Enable gobal interrupt

main:    rcall  detect    ;Call RC5 detect routine

;### Und hier:
    cpi  system,SYS_ADDR  ;Zum testen weggelassen!
    brne  release

    andi  command,0x3F  ;Remove control bit
transmit:
    sbis  UCSRA, UDRE
    rjmp  transmit
    out  UDR, command

;###

    rjmp  main


release:  clr  command    ;Clear PORTB
    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

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm
.def  timerH  =R16
16 soll wohl 18 sein ...

funktioniert denn der Orginal Code bei dir?

Autor: Lasse Beyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Florian ...... (flori)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, noch ein Link:
http://vamposdecampos.googlepages.com/infrahid.html

Nicht genau das was du willst, abre vielleicht hilfts ja.

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.