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.

Atmega32 - Za mało timer'ów

maximus22_kr 18 Gru 2014 10:50 552 4
  • #1 18 Gru 2014 10:50
    maximus22_kr
    Poziom 18  

    Witam
    Mam układ na Atmega32, który mierzy kilka parametrów ( temperatury, wilgotność, ciśnienie ) i zapisuje na karcie SD.

    Timer0 wykorzystuje do włączania flag
    Timer1 w trybie PWM do sterowania jasnością, na podstawie wartości odczytanej z czujnika światła
    Timer2 jest potrzebny do zapisu na karcie SD

    Chciałem uruchomić odbiór RC5 ( odbiornik jest na płytce ), ale do tego też jest potrzebny Timer.

    Chciałem zapytać, czy jeśli nie będę jednocześnie zapisywał i używał pilota, jest szansa, że to będzie działać ?
    Drugie wyjście to zrezygnować z PWM wyświetlacza, albo wykorzystać układ PCF8591, a właściwie jego wyjście.

    0 4
  • #2 18 Gru 2014 10:54
    mickpr
    Poziom 39  

    maximus22_kr napisał:
    Timer2 jest potrzebny do zapisu na karcie SD
    Do czego konkretnie?

    0
  • #3 18 Gru 2014 10:55
    vonar
    Poziom 28  

    Połącz funkcje wykonywane przez liczniki 0 i 1, zwalniając w ten sposób jeden z nich.

    0
  • #4 18 Gru 2014 11:07
    maximus22_kr
    Poziom 18  

    mickpr napisał:
    maximus22_kr napisał:
    Timer2 jest potrzebny do zapisu na karcie SD
    Do czego konkretnie?


    w tym wątku Link
    Kolega piotrva wyjaśnił mi to tak:

    Cytat:
    Aaaa, obsługa karty SD na AVR-DOS - jak wiadomo do poprawnej pracy ten system wymaga (niestety) skonfigurowanego programowego zegarka, który korzysta z trybu asynchronicznego timera2 - stąd zapewne biblioteka robi coś z tym zegarkiem lub sama nie działa poprawnie, gdyż nie konfigurujesz nigdy tego zegarka. A skonfigurowanie ręcznie tego timera w innym trybie może powodować zawieszanie się biblioteki.


    Dodano po 4 [minuty]:

    vonar napisał:
    Połącz funkcje wykonywane przez liczniki 0 i 1, zwalniając w ten sposób jeden z nich.


    Czy Kolega ma na myśli szybką zmianę stanu portu sterującego LCD, stan zmieniałby się po przepełnieniu Timer'a, coś w stylu programowego PWM ?

    0
  • #5 18 Gru 2014 11:13
    mickpr
    Poziom 39  

    maximus22_kr napisał:
    w tym wątku
    Bascom... i nie mam więcej pytań.
    Przejdź na normalny język (C/C++), bo to Bascom i biblioteka cię ogranicza, a nie Atmega.
    BTW: Nie raz robiłem zapis na karcie SD w Atmega bez żadnego timera (daty plików nie były dla mnie istotne).
    maximus22_kr napisał:
    Czy Kolega ma na myśli szybką zmianę stanu portu sterującego LCD, stan zmieniałby się po przepełnieniu Timer'a, coś w stylu programowego PWM ?
    Koledze raczej chodzi, abyś zaimplementował sobie prostą maszynę stanów, która pozwoli ci użyć jednego timera do wielu zadań.

    0
  Szukaj w 5mln produktów