Witajcie,
mam następujący problem.
Napisałem dość rozległy program i aby zmieścił mi się na flash atmegi muszę korzystać z optymalizacji. Jednak przy optymalizacji psuje mi się obsługa klawiatury matrycowej.
Przedstawię uproszczony kod i samą obsługę klawiatury, żeby nie zaciemniać sytuacji:
Oto kod obsługi klawiatury, wciśnięcie klawisza powoduje wyświetlenie na ekran informacji o tym, który klawisz został wciśnięty:
Kiedy nie dodaję przy kompilacji -Os to problemu nie ma, każdy z przycisków jest poprawnie rozpoznawany i wyprowadza na ekran poprawną wartość.
Jeśli jednak dodaję podczas kompilacji -Os to wiersz pierwszy nie działa poprawnie. Mianowicie w tym wierszu pierwsze dwa przyciski odpowiadają kolejno drugiemu i trzeciemu, natomiast przyciski trzeci i czwarty nie działają w ogóle.
Jak sobie poradzić z taką sytuacją, aby cała klawiatura działała jak należy?
mam następujący problem.
Napisałem dość rozległy program i aby zmieścił mi się na flash atmegi muszę korzystać z optymalizacji. Jednak przy optymalizacji psuje mi się obsługa klawiatury matrycowej.
Przedstawię uproszczony kod i samą obsługę klawiatury, żeby nie zaciemniać sytuacji:
Oto kod obsługi klawiatury, wciśnięcie klawisza powoduje wyświetlenie na ekran informacji o tym, który klawisz został wciśnięty:
Kod: C / C++
Kiedy nie dodaję przy kompilacji -Os to problemu nie ma, każdy z przycisków jest poprawnie rozpoznawany i wyprowadza na ekran poprawną wartość.
Jeśli jednak dodaję podczas kompilacji -Os to wiersz pierwszy nie działa poprawnie. Mianowicie w tym wierszu pierwsze dwa przyciski odpowiadają kolejno drugiemu i trzeciemu, natomiast przyciski trzeci i czwarty nie działają w ogóle.
Jak sobie poradzić z taką sytuacją, aby cała klawiatura działała jak należy?