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

[Atmega8][WinAVR]Powersave i zapis pliku w pamieci Atmegi

top840 09 Sty 2012 16:38 1361 6
REKLAMA
  • #1 10372339
    top840
    Poziom 2  
    Witam, zrobiłem projekt w którym w dwóch niewielkich domkach steruję ogrzewaniem. Program na PC napisany jest w C# a program Atmegi w winAVR w (języku C). Przy połączeniu przez port szeregowy z komputerem, uzyskałem możliwość sterowania ogrzewaniem niezależnie w każdym z pomieszczeń. Również logi z temperaturami zapisują mi się na dysku C. Chciałbym jednak aby logi z temperaturami zapisywały się w pamięci Atmegi (tak z 50 ostatnich odczytów) a odczyt i ewentualne wyrówanianie temperatury odbywało się co 5 minut (podczas wybudzania z powersave), chodzi o zmniejszony pobór mocy. Teraz wygląda to tak, że po podłączeniu przez port szeregowy komputer wysyła ramkę z zadana temperaturą w pomieszczeniu 1 i 2, a Atmega odpowiada temperaturą jaka jest aktualnie w tych pomieszczeniach oraz ewentualnie załącza grzałki lub wentylatory i tak cały czas co 2 sekundy. Muszę mieć ciągle połączony mikrokontroler z komputerem, chciałbym aby po zadaniu temperatur w obu pomieszczeniach można było odłączyć wszystko oprócz zasilania, Atmega wchodziła by w powersave sprawdzała czy jest dobra temperatura (czy wymagane jest włączenie ogrzewania lub chłodzenia), zapisywała swój odczyt w swojej pamięci do jakiegoś pliku w razie potrzeby załączała ogrzewanie lub chłodzenie, jeżeli temperatura będzie ok to znowu będzie wchodziła w jakiś tryb oszczędzania energii (np. powersave) i tak co 10 minut. Następnie po połączeniu się przez RSa wysyłałaby mi plik z odczytami. Jak to ugryźć??? Czy do odmierzania czasu da się wykorzystać jakiś timer w Atmedze czy trzeba zastosować jakiś zewnętrzny RTC. Proszę o pomoc, od razu mówię, że jestem na poziomie może troszkę wyższym niż początkujący, ale zależy mi na tym aby to wszystko ogarnąć. W razie potrzeby mogę podesłać plik z moim programem z mikrokontrolera + schemat. Pozdrawiam i z góry dziękuję.
  • REKLAMA
  • #2 10372385
    tmf
    VIP Zasłużony dla elektroda
    Trudno wszystko opisać, bo poruszyłeś na raz sporo problemów.
    Do przechowywania danych w stosunkowo niewielkiej ilości dobrym rozwiązaniem są pamięci FRAM - one nie tracą zawartości po wyłączeniu, a ilość zapisów jest praktycznie dowolna. M8 oczywiście możesz wybudzać z timera, lub RTC, który posiada. Więc żadne elementy typu zewnętrzny RTC nie są potrzebne.
  • REKLAMA
  • #3 10372413
    top840
    Poziom 2  
    O ile w języku C# jeszcze wiem co się dzieje, tak w przypadku Atmegi zaczynają sie schody. W ogóle nie wiem jak się za te kwestie zabrać. Dysponujecie może jakimiś linkami do artykułów w których jest poruszany ten problem?????
  • REKLAMA
  • #4 10372440
    tadzik85
    Poziom 38  
    A google nie działa?. Twój problem jest problemem twoim i indywidualnym.

    Wybudzać procek możesz również Uartem. Na niewielka ilość danych to tak jak tmf powiedział fram lub nawet eeprom..
  • #5 10372646
    tmf
    VIP Zasłużony dla elektroda
    A, czyli chciałbyś się nauczyć programowania w C mikrokontrolerów AVR? No to link masz podany. Jak Tadzik napisał za free masz google. Jednak znając C# nie powinieneś mieć wielkich problemów z przejściem.
  • REKLAMA
  • #6 10372750
    top840
    Poziom 2  
    Zależy mi na tym żeby się z tym uporać jak najszybciej, więc nie koniecznie musi być za free ;).

    Jezeli jest ktos z Krk to chetnie zaplace za pomoc kontakt 888-198-396. Tylko mnie nie zjedzcie.
  • #7 10438031
    top840
    Poziom 2  
    Naprawdę nie ma nikogo z Krakowa???? Please help :/.
REKLAMA