Pull to refresh

Comments 3

Clock stretching умеет? Это самая частая причина несовместимости устройств с USI и многой периферии.

Сам хотел спросить. Но это-же переводчик… Таки — умеет.


По крайней мере - для USI
uint8_t TinyI2CMaster::transfer (uint8_t data) {
// ......
// ......
  do {
    DELAY_T2TWI;
    USICR = data;                                                 // Generate positive SCL edge.
    while (!(PIN_USI_CL & 1<<PIN_USI_SCL));                       // Wait for SCL to go high.
    DELAY_T4TWI;
    USICR = data;                                                 // Generate negative SCL edge.
} while (!(USISR & 1<<USIOIF)); // Check for transfer complete.

Но отсутствие прерываний — существенно обесценивает этот код. Ну и — контроль перманентного замыкания SCL на Gnd можно добавить...

Но отсутствие прерываний

Спасибо, что посмотрели и поделились.
Было первым вопросом и надежда - может всё же отошли от "ардуино традиций" :)

Sign up to leave a comment.