Czołem!
Chciałem napisać własną funkcję delay_ms w oparciu o timer procesora Atmega168. Namęczyłem się z tym strasznie, aż w koncu wziąłem gotowca - trochę przerobiłem - i dochodzę do takich wniosków, że
Ten kod nie działa(nie wiem czemu) - próbuje w nim mrygać diodą przypięta do portu B za pomocą odczekiwania 10[jednostek czasu] poprzez wywołanie funkcji wait.
Natomiast jeżeli zamiast używać mojej funkcji wait(), zmienimy stanu portu B w przerwaniu to poniższy kod działa.
Timer0 w obydwu przypadkach służy do wygenerowania przerwania przy porównaniu z rejestrem OCR0A. Przerwanie te zwiększa o jeden zmienna count, na podstawie której chciałem stworzyć moją funkcję wait().
Ktoś wie w czym jest haczyk?
Chciałem napisać własną funkcję delay_ms w oparciu o timer procesora Atmega168. Namęczyłem się z tym strasznie, aż w koncu wziąłem gotowca - trochę przerobiłem - i dochodzę do takich wniosków, że
Ten kod nie działa(nie wiem czemu) - próbuje w nim mrygać diodą przypięta do portu B za pomocą odczekiwania 10[jednostek czasu] poprzez wywołanie funkcji wait.
Kod: C / C++
Natomiast jeżeli zamiast używać mojej funkcji wait(), zmienimy stanu portu B w przerwaniu to poniższy kod działa.
Kod: C / C++
Timer0 w obydwu przypadkach służy do wygenerowania przerwania przy porównaniu z rejestrem OCR0A. Przerwanie te zwiększa o jeden zmienna count, na podstawie której chciałem stworzyć moją funkcję wait().
Ktoś wie w czym jest haczyk?