Forum: Mikrocontroller und Digitale Elektronik SPI mit tiny2313


von Ingo K. (moongps)


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

von Ingo K. (moongps)


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;
}

von A.K. (Gast)


Lesenswert?

Atmel Application Note 319.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.