SPI mit tiny2313

OP #350648
Lesenswert?
• ▲
▼
Hallo,

möchte den tiny2313 als SPI Master programmieren. Laut Doku kann man
das ja via USI Schnittstelle.
Hätte gerne das selbe Verhalten als würde ich SPI mit einem mega8
verwenden.
Hat jemand so etwas schon in C realisiert?
Der Beispiel-Assembler-Code im Datenblatt habe ich nicht wirklich
verstanden :-(.

Grüße
Ingo
OP #350649
Lesenswert?
• ▲
▼
So gehts.

u08 spiTransferByte(u08 data)
{
  // write data to data register
  USIDR = data;
  // clear the USI Counter Overflow Flag
  USISR = (1<<USIOIF);
  while(1) {
  USICR = (1<<USIWM0) | (1<<USICS1) | (1<<USICLK) | (1<<USITC);
  if(USISR & (1<<USIOIF)) {
    break;
  }
  }
  return USIDR;
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren