Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega 328p Programowanie buzzera

Rzeczo 07 Kwi 2017 15:58 753 3
  • #1 07 Kwi 2017 15:58
    Rzeczo
    Poziom 3  

    Witam,
    Jakiś czas temu zacząłem bawić się mikrokontrolerami. Stworzyłem prosty minutnik na płytce stykowej polegający na ustawionych w linii sześciu diod LED (+2 dodatkowe), które zapalają się po kolei w 10-cio sekundowych odstępach.
    Napisałem prosty kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Do tego układu mam podpięty buzzer. Chciałbym aby podczas odliczania wydawał dźwięk co sekundę, ale nie mam pomysłu jak go zaprogramować. W związku z tym zwracam się ku bardziej doświadczonym osobom.

    0 3
  • #3 07 Kwi 2017 18:13
    Rzeczo
    Poziom 3  

    Znalazłem rozwiązanie - wstawiłem multum opóźnień po 500ms wraz z funkcjami. Może trochę głupie ale działa.

    0
  • #4 07 Kwi 2017 18:16
    tmf
    Moderator Mikrokontrolery Projektowanie

    @Rzeczo Dobra rada - zapomnij, że istnieją funkcje delay. Zaprogramuj timer, tak, aby co sekundę wywoływał przerwanie. W funkcji jego obsługi zapalasz kolejne diody - robisz przesunięcie bitów z wsuwaniem jedynki. Przy okazji możesz sobie włączyć buzzer, a wyłączysz go w przerwnaiu compare timera, po upływie pożądanego czasu. Zaletą teog rozwiązania jest to, że jest łatwo skalowalne i procesor nie jest w 100% zajęty, tak jak w twoim kodzie.

    0