1 milisaniye timer kesmesi kur,
1. kesmeye girdiğinde portu sıfırla, portu giriş yap, kesmeden çık,
2. kesmeye girdiğinde portu oku (Port_yeni_deger) , portu sıfırla, portu çıkış yap,
porta eski değerini yükle (Port_eski_deger), kesmeden çık,
3. kesmede "Port_yeni_deger" i, "Port_son_deger" ' e al,
4,5,6 kesmede 4 ve 5, 1 ve 2. adımlar ile aynı şekilde olacak ama
adım 6 da, adım 3 yerine "Port_yeni_deger", "Port_son_deger" ' e eşit mi diye bakılacak
eşit ise buton_durum arttırılacak, değil ise buton_durum sıfırlanacak
(buton debounce, buton arkı engellemek için)
456, 789, 101112, 131415, aynı şekilde yapılacak
15. adım sonunda
buton_durum >3 ise
"Port_son deger" bitlerine bakılıp Port_eski_deger bitleri toggle edilecek
en kaba haliye
if( (Port_son deger,0) == 1 ) {Port_eski_deger = Port_eski_deger ^ 0b00000001;}
if( (Port_son deger,1) == 1 ) {Port_eski_deger = Port_eski_deger ^ 0b00000010;}
if( (Port_son deger,2) == 1 ) {Port_eski_deger = Port_eski_deger ^ 0b00000100;}
bu toggle işi portta kac led buton varsa herbiri için yapılacak,
ve Porta şimdi üretilmiş olan "Port_eski_deger" yüklenecek,
buton_durum sıfırlanacak,
adım1,2,3..15 sürekli bu şekilde tekrarlanacak.