Ahoj,
myslím, že se pro začátek pouštíš do moc složité věci. Chceš postavit hodiny - OK, jenže tomu nutně musí předcházet několik věcí, které musíš zvládnout :
- VŽDY MÍT PO RUCE DATASHEET A ČÍST HO.
- Zvládnout rozblikat LEDku (ovládání výstupních pinů) - to bys měl za sebou.
- Zvládnout signalizovat LEDkou stisk tlačítka (načítání vstupních pinů) - pro jednoduchost zapojení se tlačítko připojuje proti GND a v procesoru nastavíš pin jako vstupní a zapneš u něj pull-up.
- Zvládnout přepínat LEDku stiskem tlačítka (zpracování vstupních pinů - náběžná/sestupná hrana).
- Zapomenout na delaye, spustit čítač a LEDkou začít blikat na základě čítače - delay použvat v řádu maximálně 10ms a i to je pro mikrokontroler věčnost - za 10ms zvládne při 1 MHz až 10000 instrukcí. Navíc, čím delší bude delay, tím nepřesnější bude, protože překladač prostě počítá počet tiků hodin, jenže k tomu musíš připočítat, kolik tiků Ti zaberou obsluhy přerušení a kolikrát se které přerušení vyvolá, což jsou naprosto nevypočitatelné hodnoty.
- Když už budeš mít spuštěný čítač, přesunout blikání LEDkou na přerušení od čítače.
Až budeš mít zvládnuté výše zmíněné body, máš základ k tomu, abys mohl efektivně začít programovat.