Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterowanie LCD, ilość zużytej pamięci

24 Maj 2010 00:59 1122 7
  • Poziom 20  
    LED5W napisał:
    PO. napisał:
    Przy zegarze ~20MHz spokojnie się wyrobisz.
    Ja to liczyłem, ale mi nie wyszło (patrz wyżej) - proszę mnie oświecić.



    Wybacz, pomyliłem czętotliwość wywoływania z częstotliwością pwm ;) . Ale czy pwm musi być taki szybki dla wentylatorów?

    Dodano po 9 [minuty]:

    utak3r napisał:
    PO. napisał:
    Wybacz ale mniejszych niż a8/a88 to mogę używać do migania jedną diodką albo sterowania jakimś jedym odbiornikiem, z parametrami zadawanymi przez drugiego procka (i2c/uart/1w).
    Może docelowo program mi strasznie nie puchnie nawet przy dużym kodzie ale też poniżej 8kB nie ma co zaczynać jak chcemy mieć lcd i kilka funkcji, jakieś opcje z zewnątrz itp a nie jeden napis.


    No to żeś mnie rozbawił do łez teraz :D
    Jakoś w 2kB potrafię zmieścić obsługę kilku peryferiów (tak, LCD też) i szybką transmisję przez RS. O czym Ty mówisz, człowieku....


    No dobra, a dużo na tym wyświetlaczu robisz? Zarzuć jakiś przykładowy opis projektu, żeby nie było niejasności. Co robi, jakie komunikaty, jakie opcje itd... Może link jak jest na elce.

    Ja lubię jak urządzenie jest przyjazne użytkownikowi - to też kosztuje pamięć. No i lubię mieć zapas na rozwijanie projektu. Koszt 4zł za a8, więc nie ma z czego już urywać do projektu - jeśli nie liczy się miejsce fizyczne przy montażu.

    Niedawno się bawiłem takim zmodyfikowanym timero-zegarem z kilkoma opcjami, było ~4kB. Trochę dorzuciłem, kilka opcji, kilka wypasów, nie chcę zdradzać szczegółów ale rozrosło się nagle do 12kB i nie widzę w tym nic dziwnego :) .
    Wiem co tyle kosztowało i się na to godzę.

    Przepraszam za offtop ale musimy to doprecyzować :) .
  • Poziom 25  
    To może moderator wydzieli to do jakiegoś nowego wątku?

    PO. napisał:
    No dobra, a dużo na tym wyświetlaczu robisz? Zarzuć jakiś przykładowy opis projektu, żeby nie było niejasności. Co robi, jakie komunikaty, jakie opcje itd... Może link jak jest na elce.


    Zestaw ok. 30 komend, do obsługi wyświetlacza, 3 wyjść, 2 wejść i ds18b20. Linku na razie nie ma, będzie, jak zrobię ostateczną płytkę (już 3 wersje były - ale wciąż coś dodaję).

    PO. napisał:

    No i lubię mieć zapas na rozwijanie projektu. Koszt 4zł za a8, więc nie ma z czego już urywać do projektu - jeśli nie liczy się miejsce fizyczne przy montażu.


    Zapas - dobra rzecz... tutaj co prawda pinów już nie mam (bo tylko 18 ich było - a tutaj akurat miejsce miało znaczenie), ale w kodzie...

    Code:

    Used ROM (program words): 974 (48%)  Free ROM (program words): 1074 (52%)
    Used RAM (bytes): 93 (45%)  Free RAM (bytes): 115 (55%)


    PO. napisał:

    Niedawno się bawiłem takim zmodyfikowanym timero-zegarem z kilkoma opcjami, było ~4kB. Trochę dorzuciłem, kilka opcji, kilka wypasów, nie chcę zdradzać szczegółów ale rozrosło się nagle do 12kB i nie widzę w tym nic dziwnego :) .


    A że tak zapytam... w czym piszesz kod?

    Reasumując: oczywiście, że jeśli taka możliwość jest, warto mieć zapas - no ale stwierdzenie, że 8kB to za mało... w 8kB to ja bym Ci grę całą napisał :P
  • Poziom 20  
    Piszę w c.

    Tak się zastanawiam, bo z jednej strony sporo zmieściłeś a z drugiej przy oszczędnym korzystaniu...
    Chyba się domyślam co może u mnie powodować niewielki narzut kodu ale nie zmaleje on raczej gwałtownie. Na start się traci i na dodawanie nowych opcji też.

    PS: a wydzielić by można jako temat o optymalizowaniu albo coś ;) .
  • Poziom 25  
    Raz musiałem mocno kombinować, żeby zmieścić się - skończyło się na tym, że zostało mi całe 21 słów kodu wolne ;) Było tam sporo obliczeń - mnożenia, dzielenia itp. na 4-bajtowych liczbach. Do tego obsługa graficznego LCD (czyli definicja czcionek). Ale po 2 dniach walki zmieściłem się w tych 2kB :)

    Oczywiście, wszystko się zmienia, gdy dorzucimy np. USB, czy, nie daj Boże, Ethernet... tam stos zajmuje 4kB ;)
  • Poziom 20  
    No dobra, a w czym Ty piszesz?
    Sam komplet czcionek więcej zajmie jeśli są wszystkie małe i wielkie litery. Plus obsługa do tego. Jak je definiujesz?
    Liczby 4bajtowe dokompilowują sobie jakieś ~0,5kB kodu jeśli zaczynasz ich używać w c zamiast mniejszych.
    Chętnie bym zobaczył Twoje biblioteki, te oszczędne - zastanawiam się co stosujesz czego nie wiem, że Ci wychodzi tak niewiarygodnie mało.
  • Poziom 25  
    Również C (akurat mikroC - dla AVRów też jest).
    Co do czcionek (choć to akurat ten drugi projekt, który mi się ledwo zmieścił) - i duże i małe, dodatkowo możliwość wyświetlenia w dwóch rozmiarach - ale to już programowo obsłużone. Akurat tę bibliotekę możesz znaleźć tutaj.

    W rzeczonym jednak projekcie, akurat obsługuję HD44780, więc ten problem odpada. Przy wyświetlaczu graficznym byłoby rzeczywiście pewnie około 1kB więcej w sumie - ale i wtedy by się zmieściło w 2kB :)

    Co do kodu.. no kurczę - nie jest jakiś specjalnie wyrafinowany. Tylko w dwóch miejscach musiałem użyć króciutkiej wstawki asemblerowej, ten kawałek kodu również jest dostępny tutaj.
  • Poziom 20  
    mirekk36 napisał:
    PO. napisał:

    Wybacz ale mniejszych niż a8/a88 to mogę używać do migania jedną diodką albo sterowania jakimś jedym odbiornikiem, z parametrami zadawanymi przez drugiego procka (i2c/uart/1w).
    Może docelowo program mi strasznie nie puchnie nawet przy dużym kodzie ale też poniżej 8kB nie ma co zaczynać jak chcemy mieć lcd i kilka funkcji, jakieś opcje z zewnątrz itp a nie jeden napis. ...


    Ooooooo Matko! Masz rację , nie ma co zaczynać na mniejszym procku niż 16Kb Flash jeśli się programuje tylko w Bascomie i to jeszcze bardzo nieudolnie.

    Człowieku na ATtiny13 !!! można mieć obsługę LCD, pomiar napięcia, sterowanie PWM i wiele różnych funkcji. Wcale nie trzeba się gimnastykować. Co więcej nawet w twoim Bascomie ;) ..... tylko jednak "troszkę" przez duże "T" trzeba poćwiczyć programowanie.


    Nie no, kawał dyskusji już się odbył, mod wywalił, a tu się znowu zaczyna...
    Nie dotykam bascoma.
    Ceny się co prawda zepsuły ale jeszcze niedawno a8 była poniżej 4zł więc nie było się co ograniczać, a zapas jest przydatny.

    Pomiar rpm akurat wydaje mi się banalną sprawą, podłączasz wiatrak pod przerwanie i zliczasz czas między przerwaniami.
  • Poziom 20  
    Niezależnie, widziałbym tu PCINT :) .

    A co do mojego kodu to z jednej strony wiem gdzie odchudzić tylko nie wiem jak, ale mam narzut ze wzrostem zegara :( .
    A z drugiej piszę jak piszę, lubię mieć dużo prostych funkcji, może mam jeszcze jakieś złe nawyki o których nie wiem. Na pewno mam tak, że na starcie program "rośnie" a potem przestaje i trzyma wielkość przy dopisywaniy opcji ;) .
    PS: tamta dyskusja zostala skasowana czy gdzieś przeniesiona? Nie mam żadnych info gdzie a widzę że jest chęć pociągnięcia :P .