Mne sa nechce teraz lustit cudzi kod, tak si to snad odsimuluj alebo vyskusaj. Si si isty ze IRQ vektor je na offsete 0001? Sa mi nezda
Inac co sa tyka mechanickych tlacitok - kazde tlacitko po stlaceni par ms kmita. Takze NEmozes to robit tak ze ked pride prerusenie tak si pozres level na pine, ptz ten level moze byt zrovna kmit na 0, ale zvycajne sa to robi tak ze ak prislo prerusenie tak vies ze to stlacil, pockas 10ms nech dokmita, otocis si polaritu IRQ pinu, a cakas na dalsie IRQ az pride dalsie IRQ pozres si polaritu pinu a vies ci to zrovna stlacil alebo pustil.
Druha moznost je elektrionicky debounce filter (zvycajne ako R-C clanok v kombinacii s schmitt trigger vstupom), niektore controllery maju moznost zapnut debounce na niektorych vstupoch, viz datasheet (tvoj atmel zhlavy nepoznam)