static void i2c_ack() { MAKE_DATA_OUTPUT(); CLEAR_DATA(); pulse_clock(); }
static void i2c_end() { MAKE_DATA_OUTPUT(); CLEAR_DATA(); i2c_delay_us(100); SET_CLOCK(); i2c_delay_us(100); SET_DATA(); }
static void i2c_start() { SET_DATA(); SET_CLOCK(); MAKE_DATA_OUTPUT(); i2c_delay_us(100); CLEAR_DATA(); i2c_delay_us(100); CLEAR_CLOCK(); }
static PCS_STREAM_DATA *new_dp(int show_errors, int persistent) { PCS_STREAM_DATA *dp = NULL; PEALLOCATE(dp, sizeof(PCS_STREAM_DATA), persistent); CLEAR_DATA(*dp); dp->persistent = persistent; dp->show_errors = show_errors; return dp; }
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_ack(){ MAKE_DATA_OUTPUT(); CLEAR_DATA(); pulse_clock(); printf(" i2c_ack\n"); }