Hallo zusammen,
ich will ein MCP4141 Digitalpoti über SPI an einem Atmega 32 ansteuern.
Mein Problem im Moment ist, manchmal passiert etwas (Der Widerstand ändert sich schlagartig), doch meistens passiert gar nichts.
Im Moment will ich nur,den Widerstand langsam größer bzw. kleiner machen.

Mein Code:

Init Code:

Code:
DDRB |= (1<<PB5) | (1<<PB7) | (1<<PB4);  //SCK, SS und MOSI als Ausgang setzen
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0); //SPI aktivieren
Daten Senden:
Code:
     PORTB &= ~(1<<PB4);  //SS auf LOW - Übertragung aktivieren
    _delay_us(100); //Kurz warten
    SPDR = data;                                                              // Daten schicken
    while(!(SPSR & (1<<SPIF)));      
    _delay_us(100); //Kurz warten
     PORTB |= (1<<PB4);          //SS auf High - Wert übernehmen
Und die Daten die ich sende:
data = 0b00000111 //Drecrement of Wiper 0
und
data = 0b00010111 //Decrement of Wiper 1

Da ich noch nie davor etwas mit SPI gemacht habe, hoffe ich darauf dass jemand von euch den Fehler in meinem Code findet.

Viele Grüße
Shedepe