www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI mit atmega48


Autor: manu (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo leute ich habe vor kurzem das programmieren von micrcontrollern 
gelernt und macht mir echt spass.
nun wollte ich mal zwei atmega48 über twi koppeln und ein paar befehle 
über ne rs232 zum master und anschliessend zum slave senden, leider 
bringe ich es trotz intensiefem studium der forenbeiträge nicht hin und 
das datasheet des atmega hilft mier auch nicht weiter.
irgendwo muss de wurm drin sein !

ich währe froh wenn mir jemand den fehler aufzeigen könte damit ich das 
teil zum laufen kriege

danke

manu

Slavedatei:
.include "m48def.inc"


.org 0x0000
rjmp Main          ;Sprung zu Main

Main:
;I/O Ports
ldi r16, 0b11111111      ;Port B 0-7 als Ausgang
out DDRB, r16

ldi r16, 0b11111111      ;Port B 0-7 als Ausgang
out DDRC, r16

.def Empfang = r20
.def DATA =r22

;Stack-Pointer
ldi  r16,     LOW(RamEnd)
out  SPL,     r16
ldi   r16,     High(RamEnd)
out  SPH,     r16

;TWI Einstellungen
ldi r16,0b00000010      ;Slavadresse
sts TWAR, r16

SBI portc,6

;Start TWI
TWIempfang_starten:
ldi r22,0x0
ldi r16,(1<<TWEA)|(1<<TWEN)
sts TWCR, r16

wait1:
ldi r16,TWCR
sbrs r16,TWINT
rjmp wait1

ldi r16,TWSR
;andi r16, 0xF8
cpi r16, 0x60
breq wait2
rjmp wait1

wait2:
ldi r16,TWCR
sbrs r16,TWINT
rjmp wait2

ldi r16,TWSR
;andi r16, 0xF8
cpi r16, 0x80
ldi r22,TWDR

rjmp Daten_Auswerten

cbi portc,6

;ende der Übertragung

Daten_Auswerten:      ;Empfangsdaten-Auswertung
cpi DATA, 'R'        ;vergleiche r20 mit 'R' u.s.w macht dies für die 
nachfolgenden Daten weiter
breq Rechtsfahren      ;Springe zum Rechtslauf
cpi DATA, 'L'
breq Linksfahren
reti

Rechtsfahren:
sbi portb,0
rjmp TWIempfang_starten

Linksfahren:
sbi portb,1
rjmp TWIempfang_starten

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: blac DAC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier es in C zu programmieren, dann hilft dir vielleicht auch einer 
:)

Autor: ecslowhand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du weisst aber, das RS232 nicht mit TWI zu tun hat, oder ?

Das ganze ist komplexer als Du wahrscheinlich denkst.

Bevor ich hier ins "Eingemachte" gehe, stelle ich mir die Frage, ob Du 
überhaupt weisst, was Du da tust. Z.B.:
ldi r16,TWCR

Hier lädst Du nicht wie gewünscht das Controlregister in R22, sondern 
die Adresse des Controllregisters.
Müsste also heissen:
lds r16, TWCR

Es gibt hier im Forum ein paar Codeschnipsel in Assembler, wo einfach 
ein Byte via TWI übertragen wird. Studiere dies durch, dann kommst Du 
auch weiter.

LG EC

Autor: ecslowhand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, schau mal hier nach.
Dann versuche das Ganze auf den MEGA48 umzuschreiben.

Beitrag "TWI / I2C einf. MASTER SLAVE Beispiel(Assembler) ATmega8"

LG EC

Autor: manu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe das problem gefunde jetzt get er.

danke EC

lg manu

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.