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

"uŚciąga" - Atmega32, LCD i karta pamięci

dominon 04 Gru 2010 20:05 61927 134
  • "uŚciąga" - Atmega32, LCD i karta pamięci

    Witam.

    Chciałem zaprezentować moją ostatnią, a zarazem pierwszą pokazywaną na elektrodzie konstrukcje. Jest to miniaturowa ściąga. Powstała ona z kilku powodów:
    1. Przetestowania sposobu podłączenia wyświetlacza i karty pamięci do mikro-kontrolera.
    2. Poziomu trudności napisania oprogramowania w Bascom-ie.
    3. Sprawdzenia umiejętności i przygotowania się na inny większy projekt (bo nic nie daje takiego doświadczenia jak praktyka :) ).

    Informacje wstępne:
    Układ jest maksymalnie uproszczony ze względu na rozmiary. Główne elementy użyte do jego wykonania:

    Mikro-kontroler: Atmega32L-8AU
    Wyświetlacz: NOKIA 3100 (sterownik PCF8833)
    Karta pamięci: Micro-SD (testowane: 128MB i 1GB, obie działają bez zarzutu)
    Zasilanie: Akumulator litowo-jonowy 3,7V / 600mAh

    Płytka została zaprojektowana w programie Eagle 5.10 a oprogramowanie napisane w programie Bascom i jest ono nadal rozwijane dlatego na razie nie zamieszczę kodu źródłowego jednak postaram się odpowiedzieć na wszelkie pytania.


    Schemat:

    "uŚciąga" - Atmega32, LCD i karta pamięci

    Opis układu:
    Mikro-kontroler ma aktualnie zapełnione 41% pamięci Flash większość stanowią procedury które tworzą dość prostą oprawę graficzną, jednak z kilkoma miałem spory problem aby zachowywały się tak jak tego chciałem.

    Nawigacja miedzy zegarem a listą z plikami .txt bądź po plikach odbywa się poprzez cztery przyciski umieszczone pod wyświetlaczem. Naciskając na krawędzie wyświetlacza wchodzimy w interakcję z urządzeniem.

    Kolejnym ważnym punktem jest fakt że karta pamięci podłączona jest do hardware-owego SPI co zapewnia szybszą komunikację. Przy odczytywaniu plików tekstowych nie jest to aż tak odczuwalne.

    Układ jest zasilany z akumulatora litowo jonowego 3,7V / 600mAh co wystarcza na ok 24h pracy układu (tu wspomnę że akumulator nie jest nowy pochodzi z iPod-a mini. Ma już ponad 3 lata i jest ładowany z prowizorycznej ładowarki od telefonu komórkowego). Napięcie ogranicza dioda Zenera 3,3V w ten sposób ujednoliciłem większość napięć. Napisałem większość ponieważ podświetlenie wyświetlacza zasilane jest z nieszczęsnych 6-7V tutaj pomogły zmagania kilku innych internautów z podobnym problemem przy uruchomieniu podświetlenia i po zapoznaniu się z wiadomościami z sieci oraz kilku testach "na pająka" powstała bardzo prosta przetwornica wykorzystująca PWM Atmegi.

    Jednym z priorytetów było aby płytka drukowana była nie większa niż wyświetlacz dlatego zostały zastosowane elementy SMD możliwie małe do tego celu (najmniejsze z grupy RLC w obudowach 0603). Całość jeszcze czeka na obudowę ponieważ brakło funduszy które i tak na ten projekt nie były w ogóle planowane. Większość elementów miałem bądź dostałem i tu ogromne podziękowania dla kolegi Palmoster który dobrowolnie użyczył wyświetlacz (wraz z telefonem), kartę pamięci oraz duchowe wsparcie :)

    Na koniec zdjęcia, filmik i pliki do pobrania. W załączniku materiały zgromadzone do projektu, łącznie z bibliotekami do złącza wyświetlacza i złącza micro-SD oraz kilka innych przydatnych.


    Budowa:

    "uŚciąga" - Atmega32, LCD i karta pamięci"uŚciąga" - Atmega32, LCD i karta pamięci
    "uŚciąga" - Atmega32, LCD i karta pamięci"uŚciąga" - Atmega32, LCD i karta pamięci


    Działanie:

    "uŚciąga" - Atmega32, LCD i karta pamięci"uŚciąga" - Atmega32, LCD i karta pamięci
    "uŚciąga" - Atmega32, LCD i karta pamięci"uŚciąga" - Atmega32, LCD i karta pamięci


    Wtyczka programująca została wykonana z "okrojonego" złącza na karty SD (idealnie pasował rozkład pinów z padami. Spinacz ma przewód masowy lub jak kto woli GND).

    "uŚciąga" - Atmega32, LCD i karta pamięci"uŚciąga" - Atmega32, LCD i karta pamięci


    Filmik z działania:

    Link


    Jeśli konstrukcja Ci się spodobała oceń ją i skomentuj. Zapraszam do dzielenia się opiniami.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    dominon
    Poziom 18  
    Offline 
    Specjalizuje się w: elektronika, mikrokontrolery, programowanie
    dominon napisał 301 postów o ocenie 258, pomógł 12 razy. Mieszka w mieście Łódź. Jest z nami od 2008 roku.
  • IGE-XAO
  • #2
    leonow32

    Poziom 30  
    Świetna rzecz :) doskonale zaprojektowane pod względem wymiarów i upchania sporej elektroniki na małej powierzchni. Plus za wciskanie przycisków wyświetlaczem. Bardzo podoba mi się ten projekt, chociaż jego walory użyteczne szczerze mówiąc są wątpliwe ;) ale do nauki programowania i projektowania to jest doskonały.

    Czy wyświetlacz z Nokii 3310 też będzie dobry?
  • #3
    Palmoster
    Poziom 10  
    Bawiłem się tym urządzeniem w "świecie realnym" i muszę przyznać, że robi ogromne wrażenie ;) Czekam tylko na obudowę oraz końcowy software i chce namówić kolegę dominon'a na seryjna produkcję :P


    leonow32 napisał:
    Czy wyświetlacz z Nokii 3310 też będzie dobry?


    Ten pochodzi z 3100 i jest kolorowy. 3310 na innym sterowniku tez możesz ale to już nie ten efekt :P Można się też pokusić o lcd z Siemensa cx65 (lub podobnych).
  • #4
    dominon
    Poziom 18  
    leonow32 napisał:
    Czy wyświetlacz z Nokii 3310 też będzie dobry?


    Wyświetlacz z noki 3310. Tak jak kolega Palmoster napisał jest inny sterownik i jest czarno biały. Złącze też jest inne. Jednak jeżeli chciał byś użyć LCD od 3310 to było dość sporo na elektrodzie o tym jak i na necie razem z bibliotekami więc proponuję poszukać. Trzeba by zmienić złącze na schemacie i płytce. Podłączenie może i nie wiele będzie się różniło.
  • #5
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • IGE-XAO
  • #6
    dominon
    Poziom 18  
    Mictronic napisał:
    Wyswietlacz kolorowy ma chyba ta wade ze musi byc podswietlany by bylo cokolwiek widac, morochromatyczny raczej nie az tak.
    Ja bym spróbował wepchnąć pod wyświetlacz warstwę refleksyjna w formie jakiejś folii odblaskowej dla przykładu oraz zwiększył fonty zegara i ograniczył się do minut.
    Szkoda ze trochę oprogramowanie dość ubogie,można by dodać więcej kolorków :)


    Akurat tak się składa że ten wyświetlacz nie musi być podświetlany jeżeli tło będzie czarne a litery białe to widać całkiem przyzwoicie, oczywiście tylko w dzień. Wyświetlacz posiada specjalny odbłyśnik z tyłu jednak u mnie odkleił się i musiałem go przykleić i niestety już nie daje tak dobrego efektu. Jeżeli tylko nadarzy się okazja to wymienię go. Też myślałem o dużym foncie zegara i na pewno tak będzie w kolejnej wersji softu. Nawet myślałem o wczytywaniu bitmap i w ten sposób zrobić efektowniejsze menu. Jednak na razie rozwój oprogramowania zatrzymał się z braku czasu.

    Pozdrawiam D.P.
  • #7
    naelektryzowany
    Poziom 17  
    Projekt bardzo fajny, szczególnie przez miniaturyzację.
    Jednym mnie zaskoczyłeś, złączem pod lcd od nokii. Jest to złącze wylutowane z telefonu, czy gdzieś zakupione?
  • #8
    wader_669
    Poziom 28  
    Bardzo fajny projekt. Taki sam projekt chcialem wykonac. Juz mialem prototypa z wyswiatlaczem od 3310 i zewnetrznym eepromem. A pozniej ta sama historia jak u Mictronic.
    Jedyna rzecz jaka mi sie nie podoba jest to, ze masz software'owe spi do lcd. Wiem, ze w bascomie nie da sie inaczej, chyba, ze sie obsluge lcd napisze samemu.
    Tak to daje 10/10.
    Jakl ladujesz baterie? i czy to przypadkowo nie jest bateria od ipod mini?
  • #9
    dominon
    Poziom 18  
    naelektryzowany napisał:
    Projekt bardzo fajny, szczególnie przez miniaturyzację.
    Jednym mnie zaskoczyłeś, złączem pod LCD od nokii. Jest to złącze wlutowane z telefonu, czy gdzieś zakupione?


    Złącze jest wlutowane z telefonu. Było to dość trudne ponieważ prawdopodobnie oprócz cyny trzyma je jakaś drobna warstwa kleju trzeba uważać aby nie zniszczyć plastiku. W moim przypadku udało mi się wyciągnąć plastik z większością pinów jednak pozostałe wlutowywałem i wkładałem pojedynczo.

    themichal napisał:
    Rzecz, która nie służy nauce a jednak uczy.
    He dobre


    Rzeczywiście mogę się zgodzić z tą opinią. Chciał bym jednak przedwcześnie zaznaczyć że projekt został zrobiony w celu sprawdzenia poprawności połączeń na zgromadzonych materiałach jednak przez wzgląd że końcowy efekt bardzo mnie zadowolił postanowiłem go zaprezentować.

    wader_669 napisał:
    Jak ładujesz baterie? i czy to przypadkowo nie jest bateria od ipod mini?


    Dziękuję za pozytywną opinię. Gratuluję spostrzegawczości choć wspomniałem o tym w opisie. Rzeczywiście bateria pochodzi z iPod-a mini zostało mi kilka części po naprawach między innymi akumulator. Ze względu że nie mam obudowy odłączam go i używam ładowarki od telefonu z przerobioną wtyczką. Po ukończeniu i zamontowaniu na pewno zrobię odpowiednie wyprowadzenia.
  • #11
    mklos1
    Poziom 25  
    Ciekawa realizacja, acz kontrowersyjna z punktu widzenia przeznaczenia. Jedyne co mi się w nim nie podoba to sposób prowadzenia ścieżek. Zbyt dużo niepotrzebnych segmentów.
  • #12
    Dragas
    Poziom 26  
    Od jakiegoś czasu zamierzam również zrobić taką pomoc naukową, ale nie wiem na co się zdecydować, czy karta pamięci, czy zewnętrzny eeprom z klawiaturą.

    Z ciekawości chciałbym się dowiedzieć, w jakim języku został napisany soft.
  • #13
    mklos1
    Poziom 25  
    Dragas napisał:
    Od jakiegoś czasu zamierzam również zrobić taką pomoc naukową, ale nie wiem na co się zdecydować, czy karta pamięci, czy zewnętrzny eeprom z klawiaturą.


    Karta SD z obsługą systemu plików jest dużo lepszym rozwiązaniem niż EEPROM.
  • #14
    Dragas
    Poziom 26  
    Karta SD jest lepsza, ale nie wiem jak z obsługą plików w C. Dlatego myślałem, że tytułowa "uŚciąga" jest napisana w C, więc autor może by podpowiedział jak czytać pliki.
  • #15
    mklos1
    Poziom 25  
    Jest chyba darmowa biblioteka o nazwie FatFs (język C). Nie wiem tylko jak z kompilacją na AVR'y i łatwością jej uruchomienia. Podejrzewam, że w google znajdą się odpowiednie materiały pomocnicze.
    Link do biblioteki:
    http://code.google.com/p/minini/wiki/FatFs
  • #16
    MasMas
    Poziom 16  
    Witam,

    No projekt całkiem fajnie przemyślany. Gratuluje. Mnie natomiast interesuje sprawa czysto mechaniczna, bo w opisie się nie doszukałem. Jak wyświetlacz jest przymocowany do płytki, że się jej "trzyma" a mimo to można nim naciskać przyciski. Jest jakoś na środku przymocowany czy jak ? Tak pytam, bo to mnie ciekawi ;) I w ogóle fajnie, szkoda tylko, że w bascomie ;P Co to za język w ogóle ;P Nie, no żartuje, ale w C ciekawiej się robi ;)
  • #17
    grala1
    Specjalista grupy V.A.G.
  • #18
    konel83
    Poziom 15  
    Kurcze bardzo ciekawy projekt... Jeszcze pytanie jak z wykrywalnością tej ściągi?? Raczej ciężko na spr. ściągać z czegoś takiego... Mówiłeś o seryjnej produkcji, czy była by opcja żeby kupić taką zabawkę??
  • #19
    dominon
    Poziom 18  
    neo_84 napisał:
    dominon szkoda ze nie umieściłeś listingu programu bo chętnie bym się pouczył obsługi tego wyświetlacza i karty SD i pewnie nie jedna osoba była by wdzięczna ja na pewno ;)


    Chyba mam gdzieś jeszcze kilka programów testowych poszukam ich i postaram się jeszcze dziś umieścić w temacie.

    mklos1 napisał:
    Ciekawa realizacja, acz kontrowersyjna z punktu widzenia przeznaczenia. Jedyne co mi się w nim nie podoba to sposób prowadzenia ścieżek. Zbyt dużo niepotrzebnych segmentów.


    Faktycznie można było narysować to prościej tak więc nie zamieściłem płytki tylko sam schemat z Eagle-a. Jak już wcześniej pisałem głównie kładłem nacisk na sprawdzenie połączeń ze schematu i obsługę LCD oraz karty.

    Dragas napisał:
    Z ciekawości chciałbym się dowiedzieć, w jakim języku został napisany soft.


    Jest w opisie że soft jest pisany w Bascom-ie. Do obsługi wyświetlacza jest gotowa biblioteka. Natomiast do obsługi karty użyłem AVR-DOS'u.

    MasMas napisał:
    Witam,

    No projekt całkiem fajnie przemyślany. Gratuluje. Mnie natomiast interesuje sprawa czysto mechaniczna, bo w opisie się nie doszukałem. Jak wyświetlacz jest przymocowany do płytki, że się jej "trzyma" a mimo to można nim naciskać przyciski. Jest jakoś na środku przymocowany czy jak ? Tak pytam, bo to mnie ciekawi Wink I w ogóle fajnie, szkoda tylko, że w bascomie ;P Co to za język w ogóle ;P Nie, no żartuje, ale w C ciekawiej się robi Wink


    Dziękuję za miłe słowa. Wyświetlacz ma od spodu cienką płytkę z laminatu 0,5mm dzięki której siła nacisku przycisków nie rozkłada się punktowo na wyświetlacz. Początkowo przykleiłem całość na taśmę dwustronną w miejscu styku z przyciskami jednak po ukończeniu obudowy to ona będzie trzymała całość. Wyświetlacz będzie zabezpieczony na rogach aby mógł się poruszać w trakcie wciskania.

    grala1 napisał:
    Czy jest szansa na udostępnienie programu?
    Jak z przeznaczeniem urządzenia - przetestowane?


    Myślę że nie będzie problemu z udostępnieniem skompilowanego hex'a jednak najpierw uporządkuję całość. Ważniejsze części programu dodam jako listingi.

    konel83 napisał:
    Kurcze bardzo ciekawy projekt... Jeszcze pytanie jak z wykrywalnością tej ściągi?? Raczej ciężko na spr. ściągać z czegoś takiego... Mówiłeś o seryjnej produkcji, czy była by opcja żeby kupić taką zabawkę??


    O seryjnej produkcji wspomniał kolega Palmoster jednak było to raczej żart. Widziałem różne zegarki, zastanawiałem się nad zmniejszeniem akumulatora aby obniżyć grubość urządzonka. Bez akumulatora to jedyne 11mm co prawda akumulator to jedynie 5mm ale zawsze. Jeszcze nie testowałem urządzenia jako ściągi na lekcji :)
  • #21
    Grizzly16
    Poziom 13  
    Te Pull-Upy do lini transmisyjnych to nie można było podciągnąć w procku? Zawsze kilka elementów mniej, a swoją rolę powinny spełnić.

    Wykonanie bardzo fajne i rozmiar płytki nie przekraczające wyświetlacza i akku też cieszy oko.

    Gratuluje cierpliwości w demontażu i późniejszym montażu złącza do lcd. Mi by zdrowie i nerwy nie pozwoliły na taką operację partyzancką. ;)

    Fajne microswitche wyglądają na solidne, gdzie je dorwałeś?
    Mi by się przydała taka zabawka do kuchni jako elektroniczna książka kucharska, bo wiele przepisów mam właśnie z neta w formie txt, a co wydrukuje sobie na kartce to chwila moment i już muszę drukować drugi raz bo się gdzieś pierwsza zawieruszy. ;)

    Pozdr.
  • #22
    dominon
    Poziom 18  
    ugh123 napisał:
    A mam pytanie czy kolega mógł by pokazać kawałek kodu odpowiedzialnego za przewijanie/zawijanie tekstu na LCD ? Z góry serdecznie dziękuje i pozdrawiam Bartek :D


    Tak postaram się dziś go zamieścić tylko uporządkuję go żeby jakoś wyglądał.

    Grizzly16 napisał:
    Te Pull-Upy do lini transmisyjnych to nie można było podciągnąć w procku? Zawsze kilka elementów mniej, a swoją rolę powinny spełnić.

    Wykonanie bardzo fajne i rozmiar płytki nie przekraczające wyświetlacza i akku też cieszy oko.

    Gratuluje cierpliwości w demontażu i późniejszym montażu złącza do lcd. Mi by zdrowie i nerwy nie pozwoliły na taką operację partyzancką. Wink

    Fajne microswitche wyglądają na solidne, gdzie je dorwałeś?
    Mi by się przydała taka zabawka do kuchni jako elektroniczna książka kucharska, bo wiele przepisów mam właśnie z neta w formie txt, a co wydrukuje sobie na kartce to chwila moment i już muszę drukować drugi raz bo się gdzieś pierwsza zawieruszy. Wink

    Pozdr.


    Przeglądając różne strony internetowe zauważyłem że wiele osób miało problem z uruchomieniem wyświetlacza czy karty na wewnętrznych pull-up'ach. Wolałem dać pewniejsze zewnętrzne. Zazwyczaj zaleca się dawanie zewnętrznych gdyż w niektórych sytuacjach wewnętrzne są nie wystarczające i mogą wprowadzać błędy w komunikacji. Microswitche kupiłem dość dawno jeżeli dobrze pamiętam to Łódź Fabryczna w podziemiach. Co do solidności to właśnie to sprawdzam :) na pewno nie można ich długo grzać przy lutowaniu (jak niczego co w SMD... :) ). Padło na nie ponieważ są nisko profilowe i nie wiele wyższe od Atmegi co dodatkowo zmniejsza wysokość całości.
  • #23
    vooltano
    Poziom 14  
    Projekt bardzo fajny sam planuję coś podobnego tylko że ze zwykłą Atmegą, szkoda że nie pomyślałeś o złączu usb mini.
  • #24
    wladza13
    Poziom 14  
    Niezła robota. Gratulacje. Podziw za to złącze pod lcd.
    Przepraszam ze trochę zjadę z tematu. Bawiłem się tymi wyświetlaczami wiele razy w różnych językach(to był gotowe programy bo znam tylko bascom), używając gotowych bibliotek jak i obsługi od podstaw. Mam w domu dwa takie wyświetlacze, które obsługuje z bascoma używając biblioteki lcd-pcf8833.lbx jednak są to wyświetlacze na zielonej taśmie.... To może być wskazówka dla tych którym wyświetlacze nie chcą ruszyć. Nigdzie nie znalazłem wyjaśnienia tego "zjawiska" bo przecież pomaranczowa taśma to pcf8833, a zielona epson S1D15G10.
    Dla pewności pominąłem gotowa bibliotekę lcd-pcf8833.lbx i potraktowałem go prostym programem od podstaw i wychodzi na to ze wyświetlacz z zielona taśma to faktycznie PCF8833. Może komuś ta informacja przyda się.
  • #25
    dominon
    Poziom 18  
    wladza13 napisał:
    Niezła robota. Gratulacje. Podziw za to złącze pod lcd.
    Przepraszam ze trochę zjadę z tematu. Bawiłem się tymi wyświetlaczami wiele razy w różnych językach(to był gotowe programy bo znam tylko bascom), używając gotowych bibliotek jak i obsługi od podstaw. Mam w domu dwa takie wyświetlacze, które obsługuje z bascoma używając biblioteki lcd-pcf8833.lbx jednak są to wyświetlacze na zielonej taśmie.... To może być wskazówka dla tych którym wyświetlacze nie chcą ruszyć. Nigdzie nie znalazłem wyjaśnienia tego "zjawiska" bo przecież pomaranczowa taśma to pcf8833, a zielona epson S1D15G10.
    Dla pewności pominąłem gotowa bibliotekę lcd-pcf8833.lbx i potraktowałem go prostym programem od podstaw i wychodzi na to ze wyświetlacz z zielona taśma to faktycznie PCF8833. Może komuś ta informacja przyda się.


    W projekcie użyłem LCD z żółta taśmą jednak dużo łatwiej jest znaleźć ten z zieloną (telefony w jakich można znaleźć wyświetlacze o których mowa wyżej NOKIA: 2600/2650/3100/3120/3200/5100/5140/6100/6220/6610/7210/7250). Mam również wyświetlacz na zielonej taśmie i w sumie różnią się komendami inicjującymi. Jeśli to nie tajemnica to może dodał by kolega do tematu napisaną przez siebie procedurę obsługi/inicjacji wyświetlacza z zieloną tasiemką?

    Dodano po 21 [minuty]:

    ugh123 napisał:
    A mam pytanie czy kolega mogl by pokazac kawalek kodu odpowiedzialnego za przewijanie/zawijanie tekstu na lcd ? Z gory serdecznie dziekuje i pozdrawiam Bartek :D


    Bartku o to fragment z listingu o który prosiłeś:
    Code:
    Listing: 1
    

    Get #1 , Plik_bin , Znak
          Lcdat Y , X , Plik_bin , Orange , Black
          Incr Znak
          X = X + 8
          If X => 129 Then
             X = 1
             Y = Y + 8
          End If
          If Y => 129 Then
    ' Instrukcje oczekiwania na klawiaturę.
    ' Następnie "Select case" do określenia co stanie się po wciśnięciu konkretnego przycisku.
          End If


    Zmienne: X i Y odnoszą się do formatowania rzędów i kolumn na wyświetlaczu. Są one zależne od użytej czcionki. W moim przypadku znak ma 8x8pix co daje 16 linii po 16 znaków.

    Zmienna: Pik_bin jest to zmienna typu String*1 dzięki temu nie trzeba definiować ilości wczytanych bajtów w instrukcji Get ponieważ zawsze będzie wczytywane po jednym bajcie danych zaczynając od miejsca które wskazuje zmienna Znak początkowa wartość to 1.

    Instrukcje te powinny być wykonywane w pętli aż do momentu wykrycia końca pliku. Przed wejściem do pętli należy wczytać wybrany plik tekstowy pod ścieżkę #1.

    Proszę pytać o interesujące części programu a postaram się kolejno takowe dodawać.

    Pozdrawiam D.P.
  • #26
    wladza13
    Poziom 14  
    Tajemnicą nie jest tylko musiałbym znaleźć gdzieś ten kod o ile go mam bo to było ładny czas temu. Widzę, że Ty masz z pomarańczowa(żółta) taśmą. Dla zielonej(w moim przypadku) to jest zwykła obsługa PCF8833. Miałem też kiedyś wyświetlacz z pomarańczową (mój pierwszy wyświetlacz) i po małych problemach uruchomiłem go. Tu jest nawet mój post z pierwszymi próbami i programem.
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=740331&highlight=
    Jeśli odnajdę kod podzielę się.
  • #27
    dominon
    Poziom 18  
    Dziękuję koledze wladza13 może komuś się przydadzą informacje zawarte w linku. Poniżej zamieszczam instrukcje konfigurujące wyświetlacz oraz kilka linii inicjujących dla "wersji żółtej".

    Code:

    Listing: 2

    ' biblioteka do obsługi LCD
    $lib "Lcd-pcf8833.lbx "

    ' Ustawienia portów pod które podłączony jest LCD
    Config Graphlcd = Color , Controlport = Portc , Cs = 3 , Rs = 2 , Scl = 0 , Sda = 1

    ' Ustawienia kolorów
    Const Blue = &B00000011
    Const Yellow = &B11111100
    Const Red = &B11100000
    Const Green = &B00011100
    Const Black = &B00000000
    Const White = &B11111111
    Const Brightgreen = &B00111110
    Const Darkgreen = &B00010100
    Const Darkred = &B10100000
    Const Darkblue = &B00000010
    Const Brightblue = &B00011111
    Const Orange = &B11111000

    ' Ustawienia wysyłane do LCD tylko raz po starcie
    Glcdcmd &H36
    Glcddata &H48
    Glcdcmd &H21

    Paleta barw oczywiście może być generowana w trakcie pracy jednak zadeklarowanie podstawowej palety upraszcza program w wielu momentach szczególnie na początku pisania programu.

    Zamieszczam także całą procedurę inicjacji karty wraz z niezbędnymi plikami. Jest to nic innego jak zmodyfikowana do własnych potrzeb przykładowa procedura ze strony domowej AVR-DOS.
    Strona domowa AVR-DOS
    Przykład inicjacji karty

    Code:

    Listing: 3

    ' Konfiguracja Watchdog-a
    Config Watchdog = 2048

    ' Procedura inicjująca
    Sub Ini_m_sd
    Setfont Color8x8
    Cls
    Box(0 , 0) -(130 , 130) , White
    Wait 2
    Lcdat 1 , 1 , "TEST AVR-DOS" , Blue , White
    Lcdat 8 , 1 , Version() , Red , White
    Lcdat 32 , 1 , "Wait for drive.." , White , Black
    $include "Config_micro_sd.bas"
    Lcdat 40 , 1 , "Config O.K." , Black , White
    If Gbdriveerror = 0 Then
       $include "Config_AVR-DOS.BAS"
       Lcdat 48 , 1 , "Init filesystem:" , Black , White
       T_1 = Initfilesystem(1)
       If T_1 <> 0 Then
          Lcdat 56 , 1 , "Error:" , Black , White
          Lcdat 56 , 56 , T_1 , Black , White
          Do
          Call D_pad
          Loop Until Pad = 3 Or Pad = 4
          Select Case Pad
             Case 4:
                Lcdat 64 , 1 , "Reset za 2s..." , Orange , Black
                Start Watchdog
                Do
                Loop
             Case Else:
          End Select
       Else
          Lcdat 64 , 1 , Disksize() , Black , White
          Lcdat 72 , 1 , Diskfree() , Black , White
          Stop Watchdog
          Do
             Call D_pad
          Loop Until Pad = 3
       End If
    Else
       Lcdat 56 , 1 , "Error init:" , Black , White
       Lcdat 56 , 96 , Gbdriveerror , Black , White
       Call D_pad
       Do
          Call D_pad
       Loop Until Pad = 3 Or Pad = 4
       Select Case Pad
          Case 4:
             Lcdat 64 , 1 , "Reset za 2s..." , Orange , Black
             Start Watchdog
             Do
             Loop
          Case Else:
       End Select
    End If
    End Sub


    Jak można zauważyć karta nie inicjuje się od razu. Na razie nie walczyłem z tym tylko obszedłem to w taki sposób że używam watchdog-a do resetu.

    Instrukcja D_pad odwołuje się do procedury wczytującej numer klawisza. Jest to nic innego jak pętla powtarzająca się do momentu wciśnięcia przycisku i zwracająca jego numer od 1 do 4.

    gh123 napisał:
    dominon dziekuje za wstawienie kodu bardzo sie przydal Ja bede go uzywal do wyswietlania tekstu na lcd od siemensa s65 Jeszcze raz dziekuje


    Również udało mi się uruchomić ten wyświetlacz, miło mi że mogłem pomóc.
  • #28
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #29
    dominon
    Poziom 18  
    piotr__80 napisał:
    Niezłe niezłe :)
    A czy ten procesor tworzy pliki na karcie czy zapisuje na zasadzie zapełniania kolejnej komórek pamięci??


    Kontroler nie tworzy plików są one zapisane na karcie pamięci przy pomocy komputera. Jednak Biblioteka o której wspomniałem w poprzednim poście umożliwia tworzenie plików (sprawdziłem i rzeczywiście działa) i wpisywanie do nich różnych danych. Jest także możliwe poruszanie się po systemie plików umieszczonych w różnych folderach. Jeżeli chodzi o szczegóły proszę poczytać sobie na stronie domowej AVR-DOS która była podana a także w plikach dostępnych również tam :)
  • #30
    wladza13
    Poziom 14  
    Przeszukałem swoje zasoby, ale niestety ten programik na którym testowałem ostatnio wyświetlacz z zielona taśma był pisany w "locie" i go nie mam, ale w podanym wyżej przeze mnie poście jest program, który nie używa biblioteki pcf8833. Nie jest on mojego autorstwa został dawno znaleziony w sieci, ale działa i na nim uczułem się obsługi tych wyświetlaczy do czasu odkrycia biblioteki bascoma.
    Co do osiągnięć z tym wyświetlaczem to jak by ktoś był zainteresowany mogę podzielić się prostą przeglądarka zdjęć. To był projekt robiony na pająka dla sprawdzenia się i nie miał się ukazywać w sieci wiec byłby tylko do celów edukacyjnych.