static void i2c_ack() { MAKE_DATA_OUTPUT(); CLEAR_DATA(); pulse_clock(); }
static void i2c_nack() { MAKE_DATA_OUTPUT(); SET_DATA(); pulse_clock(); }
void i2c_init() { SET_CLOCK(); SET_DATA(); MAKE_CLOCK_OUTPUT(); MAKE_DATA_OUTPUT(); }
static void i2c_end() { MAKE_DATA_OUTPUT(); CLEAR_DATA(); i2c_delay_us(100); SET_CLOCK(); i2c_delay_us(100); SET_DATA(); }
char TOS_COMMAND(I2C_init)(){ printf("i2c_init\n"); SET_CLOCK(); SET_DATA(); MAKE_CLOCK_OUTPUT(); MAKE_DATA_OUTPUT(); VAR(state) = 0; VAR(data) = 0; return 1; }
static void i2c_start() { SET_DATA(); SET_CLOCK(); MAKE_DATA_OUTPUT(); i2c_delay_us(100); CLEAR_DATA(); i2c_delay_us(100); CLEAR_CLOCK(); }
void i2c_end(){ MAKE_DATA_OUTPUT(); CLEAR_DATA(); wait(); wait(); wait(); wait(); SET_CLOCK(); wait(); wait(); wait(); wait(); SET_DATA(); printf(" i2c_end\n"); }
void i2c_start(){ SET_DATA(); SET_CLOCK(); MAKE_DATA_OUTPUT(); wait(); wait(); wait(); wait(); CLEAR_DATA(); wait(); wait(); wait(); wait(); CLEAR_CLOCK(); printf(" i2c_start\n"); }
static unsigned char i2c_write(unsigned char c) { unsigned char i; MAKE_DATA_OUTPUT(); for (i = 0; i < 8; i++) { if (c & 0x80) { SET_DATA(); } else { CLEAR_DATA(); } pulse_clock(); c = c << 1; } i = read_bit(); return i == 0; }
char i2c_write(char c){ int i; MAKE_DATA_OUTPUT(); for(i = 0; i < 8; i ++){ if(c & 0x80){ printf("1"); SET_DATA(); }else{ printf("0"); CLEAR_DATA(); } pulse_clock(); c = c << 1; } i = read_bit(); printf("%x ", c & 0xff); return i == 0; }
void i2c_nack(){ MAKE_DATA_OUTPUT(); SET_DATA(); pulse_clock(); printf(" i2c_nack\n"); }
void i2c_ack(){ MAKE_DATA_OUTPUT(); CLEAR_DATA(); pulse_clock(); printf(" i2c_ack\n"); }