squeez napisał(a):
Problem może być to że na twojej laurce przycisk zwierasz z masą czyli masz pewnie złączony PULL-UP w procesorze.
Odbiornik podaje stan wysoki na jeden ze swoich pinów w momencie wciśnięcia przycisku, czyli w stanie spoczynku musisz wymusić stan niski (PULL-DOWN) i wykrywać stan wysoki na pinie procesora.
Teraz może tam być stan nieustalony, a działanie "losowe".
To na tyle co zobaczyłem w kryształowej kuli i twoich "rycinach"

Chcesz dokładniej to pokaż kod i schemat.
A teraz abstrahując od tematu głównego to twoja postawa jest jest mało kulturalna. Oczekujesz pomocy przy czym sam stawiasz progi, piszesz, że nie masz czasu zrobić schematu, pokazać kodu itp. Dajesz tym do zrumienia, że użytkowników forum masz w ... więc nie dziw się, nikt nie garnie ci się pomóc.
Masz problem to go opisz dokładnie, podaj informacje jakie są potrzebne o które cię ktoś zapyta, a jak nie masz na to czasu ... to wróć na forum jak go znajdziesz.
Właśnie wróciłem do komputera i przeanalizowałem jeszcze raz kod i faktycznie był błąd z stanem pinów na samym początku

Zamiast
Kod:
int main(void)
{
DDRC &= ~ BUTTON_1|BUTTON_2|BUTTON_3|BUTTON_4|BUTTON_5;
PORTC |= BUTTON_1|BUTTON_2|BUTTON_3|BUTTON_4|BUTTON_5;
miałem
Kod:
int main(void)
{
DDRC |= BUTTON_1|BUTTON_2|BUTTON_3|BUTTON_4|BUTTON_5;
PORTC &= ~BUTTON_1|BUTTON_2|BUTTON_3|BUTTON_4|BUTTON_5;
głupi błąd;) ale dzięki za naprowadzenie!

Druga sprawa nie miałem nikogo zamiaru obrażać moim pytaniem ale zwyczajnie nie miałem możliwości ani wrzucić schemat ani kod programu.
Dlatego wrzuciłem odręcznie na szybko narysowane cokolwiek z dopiskiem "mało profesjonalny" żeby chodź trochę powiedzieć o co mi chodzi;)
Tak czy inaczej już działa jak chciałem i myślę że można zamknąć temat.
Dzięki za pomoc.