mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTINY26 TWI-SLAVE schon wieder


Autor: Alex Fxxxx (electronicfox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich arbeite seit Tagen an diesem Quellcode rum und habe nach längeren 
Umschreiben endlich zum laufen gebracht. Die Ausgabe auf die LEDs 
funktioniert wunderbar, nur komm ich nicht drauf, wie man die PORTs 
einlesen kann und danach über TWI abzufragen.

So schaut der CODE aus:

.include "tn26def.inc"        ; Deklarationen für ATtiny26

.equ  twi_addr = $90         ; TWI Adresse


.cseg                ; Programm-Flash
    rjmp  init        ; Reset-Einsprung

.org  0x007            ; USI Start Interrupt
    rjmp  usi_start

.org  0x008            ; USI Overflow Interrupt
    rjmp  usi_ovf


.org  0x00C            ; Interrupteinsprünge übergehen

init:  ldi    R16, RAMEND      ; Stapel anlegen
    out    SP, R16

    ldi    R16, 0b11111111    ; PortA als Ausgang
    out    DDRA, R16

    ; USI Control Register
    ldi    R16, (1 << USISIE) | (1 << USIOIE) | (1 << USIWM1) | (1 << USIWM0) | (1 << USICS1) | (0 << USICS1)
    out    USICR, R16

    sei              ; Interrupts aktivieren



loop:  
 
rjmp  loop        ; Endlosschleife



usi_start:
    in    R16, USISR      ; Start Condition Interrupt Flag zurücksetzen
    ori    R16, (1 << USISIF)
    out    USISR, R16

    reti            ; Kehre zurück

usi_ovf:
    in    R16, USIDR
  lsr r16
  lsr r16
    out    PORTA, R16

    reti            ; Kehre zurück


Nun möchte ich, wenn es möglich ist, an den freien B-PINs anschließen 
und mit der Adresse $91 auslesen, nur komm ich nicht drauf wie man es 
macht.

Könnt ja auch einen PCF nehmen, nur sind die schon mittlerweile 
Abgekündigt ;-) und dazu lernen möchte man ja auch.

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.