void ICACHE_FLASH_ATTR twi_init(uint8_t pin_sda, uint8_t pin_scl) { twi_sda = pin_sda; twi_scl = pin_scl; pinMode(twi_sda, INPUT_PULLUP); pinMode(twi_scl, INPUT_PULLUP); twi_setClock(100000); twi_setClockStretchLimit(230); // default value is 230 uS }
void twi_init(unsigned char sda, unsigned char scl) { // set timer function ets_timer_setfn(&timer, onTimer, NULL); // create event task ets_task(eventTask, EVENTTASK_QUEUE_PRIO, eventTaskQueue, EVENTTASK_QUEUE_SIZE); twi_sda = sda; twi_scl = scl; pinMode(twi_sda, INPUT_PULLUP); pinMode(twi_scl, INPUT_PULLUP); twi_setClock(preferred_si2c_clock); twi_setClockStretchLimit(230); // default value is 230 uS if (twi_addr != 0) { attachInterrupt(scl, onSclChange, CHANGE); attachInterrupt(sda, onSdaChange, CHANGE); } }
void TwoWire::setClockStretchLimit(uint32_t limit){ twi_setClockStretchLimit(limit); }