Hallo! Bei Kommunikation des MSP-430 mit einem Sensor muss ich die RESTART-Option verwenden, da der Sensor keine STOP-Sequenz zwischen Schreib- und Lesebefehlen akzeptiert. Das klappt bei mir aber nicht, es wird nicht vom Senden auf Empfangen umgeschaltet (TXRDYIFG bleibt '1'und RXRDYIFG - '0'). Hatte vielleicht jemand das ähnliche Problem? Danke! (mein Code: P3SEL |= 0x0a; // Assign I2C pins to module U0CTL |= I2C + SYNC; // Switch USART0 to I2C mode U0CTL &= ~I2CEN; // Disable I2C I2CTCTL = I2CRM + I2CSSEL_2; // SMCLK + RESTART I2CSCLH = 0x01; // High period of SCL I2CSCLL = 0x01; // Low period of SCL I2CSA = addr; // Slave address U0CTL |= I2CEN; // Enable I2C, 7 bit addr, U0CTL |= MST; // Master mode I2CTCTL &= 0xfd ; // Set STOP-bit low I2CTCTL |= I2CTRX + I2CSTT; // transmit while ((I2CIFG & TXRDYIFG) == 0); // Wait for T. to be ready I2CDRB = data; I2CTCTL &= 0xf5; // receive mode I2CTCTL |= I2CSTT ; while ((I2CIFG & RXRDYIFG) == 0); // Wait for R to be ready I2CTCTL |= I2CSTP; read_val = I2CDRB; )
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.