SPI über USI am Attiny 2313

Gast #4443764
Lesenswert?
• ▲
▼
Hallo,

ich versuche mit einem Attiny2313 SPI als Master zu verwenden.
Am Clock kommt ein sauberes Signal, aber ich bekomme nur low an MOSI.
Hat jemand eine Idee was am Code nicht stimmt?

Der Code ist eigentlich aus dem Datenblatt übernommen, oder hab ich was 
vergessen?
1
void init(void){
2
  //Slave Select
3
  DDRB |= (1 << 4);
4
   //MOSI
5
  DDRB |= (1 << 5);
6
  //MISO
7
  DDRB &= ~(1 << 6);
8
  //SCK
9
  DDRB |= (1 << 7);
10
 
11
}
12

13
uint8_t send(uint8_t out) { 
14
  USIDR=out;
15
  USISR=(1<<USIOIF);
16
  do
17
    {
18
    USICR=  (1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC);
19
    }
20
  while (!(USISR & (1<<USIOIF)));
21
  return USIDR;
22
}


Danke

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