logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega 8, C - Odmierzanie długości trwania sygnału.

sniper_vip 03 Paź 2015 23:15 780 2
REKLAMA
  • #1 15040603
    sniper_vip
    Poziom 9  
    Witam

    Panowie, potrzebuję oświecenia. Chcę zrobić system na atmega8, który na bazie pomiaru rezystancji będzie sterował diodą led, która to będzie świeciła się przez 2, 4, 6 sekund z możliwością wydłużenia tego czasu do kilkudziesięciu sekund i przerw kilkugodzinnych między cyklami.

    Korzystam z trybu CTC i w nieskończonej pętli, za każdym razem kiedy timer CTC ustawi flagę, dodaję 1 sekundę do zmiennej x.

    Problem w tym, że nie bardzo wiem jak teraz mając x podtrzymywać włączoną diodę przez 2 sekundy.

    Zrobiłem pętle for z dodatkową zmienną zliczającą iteracje pętli, problem w tym, że pętla wykonuje się bardzo szybko i nie bardzo wiem jak ją mądrze zwolnić bo nie chcę stosować _delay_ms.

    Poniżej wklejam kod:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 15040734
    zagwizdow
    Poziom 17  
    Mozesz zrobić dodatkową zmienna w if-ach ustawianą na wartość w sekunach i dekrementowaną razem z x++ , gdy nie jest zerowa to włączasz diode a po dojsciu do zera dajesz opoznienie pomiedzy świeceniem po którym robisz nowy pomiar. Gdy ma być podtrzymywane to nie blokujesz pomiarów.


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #3 15041035
    Konto nie istnieje
    Poziom 1  
REKLAMA