I2C Funktion Kategorie: I²C-Bus (von Jenny - 30.06.2010 11:50) | ||
| ||
Hallo an alle, ich möchte eine Beschleunigungssensor (BMA150) mit meinem PRO BOT128 verbinden und anschlie�end die Register des Sensore auslesen. Das ganze soll über I2C laufen. Nun habe ich den Aufbau, Funktion usw. der I2C SChnittstelle theoretisch verstanden, aber die Probleme sind nun bei der Umsetzung, sprich bei der Programmierung. Dazu habe ich das Handbuch von C-Control durchforstet und bin auf ein Beispiel gesto�en: I2C Beispiel Seite 159 >Beispiel: EEPROM 24C64 lesen und schreiben ohne I2C_Status Abfrage > >main(void) >{ >>word address; >>byte data,EEPROM_data; >> >>address=0x20; >>data=0x42; >> >>I2C_Init(I2C_100kHz ); >>// write data to 24C64 (8k x 8) EEPROM >> >>I2C_Start(); >>I2C_Write(0xA0); // DEVICE ADDRESS : A0 >>I2C_Write(address>>8); // HIGH WORD ADDRESS >>I2C_Write(address); // LOW WORD ADDRESS >>I2C_Write(data); // write Data >>I2C_Stop(); >> >>AbsDelay(5); // delay for EEPROM Write Cycle >> >>// read data from 24C64 (8k x 8) EEPROM >> >>I2C_Start(); >>I2C_Write(0xA0); // DEVICE ADDRESS : A0 >>I2C_Write(address>>8); // HIGH WORD ADDRESS >>I2C_Write(address); // LOW WORD ADDRESS >>I2C_Start(); // RESTART >>I2C_Write(0xA1); // DEVICE ADDRESS : A1 >>EEPROM_data=I2C_Read_NACK(); >>I2C_Stop(); >>Msg_WriteHex(EEPROM_data); >} 1.) Kann ich adresse im Programm gleichsetzten mit der Adresse meines Registers? 2.) Entspricht data im Programm, meine Grö�e des Registers z.B. 2 bit? 3.) address>>8 verstehe ich nicht Ist zeimlich viel geschrieben sorry, hoffe aber Ihr könnt mir nen kleinen Tipp geben. Vielen Dank im Voraus. Gru� Jenny | ||
Antwort schreiben Antworten: Re: I2C Funktion (von Robert - 30.06.2010 15:05) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum