Witam wszystkich, to mój pierwszy post na forum
Od niedawna bawię się w programowanie AVRów. Zaprogramawałam na Atmedze16 coś w rodzaju programowanego termometru, tzn. aktualna temperatura jest mierzona przez czujnik DS18B20, porównywana z zaprogramowaną wartością, i jeśli zajdzie odpowiednia zależność (większa/mniejsza z dokładnością co do szerokości histerezy), to uaktywni się jedno z wyjść uP.
Procedurę programowania temperatury progowej realizuję poprzez wywołanie zewnętrznego przerwania po naciśnięciu przycisku. Zaprogramowana wartość zmienia zmienną globalną "alarm".
Początkowo do opuszczenia przerwania używałam funkcji reti, ale za każdym razem po wyjściu do programu głównego zmienna alarm się resetowała. Zmieniłam więc reti na cli i ... wszystko działa.
Trochę tego nie rozumiem, przecież cli to globalne wyłączenie przerwań?
Dziękuję z góry za odpowiedzi i pozdrawiam.
Ania
Od niedawna bawię się w programowanie AVRów. Zaprogramawałam na Atmedze16 coś w rodzaju programowanego termometru, tzn. aktualna temperatura jest mierzona przez czujnik DS18B20, porównywana z zaprogramowaną wartością, i jeśli zajdzie odpowiednia zależność (większa/mniejsza z dokładnością co do szerokości histerezy), to uaktywni się jedno z wyjść uP.
Procedurę programowania temperatury progowej realizuję poprzez wywołanie zewnętrznego przerwania po naciśnięciu przycisku. Zaprogramowana wartość zmienia zmienną globalną "alarm".
Początkowo do opuszczenia przerwania używałam funkcji reti, ale za każdym razem po wyjściu do programu głównego zmienna alarm się resetowała. Zmieniłam więc reti na cli i ... wszystko działa.
Trochę tego nie rozumiem, przecież cli to globalne wyłączenie przerwań?
Dziękuję z góry za odpowiedzi i pozdrawiam.
Ania
