Gast
#645543
Hallo, ich plage mich seit ein paar Tagen mit einer Schaltung herum, aber irgendwie wills nicht so klappen ich hoffe ihr könnt mir weiterhelfen... Folgendes: ich habe einen ATmega48 und möchte über SPI einen Digi Poti(AD5231) programmieren. Das mit dem senden klappt auch schon ganz gut(Signal an clock messbar), aber der Widerstand des Potis ändert sich nur leider nie. Hoffentlich habt ihr ein paar hilfreiche Ideen. Hier der Programmcode: long int data = 0xB003FF; unsigned char clear = 0; void SPI_MasterInit(void) { DDRB |= (1<<DDD3)|(1<<DDD5)|(1<<DDD2); //MOSI,SCK und SS output DDRB &= ~(1<<DDD4); //MISO input SPCR = 0x00; //alle Register auf 0, SPCR |= (1<<SPE)| (1<<MSTR) | (1<<SPR0); //ausser SPE, MSTR und SPR0 PORTB |= (1<<SS) | (1<<SCK); //SS und SCK auf HIGH clear = SPSR; //read SPSR & SPDR -> clear SPIF clear = SPDR; } void SPI_MasterTransmit(void) { SPDR = data; //send Data while(!(SPSR & (1<<SPIF))) //wait until transmission complete { } } void main(void) { SPI_MasterInit(); SPI_MasterTransmit(); while(1) { } } Vielen Dank schon einmal im Vorraus für alle Beiträge! Grüße Daniel