Witam, zaczynam "zabawę" z uC i programowaniem.
Na pierwszy strzał chciałem zrobić prosty (tak na początku mi się wydawało) sterownik. Planowane opcje to: zegarek, termometr i obsługa 2-6 wyjść 230V. Wszystko chciałem stworzyć na atmedze8 ewentualnie 16.
Założenia:
- LCD na którym będą informacje prawdopodobnie będzie 4x20
- czas + ewentualnie data
- 2 temperatury
- stan 2-6 wyjść.
Aktualnie posiadam zbudowany mały układ na stykówce: atmega8, 2 switche, 2 diody LED, LCD 2x16 i 1x ds18b20. Na LCD są informacje: LED1 ON/OFF, LED2 ON/OFF + temperatura.
Pierwszy problem zaczyna się na obsłudze przycisków. Program główny wygląda tak:
Prosty i przejrzysty. W pętli odczyt temp i 2 przyciski. I tu jest pierwszy mały problem. Odczyt trwa te 500ms, nie wiele ale gdy się przyciśnie przycisk to nie zawsze zareaguje, trzeba przytrzymać go dłużej żeby zmienić stan na wyjściu.
Myślałem o przerwaniach. Ale przerwania obsługują tylko 2 porty INT0 i INT1. Z tego wychodzą 2 opcje: 1 przycisk do wywołania przerwań i wtedy obsługa wyjść itd. Lub tylko 2 przyciski działające przy przerwaniach.
Jak najlepiej rozwiązać kwestie przycisków działających natychmiastowo ? A wiem że ich będzie więcej.
Jak to jest w przypadku obsługi klawiatur typu 3x3/3x4/4x4.
Urządzenie ma działać jako "sterownik pokoju" - zegarek, temp w pokoju i na dworze i sterowanie kilkoma urządzeniami na 230V typu lampa, wentylator itd.
Na pierwszy strzał chciałem zrobić prosty (tak na początku mi się wydawało) sterownik. Planowane opcje to: zegarek, termometr i obsługa 2-6 wyjść 230V. Wszystko chciałem stworzyć na atmedze8 ewentualnie 16.
Założenia:
- LCD na którym będą informacje prawdopodobnie będzie 4x20
- czas + ewentualnie data
- 2 temperatury
- stan 2-6 wyjść.
Aktualnie posiadam zbudowany mały układ na stykówce: atmega8, 2 switche, 2 diody LED, LCD 2x16 i 1x ds18b20. Na LCD są informacje: LED1 ON/OFF, LED2 ON/OFF + temperatura.
Pierwszy problem zaczyna się na obsłudze przycisków. Program główny wygląda tak:
Kod: text
Prosty i przejrzysty. W pętli odczyt temp i 2 przyciski. I tu jest pierwszy mały problem. Odczyt trwa te 500ms, nie wiele ale gdy się przyciśnie przycisk to nie zawsze zareaguje, trzeba przytrzymać go dłużej żeby zmienić stan na wyjściu.
Myślałem o przerwaniach. Ale przerwania obsługują tylko 2 porty INT0 i INT1. Z tego wychodzą 2 opcje: 1 przycisk do wywołania przerwań i wtedy obsługa wyjść itd. Lub tylko 2 przyciski działające przy przerwaniach.
Jak najlepiej rozwiązać kwestie przycisków działających natychmiastowo ? A wiem że ich będzie więcej.
Jak to jest w przypadku obsługi klawiatur typu 3x3/3x4/4x4.
Urządzenie ma działać jako "sterownik pokoju" - zegarek, temp w pokoju i na dworze i sterowanie kilkoma urządzeniami na 230V typu lampa, wentylator itd.