Hallo erstmal, ich möchte einen Sensor(BMA150) über SPI ansprechen.Bevor ich jedoch Daten zu dem Sensor rüberschicke, wollte ich erst einmal den Master(Controller) über ein Oszilloscope testen, bevor ich den Sensor über die 1k Widerstände anschließe. Nun habe ich folgenden Quellcode geschrieben: void spi_Init() { DDRB = (1<<DDB5) | (1<<DDB7); USISR=(1<<USIOIF); } int8_t usi_spi_data(int8_t dataspi) { spi_Init(); USIDR=dataspi; do { USICR=(1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC); }while(!(USISR&(1<<USIOIF))); return dataspi; } Wenn ich dieses Programm in einer schleife durchlaufen lasse, messe ich einen Takt am PIN7 jedoch kann ich am Oszilloscope keine Daten am MOSI messen(Es wird nur ein dauer High dargestellt). Der FKT wird der Wert (int8_t) test=0b10011001 übergeben. Was ist an meinem Programm falsch? Kann mir jemand helfen? Danke! mfg =)
B-man schrieb:
> (Es wird nur ein dauer High dargestellt
Ich muss mich korrigieren ich messe ein dauer LOW
Hallo,
B-man schrieb:
> USICR=(1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC);
Das dürfte doch wohl zur Init gehören...
Gruß aus Berlin
Michael
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.