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:
Daten Senden:Code:DDRB |= (1<<PB5) | (1<<PB7) | (1<<PB4); //SCK, SS und MOSI als Ausgang setzen SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0); //SPI aktivieren
Und die Daten die ich sende: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
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







Zitieren


Lesezeichen