vstupy ATmega

Pokud použiješ delay v hlavním programu a I2C čtení voláš přerušením, tak ne. Navíc při čtení čipu DS1307 je MCU master a udává takt hodin, tudíž i kdyby došlo k nějakému přerušení v průběhu čtení, na výsledek to nemá vliv, protože I2C je synchronní přenos. Každopádně delay používej maximálně v řádu stovek mikrosekund. Pokud potřebuješ delay 1 ms a více, je použití delaye pouze, pokud mcu nedělá nic jinýho, než třeba bliká LEDkou. Pak klidně dej i delay 500 ms, abys dostal 1 Hz. Pokud ale píšeš nějaký program, který toho vykonává víc, pak se delayi vyhybej, jak jen můžeš. Pokud potřebuješ mezi dvěma částmi akce nějaký odstup, pak si akci rozkouskuj a pomocí časovače a příznaků volej postupně jednotlivé části. Delay je prostě něco, co v programech až na vyjímky nemá co pohledávat.