Ma czym wyświetlasz dane? Pokaż program obsługi wyświetlania.
witam ! '2 wyświetlacze LED 7segmentów 'fusebity ustawione fabrycznie $regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Output 'katody segmentów LED Config Portd = Output Anoda1 Alias Portd.0 Anoda2 Alias Portd.1 Dim Nr_wysw As Byte Dim Cyfra2 As Byte Dim Cyfra1 As Byte Dim Temp_liczba_1 As Word Dim Temp_liczba_2 As Word Config...
Po resecie WR daj 15ms zamiast 5ms. Chinole tak mają.
Witam ! Usuń nawiasy kwadratowe z: [syntax=basic4gl] Deflcdchar [2] , 224 , 231 , 229 , 231 , 224 , 224 , 224 , 224 Deflcdchar [0] , 32 , 7 , 5 , 7 , 32 , 32 , 32 , 32 Deflcdchar [1] , 32 , 4 , 4 , 14 , 14 , 14 , 32 , 32 [/syntax] Tak: [syntax=basic4gl] Deflcdchar 2 , 224 , 231 , 229 , 231 , 224 , 224 , 224 , 224 Deflcdchar 0 , 32 , 7 , 5 , 7 , 32 ,...
Pomyśl..Cztery znaki chcesz upchać w trzyznakowym stringu.. Nie wiesz jak to działa. Kiedy deklarujesz String * 10 rezerwujesz 11 bajtów bo każdy string ma znak swojego końca. Nie musisz wykorzystać wszystkich bajtów. String może być krótszy i zaraz po znakach postawiony będzie znak końca..ale zarezerwowałeś 11 bajtów i tam program nigdy nic nie będzie...
Witam, to jest podchwytliwe pytanie? [syntax=vbnet]suma_ok_nok = licznik_ok + licznik_nok procentowo_ok = licznik_ok * 100 procentowo_ok = procentowo_ok / suma_ok_nok [/syntax] Pozdrawiam.
"Jeżeli potrzeba, mogę wklejić zdjęcia oraz cały program. " To wklej, bo z tego co przedstawiłeś wiemy tylko że program gdzieś "skacze", ale gdzie?
Następnym razem napisz jaki mikrokontroler i z jaka prędkością jest taktowany. Problemem może być to że chcesz coś wyświetlać w procedurze obsługi przerwania. Lepiej unikać takich sytuacji. Pewniejszym rozwiązaniem będzie ustawienie tylko flagi w przerwaniu i szybki powrót z niego. Potem w programie zająć się wyświetlaniem kiedy napotkamy flagę. Druga...
Ponieważ Fusing zwraca zmienną tekstową więc deklaracja zmiennych stanowiących wynik tej instrukcji powinna być następująca: Dim V As String * 6 Dim A As String * 6 Dim P As String * 6 Dim R As String * 6 Dim Vod As String * 6 Zmienne są wystarczająco długie dla zakresu 99.9. Jeśli wartość przekracza 100 powinno być String * 7
Wyświetlacz LCD ma być nad czterocyfrowym wyświetlaczem LED, z nie poza płytką. Nie możesz sugerować się rys. 3.1 na stronie 56, bo jest to tylko schemat ideowy. Powinien być zamontowny zgodnie z rys. 3.2 na stronie 57, a więc cały wyświetlacz LCD znajduje się w obrębie płytki testowej nad czterocyfrowym wyświetlaczem LED, a więc go zasłania. Na rysunku...
Witam 1.Diody D1 D2 1n4148 od elektrozaworów w obecnym połączeniu nie spełniają swojej roli, chyba że zostaną zamienione na diody zenera. 2.Nieodfiltrowane zasilanie mikrokontrolera, brak chociażby prostego filtru LC na zasilaniu 3.Nóżki mikrokontrolera nieodsprzęgnięte za wyjątkiem jednej? 4.Brak kondensatora na nóżce reset 5.Płytka pcb jest do przeprojektowania...
Masz dwie możliwości, możesz pobrać nowszą wersje BASCOM'a lub dopisać taką linie: [syntax=basic4gl]$lib "xmega.lib" : $external _xmegafix_clear : $external _xmegafix_rol_r1014[/syntax]
Zapis LCD(0, Index) dałem umownie bo nie wiedziałem jak będziesz to wyświetlał. Wstaw swój Lcdtext Seq(index), 0, Index * 8... w pętlę For...Next wyświetlania i gra. :)
ja zrobil bym cs takeigo: Dim X As Byte set p2 jazda: if p2.6 = 0 then set X if p2.4 = 0 then reset X if x = 1 then wyświetlana = first if x = 0 then wyświetlana = second odczytaj z ds`a first odczytaj z ds`a second lcd wyświetlana goto jazda: Mam nadzieje ze pomoże to co zmieniłem zaznaczyłem. Sprawdz. jak i napisz jaki bedze rezultat
Co wyświetla ci lcd??
Hmm... Miałem ten sam problem ale to było jakiś czas temu i na innym wyświetlaczu nie pamiętam już jak to rozwiązałem. Może popróbuj z ograniczeniem ilości kolorów do ilości obsługiwanej przez wyświetlacz to też można znaleźć w GIMPIE.
Nie podałes symbolu wyświetlacza. Niektóre potrzebują ujemnego napięcia dla kontrastu, natomiast jeszcze inne mają zamienione + z - np. WM-C1602 A i jeszcze jedno napisałes ze dałes ok.5V - mało to precyzyjne. No i ten reset na schemacie mi się nie podoba, ja bym to podpioł do +5V przez rezystor 10kΩ. Napisz czy udało ci się prawidłowo zaprogramowac...
Tworzysz zmienną sting * 20 i tworzysz tablice byte(20) adresujesz je tak samo i poleceniem lcd chr(byte(a)) stawiasz znak z wybranego miejsca ze stinga.
Po prostu spróbuj, nie wybuchnie ... (chyba) :)
Temp_liczba musi być typu Word a nie Byte.
Dim Koniec As Byte Koniec = 0 Do Locate 4 , 3 If Pina.0 = 0 Then Lcd Chr(0); Waitms 10 Else Lcd Chr(1); Waitms 10 End If If Pina.1 = 1 Then Koniec = 1 End If Loop Until Koniec = 1
Long = GetAdc(0) Single = Long * 0.01955 String = Fusing(Single, "##.##") LCD String; "V"
Pomnóż przez 2, zaokrąglij do wartości całkowitych, podziel przez 2, i wyświetl z rozdzielczością do 1 miejsca po przecinku.
Kolega potrzebuje po prostu wartości liczby w kodzie BCD jak pisał poprzednik i BCD, HEX i liczby dziesiętne pokrywają się w zakresie 0-9. W takim razie wystarczy wysłać 4 najmłodsze bity na wejście 7447 albo całą liczbę bo i tak podrt wyjściowy jest podłączony tylko to 4 końcówek 7447. Co do wartości powyżej 10 to zaproponowałbym aby użyć wejścia BI/RBO...
Ehh.. Nie znam bascoma ale jak po prostu trzeba zamienić miejsca to Zamiast [syntax=basic4gl]A=Wart And &B00001111 Shift Wart , Right , 4 B = Wart[/syntax] Zrób [syntax=basic4gl]B=Wart And &B00001111 Shift Wart , Right , 4 A = Wart[/syntax]
...Chodzi mi o to że chce wyświetlić na Lcd znak którego wartośc mam zapisaną w bajcie np D1 - wartość binarna Np w D1 jest 0111000 i chce aby na wyświetlaczy pokazało sie " p " Jak to zrobić ? :) Piotr Takie "cuda" robi się za pomocą polecenia Chr() :D Jeśli w zmiennej jest zapisany kod ASCII jakiegoś znaku , to by wyświetlić właśnie ten znak na LCD...
Przyczyną może być bascom :] Wykorzystujesz interface czterobitowy bez możliwości odczytu, więc program nie ma jak sprawdzić, czy wyświetlacz wykonał już żądaną operację. Zostało to rozwiązane tak, że program po prostu czeka pewien czas i być może ten czas oczekiwania jest za krótki. Spróbuj wstawić ten "Wait 1" za "Locate 2, 1" Zobacz też poleceie...
W przerwniu i programie głównym używasz zmiennych zadeklarowanych jako word. Myślę, ze tu leży pies pogrzebany. W C wystarczy użyc volatile i atomic_block. W Bascim? Był taki na Elektrodzie (niveasoft) co wiedział w jaki tajemniczy sposób Bascom zarządza takimi zmiennymi. Myślę, że nie masz wyjścia, tylko przed odczytej w programie głównym zmiennej...
Jak napisałem wcześniej LCD jest wyposażony w cyrylicę. Problemem jest jak tą cyrylicę wpisac do programu bezpośrednio z klawiatury. a co ma wspólnego cyrylica wpisywana z klawiatury z tą cyrylicą w LCD ??? otóż nie ma nic wspólnego poza tym, że mowa o znakach cyrylicy. Nawet jeśli już być miał możliwość pisania jak to mówisz bukw na PC to ich kody...
Twoim podstawowym błędem jest to że ciągle czyścisz ekran. Ta operacja zajmuje prawie 2 ms Nie wiem po co to robisz ? Wystarczy zdefiniować bufor w który bedziesz wpisywać swoje wyniki i ten bufor cyklicznie wyświetlać ale tylko wtedy kiedy to będzie konieczne czyli w zależności od ustwienia ew. flag sygnalizujących np. zmianę czasu. Inna sprawa czy...
Za końcem programu: Nazwatablicy: data 'wartości kolejnych kolumn oddzielone przecinkami Odczytujesz poleceniem lookup. Np.: For X = 0 To 4 cyfra z 5 kolumn Portb = Lookup(x , Cyfra) Waitms Czaskol Next Portb = 0 'kolumna odstępu Waitms Czaskol Zauważ, że tu zmienna "cyfra" decyduje z ktorej tablicy odczytamy dane. ;)
Bo bascom nie używa lini rw, podepnij ją zamiast do up bezpośrednio do gnd
Ale ja proponowałem 1000000Hz a nie 10000000Hz To jest 10x więcej! (przekopiowałem z postów-więc może się nie pomyliłem) Jeśli nie zmieniałeś fusebitów to daj: $crystal=1000000 Sprawdzam i liczę: 1MHz=1000000Hz. Uff. Może jeszcze nie mam ciężkiej sklerozy.
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
ok, tylko najpierw uporam się z przyciskami i nastawami :P Dodano po 28 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output 'podłaczony wyświetlacz 'Config Pinb.0 = Output ' anoda 1 źle! nazwa pin służy do odczytu wartości 'Config Pinb.1 = Output 'anoda 2 źle! aby ustawić należy się posłużyć nazwą Portb.x 'Config Pinb.2 = Input...
A od czego jest HELP !? "Przeznaczenie: Zwraca określoną liczbę znaków z tekstu począwszy od lewej strony. Składnia: zmienna = LEFT( tekst , il_znaków ) gdzie zmiennazmienna tekstowa, do której przepisane będą skopiowane znaki, teksttekst z którego skopiowane będą znaki, il_znakówilość kopiowanych znaków. Opis: Zobacz także: RIGHT , MID Przykład: Dim...
Witam. Spróbuj nie czyścić ekranu starego wyniku poprzez CLS, ale zrób np. tak: ..... If Generator = 10 Then Wynik = Generator - Czujnik Generator = 0 Czujnik = 0 Locate 1,1 Lcd "WYNICZEK= ";" " 'tu jest 6 spacji między 2 i 3 cydzysłowiem Locate 1,11 Lcd Wynik End If Loop ..... Na dobrą sprawę ciąg "WYNICZEK= " jest stały i nie ma sensu go cały czas...
Dodaj średnik po print chr(a).Zobacz ,czy to coś da.
Wyłącz JTAG'a w fuse'ach i po kłopocie... Pozdrawiam...
Przyczyny mogą być różne: a) uszkodzony wyświetlacz (ale to mało prawdopodobne) b) atmega się nie programuje Spróbuj napisać jej program, dzięki któremu dioda LED będzie mrugała, wtedy zobaczymy czy uC się programuje czy też nie. Pozdrawiam
Witam, Twój schemat przypomina trochę schematy z gazet - maksymalne upchanie elementów, co mocno utrudnia czytanie - tylko że tam jest to podyktowane ograniczonym miejscem. Ogólnie robi się tak - wejścia układu po lewej, wyjścia układu po prawej. Sygnały "płyną" z lewej na prawą. Punkty znajdujące się wyżej na schemacie mają zwykle wyższy potencjał...
No więc jaki z tego wniosek ?
generalnie mozna to chyba na 2 sposoby zrobic: 1. tara =Fusing(w, "###.&&") 2. wyifowac mniej wiecej na zasadzie: if (tara>=10) locate x,y; if (tara>=100).... .... edit: w 2. oczywiscie o wartość chodzi ;]
Rzeczywiście masz dokładnie tak w kodzie? Z tym znakiem "=" ? No i co konkretnie nie działa? Nie kompiluje się? Zły znak wyświetla?
Mikrokontroler Atiny2313 + wyświetlacz LCD + język programowania BASCOM AVR = wyświetlam co chce na wyświetlaczu. Przy 3V ten model wyświetlacza nie będzie działał
tak o wyświetlanie :)
Sprawdź w polskim helpie "config lcdpin" Dodano po 3 A jaką wartość ma lcd1 i lcd2?
1) Do Debounce dodaj dopiski SUB 2) Program prawdopodobnie wywala ci się na pierwszym Lookup od setek, szukasz po CYFRA zamiast TEMP (wywalenie to być nie musi ale może być problem) 3) Zrób najprostszy test: wywal te swoje lookupy, przyciski i resztę kombinacji. Na sztywno przypisz cyfry, zrób ich lookup i wyślij na wyświetlacz. Zobacz czy chociaż to...
Zapoznaj się z $hwstack, $swstack i $framesize.
Na oko gosub Przedpetla: wygląda na podprogram , ale nie znalazłem "declaresub Przedpetla" Z podprogramu wychodzi się przez "end sub" , a z przerwania przez "return" ( chyba, bo dawno w basicu nic nie pisałem) , ilość Loop do DO jest przerażająca tak się tego raczej nie robi i ogólnie chaos. Lepiej przemyśl program jeszcze raz. .. .. Declare sub podprogram1...
Tak ale zapisane binarnie. A to zupełnie co innego w tym przypadku. Jeśli chcesz zapis binarny to robisz binarny. A czy to będzie nkb czy bcd to już inna kwestia. W twoim kodzie jest wszystko ok. Kod jest kodem dziesiętnym w zapisie binarnym. Więc liczby drukowane są po "naszemu" używając cyfr. Jeśli chcesz BCD wydrukować w zapisie binarnym to najpierw...
jeśli nasz zmienną typu integer to zmienne obliczjące cyfry też zmień na integer
Pokaż schemat to raz. Dwa: co to jest? Set Pinb.5 Set Pinb.6 Set Pinb.7 Tak po za tym chyba brakuje ci wartości początkowej timera0... Nie obraź się ale przy tym oscylatorze i preskalerze 64 otrzymasz przerwanie co najwyżej co 2ms... Na koniec zapamiętaj że program zawsze umieszcza się w znacznikach "code".
chcę zrobić tablicę z nazwami dni tygodnia do kalendarza. deklaruję dim tablica(7) as string * 12 Po co Ci aż 7 12-bajtowych stringów :?: Wystarczy: Dim Dzientygodnia As String *12 , Nrdnia As Byte ... Dzientygodnia=Lookupstr(Nrdnia,Tabli... '0=Pon, 1=Wtor, ... Lcd Dzientygodnia; ... Tablica: Data "poniedziałek", "wtorek"...
Masz zapętlenie wywoływania podprogramów instrukcją GOSUB. każdy podprogram np: Wyswietlanie_alarmu_temp powinien być zakończony instrukcją RETURN. Jeśli tak nie masz to w nieskończoność wywołujesz kolejne podprogramy i po którymś cyklu kończy ci się rozmiar STOSU :( np HW_STACK. Dlatego program zaczyna wariować i gubić wartości zmiennych SOFT_STACK....
Może muszę dodać linie ,,i2crbyte"?
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
http://www.elektroda.net/download/pafile...
Kolego w jakim języku piszesz? Do czego ma być ta biblioteka C++ Arduino a może Bascom ?
Kompiluje się bez tego $lib "mcsbyte.lib"
:D [syntax=basic4gl] Tabela: ' 0 1 2 3 4 5 6 7 8 9 Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144, 192 ' <-spróbuj dopisać [/syntax] , ale pomyśl też o takim warunku :P [syntax=basic4gl]Decr Sekjed If Sekjed = 255 Then Sekj = 9 Decr .. End If[/syntax]
Witam; Na wstepie chciałbym zasygnalizować, że programowania w Bascom-ie ucze się dopiero od niedawna :) Mam takie pytanko: mam sobie wyświetlacz LCD 16*1 i prosty układ który sobie zlicza detale. Na wyświetlaczu pojawia się napis: ilość sztuk 123 jak zrobić żeby liczba którą wyświetla zawsze była wyrównana do prawej strony? Aktualnie zrobiłem coś takiego:...
Witam... Jesli moge w czyms pomoc... Dorzucam programik z wlasnego termometru. Wprawdzie wykorzystuje DS1820, ale latwo przerobic go na DS18B20 - przykladowe procedury i kody mozna znalezc na www.mcselec.com - bylo to na pewno. Mam nadzieje, ze przyda Ci sie... Pozdrawiam.
Biblioteka której użyłeś nie ma możliwości dowolnej konfiguracji pinów. W załączniku masz bibliotekę prosto z Rosji :D Chiński wyświetlacz sam mi się uszkodził ale coś tam wyświetla :D http://obrazki.elektroda.pl/6257086800_1... Kod którego użyłem do zrobienia tego zdjęcia [syntax=vbnet] $regfile = "m8def.dat" ' specify the used micro...
Jest rok 2015 teraz robi się to tak: DS18B20 moze być zasilany z linii transmisji bądź trzecim pinem. Jeśli masz podłaczone 5V na stałe podczas pracy programu czyli do DS`a idą trzy przewody to DS może dla Ciebie przygotować temperature i poczekać spokojnie aż ją odczytasz. Czyli każesz mu przygotować temperaturę i wracasz po nią za sekundę. Kiedy wracasz...
Zgadza się jest wszystko,ale z wyświetlaczem tekstowym LCD. Ja zrobiłem to na LEDach i gubię się bo inaczej się to wyświetla.
Bo znak 0 to znak końca linii. 0 wyświetlane jako chr zostanie potraktowane jako znak o kodzie 0 a więc pójdzie do wyświetlacza. 0 "wyświetlane" jako String jest widziane jako znacznik końca textu a więc ten text nawet nie trafi do LCD. Jednym słowem LCD nawet by to wyświetlił, ale BASCOM kompiluje program tak żeby nie przepuszczał zera.
Zainteresuj się poleceniem FUSING. Przeczytaj helpa i zobaczysz, że da się zrobić.
Kolejność? Z = 3 Y = 2 + 3 X = Y + Z
Gdy załaduję ten program do procka to wyświetlacz robi się czarny. A gdy załaduje ten co sam napisałem to jest ok. Dlaczego nie che się nic wyświetlać?
W symulacji pomogło to: $hwstack = 64 $swstack = 64 $framesize = 64
Nie ma takiego kodu którego by się nie dało skrócić :P Przykład: Masz kod poniższy parę razy w źródle: If Sek = 60 Or Sek > 60 Then Sek = 0 Incr Minu End If If Minu = 60 Or Minu > 60 Then Minu = 0 Incr Hou End If If Hou = 24 Or Hou > 24 Then Minu = 0 Sek = 0 Hou = 0 End If Zrób z niego podprocedurę, albo pomyśl czy nie można by przechowywać...
LCD podłączony pod port D, z portu B biorę zasilanie. Eeeee mam nadzieję że to z tym B to błąd...... port ma wydajność 20mA a ty ciągniesz z niego całe zasilanie? Może jeszcze dopowiesz że podświetlanie wyświetlacz też ma?
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
Czy nikt nie ma pojęcia co może być powodem?? Zwróć uwagę, że nie napisałeś jaki dokładnie komunikat błędu wyświetla Bascom.. więc jak mamy Ci pomóc?
W c niema żadnych bibliotek do obsługi takich rzeczy jak wyświetlacze LCD, więc trzeba skorzystać z dodatkowej biblioteki, można napisać ją samą, albo ściągnąć z internetu, aktualnie jest już dużo takich bibliotek do pobrania. A później to wygląda już bardzo podobnie jak w bascomie, tylko, że albo masz tą bibliotekę w głównym pliku programy(nie polecam)...
Rozumiem, ale co z moimi pozostałymi wyświetlaniami, wspominałem wcześniej, że mam jeszcze case od 0 do 4 i je przełączam przyciskiem. A gdy wyrzucę mój select case display_lcd to nie będę miał możliwości ich wyświetlania...
To pewnie wynika z tego że powstało dużo różnych AVR`ów. Jeśli na początku ktoś korzystał tylko z jednego typu to mógł sobie w IDE ustawić konfigurację dla stosów a nawet wyświetlacza LCD czy I2C. Stąd dla wstecznej kompatybilności dalej tak można zrobić. Na przykład ustawienia dla stosów są tutaj tylko moje są już zmienione bo mogę szybko wkleić to...
odłącz programator i zobacz czy będzie działać po resecie (bo użyłeś akurat linii które wykorzystywane są i do programatora ISP i do wyświetlacza. A programator czasami wymusza jakieś stany na swoich wyjściach - więc możesz mieć kaszankę na liniach danych wyświetlacza)
konfigurowanie wyswietlacza na 16*1a jest wygodne ale niestety zajmuje wiecej pamieci, mozna taki wyswietlacz zadeklarowac jako 16*1 i dzielisz go na 2*8 czyli pierwsze osiem znaków to linijka 1 znak od 1 do 8 drugie osiem to linijka 2 znaki od 1 do 8
Ale wyświetla temperaturę?
dołóż do kejsów case else: temp = 88 i daj znać co widać. Zajrzyj też do pomocy od bascom'a to Ci się trochę rozjaśni. Znajdziesz tam odpowiednie przykłady.
próbowałem tylko ze to musi być wtedy typu single bo word nie przyjmuje zmiennoprzecinkowej liczby czyli nie da sie pomnoży razy 10 próbowałem tez pozmieniać wszystkie typy na single ale też nie poszło
Mam za zadanie z tego programu przerobić tak aby, zamiast wyświetlała się od razu cała linia - to ma po kolei wyświetlać się litera z danego wiersza tworząc dany napis.
(at)ElektrodaBot Napisz program w Bascom dla Atmega8, który będzie liczył pojedyncze impulsy w ciągu 24 godzin z zapamiętaniem najkrótszego odstępu między tymi impulsami, wynik wyświetlał na wyświetlaczu 2x16 opartym na HD44780.
Witam Mam taki [url=http://www.artronic.pl/o_produkcie.... LED i nie umiem wyświetlać na nim cyfr, tzw. umiem ale nie tak jak to powinno się robić. Wyświetlam je tak [syntax=basic4gl]Portb = &B1100110 Portd.1 = 1[/syntax] a chcę pisać np. wys5 i wyświetli się liczba 5 To moje kody [syntax=basic4gl]Tabela: Data 63 , 6 , 91 , 79 , 63...
no normalnie, pobierasz długość nazwy: A=len(tekst) i potem dajesz znak zerowy zakończenia tekstu: tekst(a)=chr(0); mam nadzieję, że POMOGŁ em
Moim zdaniem nie da rady. Ktoś już na forum podłączał atmegę do wyświetlacza kolorowego LCD (od jakiegoś siemensa) i generalnie wyświetlenie sensownej animacji chyba się w końcu nie udało. A taki ekranik od komórki ma jakieś półtora cala. Nawet jakbyś podłączył ten TFT do atmegi, to wyświetlenie jednego ekranu będzie prawdopodobnie trwało ponad sekundę....
Może powiem do czego potrzebuje ten program. Buduję sekundnik na dwóch wyświetlaczach 7-segmentowych, ATMEDZE8 i przycisku. I miał by on działać na takiej zasadzie: jak naduszę przycisk to zaczyna naliczać sekundy jak naduszę drugi raz to zatrzyma naliczanie. Przez cały czas cyferki mają się wyświetlać.
Właśnie adresu nie bylem pewien. Ale po zmianie nie ma efektów, dalej nic nie wyświetla
Kontrast dobrze, wyświetla krzaki.
Wydobycie wartości wyświetlanej na wyświetlaczu? To znaczy że jednak coś wyświetla?
[syntax=c] void LcdPrintChar(char character) { LcdSendData( character ); } void LcdSendData(unsigned char data) { LcdRSset; // RS=1 LcdSendNible( data >> 4 ); // Starsze 4 bity LcdSendNible( data ); // Młodsze 4 bity } void LcdSendNible(unsigned char data) { if ((data & 1) != 0) {LcdD4set;} else LcdD4clr; if ((data & 2) != 0) {LcdD5set;} else LcdD5clr;...
No więc tak. Program udało mi się zlepić po przeczytaniu kilku przykładów. Program oczywiście działa. Mam zaimplementowane 3 czcionki i mogę wyświetlić dowolny tekst. Chodzi mi o wyświetlenie grafiki dajmy przykład Bateria albo coś innego np logo jakieś. Oczywiście jeśli się da to może być grafika BGF. Niestety nie mogę tego opanować na OLED, ale powoli...
Witam. Zrobiłem sobie termometr na atmedze8, na czujniku ds18b20, wszystko ładnie działa, lecz temperaturę mam wyświetloną tylko na górnej linii wyświetlacza, a chciałbym, żeby temperatura była wyświetlana duża na 2 liniach wyświetlacza. Jest to wyświetlacz 2x16. Czy ktoś mógłby mi pomóc w napisaniu kodu do wyświetlania tej temperatury na całości wyświetlacza...
Witam , Bawię się ostatnio trochę bascomem, podpiąłem lcd zaprogramowałem i wszystko działa, teraz chciałbym zrobić coś takiego, że wyświetlacz będzie wyświetlał tekst po wciśnięciu przycisku tj. pojawieniu się na Porcie B.1 jedynki. $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1...
Witam, Jak można odebrać i wyświetlić na LCD taki ciąg znaków wysyłanych z PC przez RS232 "Wzmienna spacjazmienna" (PC->Atmega) "W128 021" gdzie W jest warunkiem odebrania znaków przez Atmegę i ciąg zwrotny (Atemga->PC) "C125 035"
If zmienna<100 then Lcd " "; zmnienna 'Bez nieznaczącego zera Else Lcd zmnienna end if Lub If zmienna<100 then Lcd "0"; zmnienna 'Z nieznaczącym zerem Else Lcd zmnienna end if Trochę to jednak dziwne bo Lcd w Bascomie wyrównuje wyświetlanie do lewej. Będzie zatem w programie coś co powoduje inne zachowanie. Daj fragment programu...
Wyrzuć obsługę LCD z przerwania, wyświetlanie wykonuj tylko w pętli głównej. W przerwaniu zmieniaj dane, które mają się wyświetlać i ewentualnie ustawiaj jakąś flagę, która da informację w pętli, że trzeba wyświetlić nowe dane. Przerwania powinny trwać jak najkrócej, wstawianie tam wyświetlania LCD, waitów itp. jest złym pomysłem.
Lcadat 70 , 0 , Rs_data , Czerwony , Czarny Popraw to na LCDAT. A czy upewniłeś się czy i jakie moduł nadaje znaki końca linii CLRF ? Jeśli procesor ma jeden uart to nie ma potrzeby otwierania kanału. Po drugie taka obsługa wyświetlania w petli nie jest dobra. LCD może się nie wyrabiać. Lepiej daj jakieś opóźnienie wyświetlania.
bascom wyświetlanie bascom wyświetlanie liczb bascom wyświetlanie ustawień
przezwajanie generatora kondensator pobór prądu rozruchowy danfoss
lodówka turystyczna lodówka turystyczna
Wymiana łożysk w pralce Electrolux EWF1487HDW Wysokie ciśnienie oleju w Volvo FM 7 podczas jazdy - przyczyny i diagnostyka