Witam!
Sprzęt:
- ATmega16 (PDIP40), taktowanie - wewnętrzny oscylator 8MHz
- cyfrowy termometr na magistrali 1-Wire DS18B20 (narazie jeden, później 3 ) podłączony 3-przewodowo,
- LCD 2x16 na sterowniku HD44780,
Soft:
- WinAVR (avr-gcc 3.4.3).
Zaznaczam, że w tej dziedzinie jestem raczkujący - parę lat już się za to zabieram. Chciał bym zbudować na początek jednopunktowy termometr, później trójpunktowy termometr z prezentacją temperatury na LCD (pomiar co około 10s , z rozdzielczością 0,1*C).
Proszę o poradę jak zorganizować program odczytujący temperaturę z DS18B20 i wyświetlający ją na LCD: co umieścić w programie głównym, co w przerwaniu, którego licznika użyć i w jakim trybie do wywoływania obsługi przerwania od odczytu? Czy wyświetlanie też robić w przerwaniu? Gdzie w programie ustawiać / kasować kluczowe bity? O czym nie zapomnieć, żeby to mogło działać?
Czyli nie pytam o gotowy kod tylko jak zabrać się za jego składanie, żeby zrobić to dobrze, możliwie optymalnie czyli zgodnie ze sztuką?
Zresztą gotowego kodu bez powyższej wiedzy i tak nie ogarnę, a od czegoś trzeba zacząć...
Sprzęt:
- ATmega16 (PDIP40), taktowanie - wewnętrzny oscylator 8MHz
- cyfrowy termometr na magistrali 1-Wire DS18B20 (narazie jeden, później 3 ) podłączony 3-przewodowo,
- LCD 2x16 na sterowniku HD44780,
Soft:
- WinAVR (avr-gcc 3.4.3).
Zaznaczam, że w tej dziedzinie jestem raczkujący - parę lat już się za to zabieram. Chciał bym zbudować na początek jednopunktowy termometr, później trójpunktowy termometr z prezentacją temperatury na LCD (pomiar co około 10s , z rozdzielczością 0,1*C).
Proszę o poradę jak zorganizować program odczytujący temperaturę z DS18B20 i wyświetlający ją na LCD: co umieścić w programie głównym, co w przerwaniu, którego licznika użyć i w jakim trybie do wywoływania obsługi przerwania od odczytu? Czy wyświetlanie też robić w przerwaniu? Gdzie w programie ustawiać / kasować kluczowe bity? O czym nie zapomnieć, żeby to mogło działać?
Czyli nie pytam o gotowy kod tylko jak zabrać się za jego składanie, żeby zrobić to dobrze, możliwie optymalnie czyli zgodnie ze sztuką?
Zresztą gotowego kodu bez powyższej wiedzy i tak nie ogarnę, a od czegoś trzeba zacząć...