$regfile = "m8def.dat" 'микроконтроллер ATmega8 $crystal = 8000000 'частота работы 8МГц 'конфигурируем scl и sda пины Config Sda = Portd.4 ' I2C Data Config Scl = Portc.5 ' I2C Clock Config Portc = Input 'конфигурируем подключение дисплея Config Lcdpin = Pin , Rs = Portb.0 , E = Portd.7 , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 Config Lcd = 16 * 2 Cursor Blink Cls Lcd "AVRproject.ru" Lowerline Lcd "accel ADXL312" Wait 3 Cursor Noblink Cursor Off Cls 'константы на биты чтения и записи adxl312 Const Adxl312write = &H3A ' бит записи Const Adxl312read = &H3B ' бит чтения Dim Data0x As Byte Dim Data1x As Byte Dim Data0y As Byte Dim Data1y As Byte Dim Data0z As Byte Dim Data1z As Byte Do Gosub Adxl312 Lcd Data0y Lowerline Lcd Data1y Waitms 500 Cls Loop End 'end program Adxl312: I2cstart 'даем старт шине I2cwbyte Adxl312write 'отправляем бит записи I2cwbyte &H32 'отправляем адрес откуда нужно считать I2cstart 'повторный старт I2cwbyte Adxl312read 'отправляем бит чтения I2crbyte Data0x , Ack 'принимаем данные для трех осей I2crbyte Data1x , Ack I2crbyte Data0y , Ack I2crbyte Data1y , Ack I2crbyte Data0z , Ack I2crbyte Data1z , Nack 'заканчиваем прием командой nack I2cstop 'закрываем шину Return