Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega32][c]zegar sterujący definicje funkcji

margas4542 16 Mar 2011 20:40 1778 11
  • #1 16 Mar 2011 20:40
    margas4542
    Poziom 16  

    Witam.Nie potrafię w prosty sposób zdefiniować funkcji zegara sterującego czterema obwodami załączanymi lub wyłączanymi o określonym ustawionym czasie. Próbowałem zastosować kilka przykładów definicji funkcji z książek,sam tworzyłem jakieś karkołomne definicje ale wszystko niestety przekracza możliwości atmegi32 bo kod po prostu się w niej nie mieścił.Ten wycinek kodu to jeden ekran wyświetlacza 4x20 na którym chciałbym ustawiać potrzebne wartości.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 11
  • #2 17 Mar 2011 00:30
    Dr. Kuj
    Poziom 13  

    A tak po polsku to co chcesz zrobić?

    0
  • #3 17 Mar 2011 16:04
    margas4542
    Poziom 16  

    Mam cztery obwody gniazdek które chciałbym niezależnie włączać lub wyłączać o określonym czasie [tryb automatyczny] lub sterować nimi ręcznie w razie potrzeby [tryb manualny] oraz mieć możliwość w trybie automatycznym odroczenia zadziałania o max 6 godzin czyli ja załączony to odroczone wyłączenie np; o 3 godziny i na odwrót tylko po to by za każdym razem nie przestawiać czasu nastaw zegara sterującego jeżeli chcę by dane urządzenie miało napięcie w gniazdku trochę dłużej.Czas bieżący otrzymuje z PCF8583 w którym zapisane są również zaprogramowane czasy nastaw zegara sterującego.

    0
  • #4 17 Mar 2011 20:43
    Dr. Kuj
    Poziom 13  

    Nadal nie kumam. widze że chcesz mieć lcd ale do tego jakaś klawiatura czy wszystko pobierane z tego PCF i 4 przyciski do całości?

    Ja bym zegar zaimplementował w uC i dał do tego jakieś podtrzymywanie - łatwiej będzie.
    Najlepiej rozpisz wszystko w postaci algorytmu i wrzuć tutaj.

    0
  • #5 17 Mar 2011 20:52
    nsvinc
    Poziom 35  

    Po pierwsze, każde z urządzeń potraktuj jako oddzielną "strukturę". Napisz jeden silnik, do ktorego będziesz podawał wskaznik na taką strukturę. W skrócie:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    piszesz funkcję typu
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Chybaze chodzi ci o scheduler, ktory będzie wykonywał sekwencję zdarzeń według zaprogramowanych wpisów, a akcję danego wpisu będzie można odroczyć o x sekund/minut/godzin? To wtedy trzeba do tego podejść trochę inaczej...

    0
  • #6 18 Mar 2011 09:27
    margas4542
    Poziom 16  

    Klawiszy jest pięć - kod wkleiłem bez ich obsługi ale to szczegół. menu zorganizowałem tak że dana linia wyświetlacza odpowiada odpowiada umieszczonemu obok LCD klawiszowi oczywiście w większych pionowych odstępach a nad nimi jest klawisz pierwszy mający spełniać funkcję zatwierdź/zapisz. próbowałem już zastosować strukturę na podstawie książki pana Mirosława Kardasia ale kompilator się ze mną droczy twierdząc że definicja struktury jest nieprawidłowa ?...może kod całego menu przybliży nieco moja koncepcję być może wymagającą korekcji.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #7 19 Mar 2011 17:10
    margas4542
    Poziom 16  

    Korzystając z książki i idąc za sugestią ukroiłem taki kawałek kodu ale kompilator aż się czerwieni ze złości a ja nie wiem o co mu chodzi...proszę wytłumaczcie mi co jest źle..

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #8 19 Mar 2011 18:12
    nsvinc
    Poziom 35  

    to jest programistyczny koszmar :]

    Strukturkę napisałeś niczego sobie, ale...

    - co to jest za unia? Po co ci ona? Jeśli będziesz chciał np. zapisywać ją do pamięci nieulotnej bajt po bajcie, to chyba lepiej zrzutować konkretny element na wsk na bajt

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Co robi ten kod?
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Moze lepiej napisz jeszcze raz powoli, i spokojnie, co chcesz osiągnąć. Kod, który napisałeś, no cóż...coś w nim nie tak...

    0
  • #9 19 Mar 2011 21:32
    margas4542
    Poziom 16  

    Książkowy przykład jedynie ze zmienionymi nazwami zmiennych...jeżeli w książkach są błędy to wybaczcie że nie wiem jak napisać ten program ... że zaczyna mnie doprowadzać do szału bo co napisze kawałek kodu to utykam w jakimś miejscu i zaczynam od nowa ... że już kilka razy przebudowywałem całe menu aby było proste co chyba osiągnąłem ale teraz z kolei borykam się z definicjami , zależnościami i na dodatek książkowymi błędami...

    0
  • #10 20 Mar 2011 16:58
    margas4542
    Poziom 16  

    Czy ktoś potrafi zrobić z tego kodu użyteczny program ? ? ? .... zaczynam się zastanawiać czy nie zlecić jego napisania ale nie mam pojęcia ile taka usługa może kosztować. Dla zorientowania się o co mi chodzi wklejam cały kod którego część funkcjonuje.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #11 21 Mar 2011 00:31
    asembler
    Poziom 32  

    W asemblerze to proste jak drut. Jedna funkcje sprawdzająca wywoływana wielokrotnie za kazdym razem tylko z innym offsetem wskazującym na dane.
    A tych "gniazdek" moze byc tyle na ile wystarczy pamieci.
    A tu jakiś koszmar i jak on jest ksiązkowy to pól biedy a że ty chcesz go przerobić na swoją modłe to moje gratulacje. Ja bym wczesniej skonczyl swój program i to w ASM nic rozgryzł co inny poeta mial na myśli.
    Bujasz sie z tym 4 dni a jakbys zaczał od początku sam kombinowac moze by to zajęło wiecej skoro nie umiesz programować ale przy okazji nauczyłbys sie włąsnie programowania. A jak umiesz programować to nei zajęłoby cie to nawet dwóch dni. NA elektrodzie to jakaś istna mania podbierania cudzych programów.

    0
  • #12 21 Mar 2011 16:16
    margas4542
    Poziom 16  

    W kwestii wyjaśnienia obsługa TWI i LCD to ogólnie dostępne procedury kod obsługi przetwornika ADC otrzymałem od jednego z użytkowników Elektrody gdy miałem z nim kłopoty reszta to moje kombinacje i kawałki kodu zaczerpnięte z książek a nie zerżnięte od innego użytkownika Elektrody. Nie mam doświadczenia i przyznaję że nie potrafię zastosować większości definicji dostępnych w C ale jak spojrzeć na inne napisane programy to każdy pisze inaczej , każdy definiuje inaczej co wynika z faktu że są mniej lub bardziej zaawansowani w programowaniu. Nie pisze programu dla kogoś i nigdy pisał nie będę...jestem w programowaniu wróblem i raczej kanarkiem się nie stanę i prawdopodobnie jak uporam się tym który usiłuję napisać to odłożę temat programowanie AVR-ów na półkę.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo