Witam !
Jako, że nie jestem jeszcze "orłem" w pisaniu softu w C na avr'y mam do Was pytanie i prośbę za razem...
Napisałem sofcik który załącza silnik mieszadła do pieca w momencie gdy temperatura spada poniżej zadanego progu, teraz potrzebuję by wyłączyć ten silnik gdy temp. wzrośnie lub gdy minie określony czas. Ponieważ całość jest banalnie prostym programem bez wodotrysków chciałem do tego użyć pętli while i w jej warunkach sprawdzać czy miną określony czas bądź czujnik górnej temp. zadzałał
Napisałem to tak :
...
While ( !(PIND.1==1)||czas==360)
{ czas++;
delay_ms(250); }
... dalsza część programu wyłączająca silnik ...
Gdzie PIND.1 jest to wejście czujnika temp który normalnie daje 0, gdy się włączy daje sygnał 1 przez 3sec. , natomiast czas to zmienna która ma się zwiększać o jednostkę co 250ms co daje 90s czasu . W związku z tym, że czujnik daje sygnał dość długo nie potrzebuję tu przerawań - wystarczy że raz na 250ms pętla sprawdzi warunek czy nie został włączony ...
Niestey nie działa mi to wcale - przypuszczam że wina leży po stronie mojej "niewiedzy" co do składni warunków w tej pętli ...
Pomóżcie proszę ...
Jako, że nie jestem jeszcze "orłem" w pisaniu softu w C na avr'y mam do Was pytanie i prośbę za razem...
Napisałem sofcik który załącza silnik mieszadła do pieca w momencie gdy temperatura spada poniżej zadanego progu, teraz potrzebuję by wyłączyć ten silnik gdy temp. wzrośnie lub gdy minie określony czas. Ponieważ całość jest banalnie prostym programem bez wodotrysków chciałem do tego użyć pętli while i w jej warunkach sprawdzać czy miną określony czas bądź czujnik górnej temp. zadzałał
Napisałem to tak :
...
While ( !(PIND.1==1)||czas==360)
{ czas++;
delay_ms(250); }
... dalsza część programu wyłączająca silnik ...
Gdzie PIND.1 jest to wejście czujnika temp który normalnie daje 0, gdy się włączy daje sygnał 1 przez 3sec. , natomiast czas to zmienna która ma się zwiększać o jednostkę co 250ms co daje 90s czasu . W związku z tym, że czujnik daje sygnał dość długo nie potrzebuję tu przerawań - wystarczy że raz na 250ms pętla sprawdzi warunek czy nie został włączony ...
Niestey nie działa mi to wcale - przypuszczam że wina leży po stronie mojej "niewiedzy" co do składni warunków w tej pętli ...
Pomóżcie proszę ...