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