Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

I2C Funktion Kategorie: I²C-Bus (von Jenny - 30.06.2010 11:50)
Ich nutze:
C-Control Pro Mega128, Pro-Bot128
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)