Hi, ich würde gerne mit meinem ATmega48 ein Digi Poti(AD5231) ansprechen. Um zu sehen ob die Kommunikation funktioniert würde ich einfach gerne die Clock intervalle messen... Folgendes Problem: Mit diesem Sourcecode: unsigned char clear = 0; void Master_senden(unsigned char data) { PORTB &= ~(1<<SS); //SS auf LOW SPDR = data; //schreiben der Daten while(!(SPSR & (1<<SPIF))) //wait for transmission complete PORTB |= (1<<SS); //SS auf HIGH } void Master_init(void) { DDRB |= (1<<MOSI) | (1<<SCK)|(1<<SS) ; //MOSI,SCK,PB1 output DDRB &= ~(1<<MISO); //MISO input PORTB |= (1<<SS) | (1<<SCK); //SS,SCK auf HIGH setzen SPCR |= (1<<SPR0) | (1<<MSTR) | (1<<SPE); //enable SPI, Master, set clock rate fck/16 clear = SPSR; clear = SPDR; //clear SPIF } void main(void) { Master_init (); Master_senden(1); while(1){} } bekomme ich nur eine Dauerspannung von 0,673V am SCK-Pin ausgegeben! Ich wäre um jeden Hilfe dankbar! Grüße Daniel
Also ich hab festgestellt, dass die 0,67V die Spannung ist, die anliegt wenn ich den Pin nicht anspreche, also geh ich mal davon aus, dass er gar nicht sendet. Wäre echt froh wenn mir jemand weiterhelfen könnte....
> dass die 0,67V die Spannung ist, die anliegt wenn ich den Pin > nicht anspreche ... Die Spannung ist für einen "low" Pegel aber extrem hoch. Vermutlich liegt da noch ein Fehler in der Hardware vor.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.