Rafal
Guest
Mon Dec 20, 2004 6:48 pm
chodzi mi o mi procedurę badającą czy ma być aktualnie załączony przekaźnik
Quote:
czy nie, na podstawie czasu bierzącego i ustawień.
specysikacja:
Dane wejsciowe:
R7 - minuty ustawione
R6 - godzina ustawiona
R5 - minuty bierzące
R4 - godzina bierząca
wyjście:
A=0 to załączyć
A<>0 to wyłączyć
dam przykład
mam ustawiony st1 na zał 19:05 i wył 6:50 (a np. od 23:20 do 1:15 nie było
prądu) aktualny czas to 1:15 to w takim przypadku procedura powinna dać
sygnał załączenia
Andy
Guest
Mon Dec 20, 2004 6:59 pm
Użytkownik "Rafal" <rafal@pc-net.nospam.pl> napisał w wiadomości news:cq7721$11i$1@nemesis.news.tpi.pl...
Quote:
chodzi mi o mi procedurę badającą czy ma być aktualnie załączony przekaźnik
czy nie, na podstawie czasu bierzącego i ustawień.
specysikacja:
Dane wejsciowe:
R7 - minuty ustawione
R6 - godzina ustawiona
R5 - minuty bierzące
R4 - godzina bierząca
wyjście:
A=0 to załączyć
A<>0 to wyłączyć
dam przykład
mam ustawiony st1 na zał 19:05 i wył 6:50 (a np. od 23:20 do 1:15 nie było
prądu) aktualny czas to 1:15 to w takim przypadku procedura powinna dać
sygnał załączenia
....
w takim razie brakuje na wejsciu do procedury
informacji, o ktorej ma sie przekaznik wylaczyc
np w dwoch kolejnych rejestrach
--
Andrzej
Pawel Kurzawa
Guest
Mon Dec 20, 2004 10:16 pm
to moja procedurka w AVR-GCC, ale zobaczysz na czym idea polega to
sam sobie napiszesz w asm.
/*
porowanie czasow ON/OFF z aktualnym czasem
jezeli ON=OFF zwraca 0
jezeli poza przedzialem od ON do OFF zwraca -1
jezeli w przedziale zwraca 1
*/
s08 CompareTimes ( Time_t t_on, Time_t t_off, Time_t t_real ) {
if ( t_on.hour > t_off.hour && CompareTimes ( t_off, t_on, t_real ) == -1 )
return (1); //jezlie t_on > t_off to wywolaj funkcje z zamiana
argumentow
if ( t_on.hour == t_off.hour && t_on.min == t_off.min && t_on.sec ==
t_off.sec ) return (0);
else if (( t_real.hour > t_on.hour ||
( t_real.hour == t_on.hour && t_real.min > t_on.min ) ||
( t_real.hour == t_on.hour && t_real.min == t_on.min && t_real.sec >=
t_on.sec ) ) &&
( t_real.hour < t_off.hour ||
( t_real.hour == t_off.hour && t_real.min < t_off.min ) ||
( t_real.hour == t_off.hour && t_real.min == t_off.min && t_real.sec <
t_off.sec ) ) ) return (1);
else return (-1);
}
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
tomm
Guest
Tue Dec 21, 2004 9:07 am
przeciez juz pisales w jednym watku kilka dni temu o tym i dostales pelna
pomoc
po co piszesz drugi raz ???
Tomek
Pawel Kurzawa
Guest
Tue Dec 21, 2004 9:42 am
Quote:
po co piszesz drugi raz ???
a nie to samo przeczytaj w czym problem ...
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Rafal
Guest
Tue Dec 21, 2004 12:41 pm
to narazie uzyj jakis zmiennych jak chcesz
Rafal
Guest
Tue Dec 21, 2004 12:42 pm
problem rozwiazany ale nie do konca