ATTINY26 TWI-SLAVE schon wieder

OP #1282805
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:
1
.include "tn26def.inc"        ; Deklarationen für ATtiny26
2

3
.equ  twi_addr = $90         ; TWI Adresse
4

5

6
.cseg                ; Programm-Flash
7
    rjmp  init        ; Reset-Einsprung
8

9
.org  0x007            ; USI Start Interrupt
10
    rjmp  usi_start
11

12
.org  0x008            ; USI Overflow Interrupt
13
    rjmp  usi_ovf
14

15

16
.org  0x00C            ; Interrupteinsprünge übergehen
17

18
init:  ldi    R16, RAMEND      ; Stapel anlegen
19
    out    SP, R16
20

21
    ldi    R16, 0b11111111    ; PortA als Ausgang
22
    out    DDRA, R16
23

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

28
    sei              ; Interrupts aktivieren
29

30

31

32
loop:  
33
 
34
rjmp  loop        ; Endlosschleife
35

36

37

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

43
    reti            ; Kehre zurück
44

45
usi_ovf:
46
    in    R16, USIDR
47
  lsr r16
48
  lsr r16
49
    out    PORTA, R16
50

51
    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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.