pomysł mi się podoba, kod jest jakiś taki czytelny
no więc program teraz wygląda tak:
int licznik=0;
while(1)
{
// Jeśli przycisk wciśnięty
while(!(PINC & 0x01))
{
_delay_ms(50);
while(PINC & 0x01) {}
_delay_ms(50);
}
licznik++;
if (licznik>2) { licznik=0; PORTD=0x0f; } // zeruje licznik i gasi diody
if (licznik==1) PORTD=0x0e; //zapal pierwszą diodę
if (licznik==2) PORTD=0x0d; //zapal drugą diodę
_delay_ms(1000);
}
Nie wiem czy to wina mojej elektroniki, ale program teraz wykonuje się sam. Gdyby nie to opóźnienie na końcu to nie byłoby tego widać, ale że jest sekundowe opóźnienie to zapala się jedna, druga, gasną. Po prostu problem nadal jest w tym że ta część odpowiedzialna za przycisk, nie czeka.
Dodano po 1 [godziny] 33 [minuty]:
no chyba rozgryzłem temat

narazie działa bardzo ładnie
dla wszystkich którzy kiedyś mieliby podobny problem podaje pełny, działający kod:
#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
/* Wszystkie linie portu D będą wyjściami */
DDRD = 0xff;
PORTD = 0xff;
/* Linia PC0 będzie wejściem z podciągnięciem do VCC */
DDRC = 0x00;
PORTC = 0x01;
int licznik=0;
while(1)
{
// Jeśli przycisk wciśnięty
while(!(PINC & 0x01))
{
if (licznik>2) { licznik=0; PORTD=0x0f; } // zeruje licznik i gasi diody
if (licznik==1) PORTD=0x0e; //zapal pierwszą diodę
if (licznik==2) PORTD=0x0d; //zapal drugą diodę
_delay_ms(80);
while(!(PINC & 0x01)) {} // puszczenie przycisku
_delay_ms(80);
licznik++;
}
_delay_ms(30);
}
}
Nie myślałem, że tak duże znaczenie mogą mieć opóźnienia. W zależności (jak to już ktoś tu napisał) od jakości należy dobrać je doświadczalnie.
Wrzucenie sprawdzania licznika w pętle sprawdzającą przycisk powoduje zapalenie diody od razu po wciśnięciu, natomiast poza pętlą lub na końcu powoduje działanie na zboczu opadającym.
Mam nadzieje, że jutro pomożecie mi znów

bo będe próbował zrobić coś takiego - sekwencja jak ta, ale jeśli wciśnięcia następują po sobie. A jeśli ustaną np. na 5 sek to następne wciśnięcie diody zgasi.
Dodałem znaczniki [code] - proszę ich używać.
[zumek]