Cześć. Mój problem polega na tym, iż muszę oprogramować stosunkowo prosty układ.
Na jego wejściu pojawiają się impulsy dodatnie, które przez rezystor i tranzystor npn zwierają nogę procesora do masy. Oczywiście ta noga jest programowo podciągnięta do plusa. Teraz do rzeczy - muszę w głównej pętli programu zawrzeć następujący warunek:
- gdy podam jeden sygnał na wejście i w ciągu 2s układ nie dostatnie drugiego impulsu, wysteruję pierwszy przekaźnik, powiedzmy na sekundę.
- gdy w ciągu dwóch sekund od podania pierwszego sygnału, do układu dotrze drugi sygnał, procesor poczeka jeszcze 1,5-2s na podanie trzeciego impulsu i jeśli go nie otrzyma - włączy przekaźnik 2 na określony czas.
- Jeśli w ciągu np. 5s dotrą trzy impulsy, procesor włączy trzeci przekaźnik na określony czas
Po wszystkim układ się zresetuje.
Czego już próbowałem - Select case i zliczanie impulsów (niestety to zawodzi, bo uklad od razu po pierwszym naciśnięciu przyjmuje stan licznika = 1 i realizuje komendę, zamiast czekać na drugi impuls). Odpalałem też timer procesora, lecz widocznie robię to źle. Teraz próbuję na If'ach jakoś to zrobić, ale tak szczerze powiedziawszy - ktoś, kto programuje na co dzień, zrobi to pewnie w kilka minut:) Ja niestety siedzę już długo i średnio mi idzie, a układ naprawdę jest prosty... Z góry Wam dziękuję
Na jego wejściu pojawiają się impulsy dodatnie, które przez rezystor i tranzystor npn zwierają nogę procesora do masy. Oczywiście ta noga jest programowo podciągnięta do plusa. Teraz do rzeczy - muszę w głównej pętli programu zawrzeć następujący warunek:
- gdy podam jeden sygnał na wejście i w ciągu 2s układ nie dostatnie drugiego impulsu, wysteruję pierwszy przekaźnik, powiedzmy na sekundę.
- gdy w ciągu dwóch sekund od podania pierwszego sygnału, do układu dotrze drugi sygnał, procesor poczeka jeszcze 1,5-2s na podanie trzeciego impulsu i jeśli go nie otrzyma - włączy przekaźnik 2 na określony czas.
- Jeśli w ciągu np. 5s dotrą trzy impulsy, procesor włączy trzeci przekaźnik na określony czas
Po wszystkim układ się zresetuje.
Czego już próbowałem - Select case i zliczanie impulsów (niestety to zawodzi, bo uklad od razu po pierwszym naciśnięciu przyjmuje stan licznika = 1 i realizuje komendę, zamiast czekać na drugi impuls). Odpalałem też timer procesora, lecz widocznie robię to źle. Teraz próbuję na If'ach jakoś to zrobić, ale tak szczerze powiedziawszy - ktoś, kto programuje na co dzień, zrobi to pewnie w kilka minut:) Ja niestety siedzę już długo i średnio mi idzie, a układ naprawdę jest prosty... Z góry Wam dziękuję