예제 #1
0
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
}
예제 #2
0
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);
  }
}
예제 #3
0
void TwoWire::setClockStretchLimit(uint32_t limit){
  twi_setClockStretchLimit(limit);
}