mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny2313 USI als TWI


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche jetzt schon einen Tag lang, die USI als TWI zu 
initialisieren.
Ich bekomme es einfach nicht hin einen Takt an SCL auszugeben.

hier mein Code. (Sind auch Testsachen dabei)
.include "tn2313def.inc"




.def temp1 = r16
.def temp2 = r17
.def temp3 = r18


    
.org 0x0000
    rjmp main

.org 0x000D
    rjmp timer0compare64

.org 0x000E
    rjmp timer0compare128

main:

    ldi temp1, LOW(RAMEND)
    out SPL, temp1

    ldi  temp1, 0b00100000
    out DDRD, temp1


    ldi temp1, 0b00000001
    out TCCR0B, temp1    ;Timer 0 Voreiler 1
    
    ldi temp1, 0b01000000
    out OCR0A, temp1    ;Timer 0 Compare 128
  
    ldi temp1, 0b10001000
    out OCR0B, temp1    ;Timer 0 Compare 128

    ldi temp1, 0b00000111
    out TIMSK, temp1    ;Timer 0 Interrupt enable


    ldi temp1, 0b00100100
    out USICR, temp1
    
  



    sei




    
loop:



rjmp loop

timer0compare64:

    cbi PORTD, 5  

  
    reti

timer0compare128:

    sbi PORTD,5 
  

  ;  ldi temp1, 0b00000000
  ;  out TCNT0, temp1
    reti


  

Könnt ihr mir ein par Denkanstöße geben.Komme auch mit googlen nicht 
weiter.

Danke!
mfg, Matthias

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias schrieb:
> ich versuche jetzt schon einen Tag lang, die USI als TWI zu
> initialisieren.

> ldi temp1, 0b00100100
>     out USICR, temp1

ist das alles?
z.b. im tiny26
"Since the clock also increments the counter, a counter overflow can be 
used to indicate
that the transfer is completed. The clock is generated by the master by 
toggling the PB2
pin via the PORTB Register."
Also toggel mal schön 16mal die Clockleitung.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
> Also toggel mal schön 16mal die Clockleitung.
Im Sinne von einfach mal:
sbi
nop
cbi
nop
...
Und schauen obs da funktioniert.
Wenn ja stimmt was mit dem Timer nicht.
:-)

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!

hatte ich vorher schon mal probiert (babe das falsche bit als Ausgang 
gesetzt).

Jetzt habe ich meinen Takt.

Wenn ich die USI als SPI initialisiere, ist der Takt schön.
Wenn ich die USI als TWI initialisiere, ist die ecke beim Takt vom
wechsel von 0 auf 1 leicht abgrundet.

Hat dazu jemand eine Idee.

mfg
Matthias

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.