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.

Programator tygodniowy-bascom

Roko 20 Sie 2009 09:54 1499 3
  • #1 20 Sie 2009 09:54
    Roko
    Poziom 10  

    Witam.
    Napisałem oprogramowanie sterownika na Atmega32 w którym niędzy innymi chciałem mieć tygodniowy godzinowo-temperaturowy programator.
    Założenia:
    4 cykle dobowe np.: M1,M2,M3,M4 z temperaturą.
    Cykle oraz temperatury są zapisane w EEprom.
    Przykład dla M1:
    Adres 10 - M1gz (godzina zezwolenia załączenia)
    Adres 11 - M1mz (minuta zezwolenia załączenia)
    Adres 12 - M1gw (godzina wyłączenia)
    Adres 13 - M1mw(minuta wyłączenia)
    Adres 14 - Wartość temperatury (mniejsza-załącz, większa-wyłącz)
    Analogicznie dla M2,M3,M4 pod następnymi adresami czyli :
    M1- adresy 10-14
    M2- adresy 15-20
    M3- adresy 21-25
    M4- adresy 26-30
    Ostatni adres w grupie M to temperatura (14,20,25,30)
    Jest to rozpiska 1 dnia.
    Przyznam, że trochę się zamotałem i niebardzo wiem jak do tego podejść. Troszeczkę to dla mnie za ambitne. Chodzi mi o uzyskanie małej zajętości kodu. Napisałem procedurę na piechotę w której porównywane są dla danego dnia aktualna godzina-minuta oraz temperatura z wartościami w EEprom. Pisania full, błędów i warunków do spełnienia nie pomnę. Myślałem o przepisaniu wartości z EEprom do SRam (tablice), ale nie bardzo mi to wychodziło.
    W związku z powyższym mam pytanie czy pisać to na piechotę porównując akt. godzinę-minutę i temperaturę z wartościami zapisanymi w EEprom, czy użyć do tego celu tablicę (mniej pisania).

    Może ktoś z kolegów pisał coś podobnego i by minie trochę naprowadził.
    Pozdrawiam i dzięki za podpowiedzi.
    Roko.

    0 3
  • #2 05 Wrz 2010 21:56
    krakusj
    Poziom 11  

    Witam. Pracuję właśnie nad czymś podobnym - wł/wył pieca w określonych godz. w cyklu tygodniowym. Jeden, że go tak nazwę rekord składa się z 4 pół: pierwsze to dzień tygodnia (1 lub 2 lub 3 lub.....6 lub 7), drugie pole to godzina, trzecie pole to minuta, czwarte pole to wartość przeliczona binarnie na numer kanału do włączenia (8 kanałów dla liczby 8 bitowej). U mnie tychże rekordów nie będzie dużo - od 2 do 4 dziennie. Planuję tak: wszystkie rekordy zapisane są w eepromie. po uruchomieniu programu następuje przepisanie ich do tablicy i na jej poziomie następuje porównywanie 3 pierwszych pól rekordu (dzień, godz, min) z aktualnym czasem. Po każdym nowym wpisie "rekordzie" następuje przesortowanie całej tablicy i przekopiowanie jej do eepromu. porównywanie polega na pobraniu rekordu i porównywanie go z aktualnym czasem.Rekordy ustawione są rosnąco, co ułatwia trochę pracę układu. Ale czy to dobre rozwiązanie, tego nie wiem. Po "trafieniu" na zgodne wartości następuje ustawienie kanałów zgodnie z bitami czwartego pola i przejście do następnego rekordu wraz z dalszym porównywaniem go z aktualnym czasem. odpada mi tutaj przeszukiwanie całej tablicy i porównywanie jej z aktualnym czasem. Do tego systemu dochodzi jeszcze monitorowanie temperatury, gdzie poniżej określonego progu piec zostanie uruchomiony. Co mi z tego wyjdzie to zobaczymy. Na chwilę obecna skończyłem sortowanie, przechodzę do części wprowadzania danych i ewentualnych ich zmian podczas pracującego już systemu. Wiele rzeczy wychodzi w praniu, więc może się okazać, że sporo się może jeszcze zmienić. Pozdrawiam.

    0
  • #3 06 Wrz 2010 00:00
    Roko
    Poziom 10  

    Witam.
    Mój projekt właściwie upadł. Co prawda jakieś bazgroły w wersji roboczej pozostały. U mnie też oparte to było na tablicy w Eeprom z tym że, ja nie przepisywałem jej całej do Ram tylko odczytywałem według aktualnego dnia tygodnia z RTC (8363). Tablica podzielona była na 7 bloków. W każdym bloku zapisane były: godz_zał, godz_wył, temp po 8 wierszy czyli 8 cykli dobowych.
    Jak wspomniałem projekt upadł, ponieważ klient zaczął tańczyć. W projekcie ujęte były inne bajery : programowany soft start dla grzałek, licznik zużytej energii (ADE7755) i inne pierdoły. Chyba wykorzystana cała ATmega16.
    Pozdrawiam.

    0
  • #4 06 Wrz 2010 09:25
    inventco.eu

    Poziom 29  

    Inventco.eu - wykopaliska zamykam. Proszę zapoznać się z regulaminem.

    0