Witam
Piszę program (bascom) i nadziałem się na problem z którym nie mogę sobie
poradzić.
Timer 1 pracuje jako zegar i po spełnieniu warunku , ma załączyć przekaźnik
który ma być załączony na czas_pracy i po odliczeniu czasu pracy ma
wyłączyć się na czas przerwy i zablokować włączenia przekaźnika na ten czas.
Tak w skrócie:
kod :
Problemem jest jak przy pracującym zegarze ( Timer1)
przechwycić godzinę i dodać zadane czasy -czas pracy i czas przerwy
np . jest godzina 17-58-40 wystąpił warunek załączenia przekaźnika na
czas pracy 3 min - jak dodać ten czas by o godzinie 18-01-40 nastąpiło
wyłączenie przekaźnika ,czas przerwy będzie pewnie odbywał się na tej
samej zasadzie co wyżej.
Wiem że najlepiej byłoby włączyć timer0 i odliczać , ale w programie jest
jeszcze pomiar temperatury(1wire ), timer1 i jeszcze timer0 i w sumie
próbowałem ale gryzło się to ze sobą .
Jak to zrobić za wszelkie pomysły i sugestie z góry dziękuje i pozdrawiam
Poprawiłem tytuł.
[zumek]
Piszę program (bascom) i nadziałem się na problem z którym nie mogę sobie
poradzić.
Timer 1 pracuje jako zegar i po spełnieniu warunku , ma załączyć przekaźnik
który ma być załączony na czas_pracy i po odliczeniu czasu pracy ma
wyłączyć się na czas przerwy i zablokować włączenia przekaźnika na ten czas.
Tak w skrócie:
kod :
Code:
$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8
$crystal = 8000000 'deklaracja czestotliwości pracy
'$sim
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config 1wire = Portb.1 'deklaracja portu na którym będą podpięte DS18b20
'--------------------------------------TIMER1-------------------------------------------------
Enable Interrupts
Config Timer1 = Timer , Prescale = 256
Counter1 = 34286
On Timer1 Odmierz_1s
Enable Timer1
Code:
DO
WYŚWIETLANIE CZASU
WARUNEK ZAŁĄCZENIA PRZEKAŻNIKA
PRZEKAŻNIK ZAŁĄCZONY
ODLICZ CZAS_PRACY
GDY MINĄŁ CZAS_PRACY - WYŁĄCZ PRZEKAŻNIK
ZACZNIJ ODLICZAĆ CZAS_PRZERWY I ZABLOKUJ
WŁĄCZENIE PRZEKAŹNIKA NA CZAS_PRZERWY
LOOP
przerwanie od timera
CZAS_PRACY -USTAWIANY RĘCZNIE ZAKRES 0 - 5 MIN
CZAS_PRZERWY ------//-------//------ 0 - 40 MIN
Problemem jest jak przy pracującym zegarze ( Timer1)
przechwycić godzinę i dodać zadane czasy -czas pracy i czas przerwy
np . jest godzina 17-58-40 wystąpił warunek załączenia przekaźnika na
czas pracy 3 min - jak dodać ten czas by o godzinie 18-01-40 nastąpiło
wyłączenie przekaźnika ,czas przerwy będzie pewnie odbywał się na tej
samej zasadzie co wyżej.
Wiem że najlepiej byłoby włączyć timer0 i odliczać , ale w programie jest
jeszcze pomiar temperatury(1wire ), timer1 i jeszcze timer0 i w sumie
próbowałem ale gryzło się to ze sobą .
Jak to zrobić za wszelkie pomysły i sugestie z góry dziękuje i pozdrawiam
Poprawiłem tytuł.
[zumek]