LCD w Bascomie

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 14 sty 2010, 22:25

Właśnie a jaką masz wersie ?
Ja mam 1.11.9.8 Full

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 14 sty 2010, 22:27

Nie wydaje ci się Pikczu że to czy wersja pełna czy nie nie powinno mieć znaczenia? w końcu nie przekroczył ograniczenia. Inna sprawa jak zły pirat pełnej wersji - kiedyś miałem taki przypadek z Basiciem na PIC ;)

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 14 sty 2010, 22:33

No Tak ale może mieć jakąś starszą.
Albo z BUGIEM.
Nie chodziło mi tu o pełna czy nie.
Ale o dokładnie jak pisałeś cracowaną to tak może się dziać.

[ Dodano: 2010-01-14, 21:37 ]
A ostatnio Alberts coś zawalił i pojawiła się od razu wersja po wersji.

seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

Post autor: seg » 14 sty 2010, 22:42

Mam starszą, ale avt3003 robilem dawno temu na jeszcze starszej, tej z CD avt3500 i tez migalo. No trudno. Powiedz mi tylko jeszcze jak wygladal ten "program" test - kod.

Na tej co masz jest to samo. Nie wiem o co chodzi.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 15 sty 2010, 11:34

Program nie ma nic do migotania ekranu na LCD, bo to sterownik sprzętowo za to odpowiada, dla tego się pytałem czym to zasilasz. Chyba że używasz w pętli często polecenie CLS, ale wtedy powinien migać cały wyświetlacz a nie jedna linia jak to widać na twoim filmie. Prawdopodobnie jest to jakaś niedoróbka sprzętowa, niedobre połączenie płytka wyświetlacz, lub zimny lut.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 15 sty 2010, 11:40

Program który zamieszczałem był w C więc dla osoby używającej Bascom'a raczej nieprzydatny stąd jedynie plik *.hex ;)

seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

Post autor: seg » 15 sty 2010, 16:20

Prawdopodobnie jest to jakaś niedoróbka sprzętowa, niedobre połączenie płytka wyświetlacz, lub zimny lut
No tak, szczególnie, że na wsadzie testowym nie migotało. Poza tym miga cały wyświetlacz a nie 1 linia. Cls uzywam raz. Uwierz mi, 20l /z przerwami/ zajmuję się elektroniką i trochę już polutowałem w życiu. Teksty typu zimny lut lub niedobre połączenie, wyświetlacz mnie drażnią. Takie rady proszę kierować do 12latków.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 15 sty 2010, 21:00

seg,
seg pisze:Teksty typu zimny lut lub niedobre połączenie, wyświetlacz mnie drażnią. Takie rady proszę kierować do 12latków.
A nie powinny bo każdemu się zimne luty zdarzają.
Chyba że się czujesz taka Alfa i Omegą w elektronice to przepraszam.

seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

Post autor: seg » 15 sty 2010, 21:48

Szczerze? Nigdy. Poprawiałem za to po innych. Nie jestem alfą i omegą, co więcej z programowania jestem nogą - mimo, że avt3500 i chyba z 8 programatorów mam od kilku dobrych lat - nigdy nie mogłem do tego na poważnie usiąść. Wiem, że Bascom to dziecinada, mam tego świadomość, ale od czegoś trzeba zacząć. Jeżeli zaś chodzi o praktykę, uważam, że jestem w tym dobry.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 15 sty 2010, 21:51

Czyli podsumowując:
1. LCD dobre
2. Połączenia dobre
3. Procek dobry
4. Bascom jest be :P

? ;)

seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

Post autor: seg » 15 sty 2010, 22:02

U mnie chyba jest. Płytkę mam ok, nie sądzę, aby wszystkie LCDki /11szt./ były padnięte. Dlaczego nie miga przy sofcie z załącznika, dlaczego np ten projekt LINK działa stabilnie? Wydaje mi się, że coś jest z tym Cls'em i następnie Lcd. Może te procedury wymagają zbyt dużo czasu? Nie znam przyczyny.

Nie mam 1 procka, jednego lcd i cyny ósemki do rynien. Nie dostaję kieszonkowego. Nie lutuję 100W transformatorówką. Mam dobrze wyposażony warsztat dlatego irytują mnie porady dla dzieci. Bez obrazy, mam swoje lata i nie jestem partaczem.
Ostatnio zmieniony 15 sty 2010, 22:07 przez seg, łącznie zmieniany 1 raz.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 15 sty 2010, 22:03

Złej baletnicy przeszkadza rąbek u spódnicy:)
Bascom nie jest dziecinadą wiele zależy od programisty i jego umiejętności.

[ Dodano: 2010-01-15, 21:07 ]
Powiem Tak zrobiłem test twojego softu i migał dodałem end nie miga.
Wiec u mnie jest ok wież mi lub nie twoja sprawa. Filmu nie chce mi się nagrywać żeby to udowodnić.
Więc wychodzi na to że Ty robisz coś źle i tyle.

[ Dodano: 2010-01-15, 21:11 ]
seg pisze:Nie mam 1 procka, jednego lcd i cyny ósemki do rynien. Nie dostaję kieszonkowego. Nie lutuję 100W transformatorówką. Mam dobrze wyposażony warsztat dlatego irytują mnie porady dla dzieci. Bez obrazy, mam swoje lata i nie jestem partaczem.
Ja i snow, i kayron, też nie.
Warsztat też mam wyposażony ale to nie jest głównym tematem tego wątku.
seg, Proszę Cię Zmień podejście. Jeśli pytasz na forum o pomoc to stosuj się do zaleceń. A nie miej pretensji.
Jelsi tak to trzeba zmienić temat postu na:
Noworoczna bułka z pretensjami

seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

Post autor: seg » 15 sty 2010, 22:19

Chłopaku ja nie mam pretensji. Tłumaczę bo nie dociera. Zajmij się innymi postami, bułkami lub wspinaczką. Ja tu zaleceń nie widzę.

Proszę prosto z książki Góreckiego 'C032d.bas

Kod: Zaznacz cały

' C032d         Proste wykorzystanie DS18x20      - jumper J2 B-C
'przestawiona kolejność poleceń konwersji i odczytu powoduje, że widać,
' iż po podaniu zasilania T=85oC i że podczas konwersji można
' odczytać stan SCRETHPAD-a, ale ze "starym" wynikiem
Config 1wire = Portd.5 : Dim Odczyt(2) As Byte , A As Byte ,
Dim Licznik As Byte , T As Integer
 Cls : Lcd "Termometr" : Lowerline : Lcd Licznik : Wait 2
Do
   Incr Licznik                              ' tylko po to, żeby pokazać, iż program "żyje"
   1wreset : 1wwrite &HCC : 1wwrite &HBE     'polecenie odczytu DS18x20
   Odczyt(1) = 1wread(2)                     'odczytaj dwa pierwsze bajty - temperaturę
   T = Odczyt(2)                             '          starszy bajt temperatury
   Shift T , Left , 8                        'przesuń w lewo o 8 miejsc
   T = T + Odczyt(1)                         'w zmiennej Integer jest dziwna "ułamkowa" wartość
   Shift T , Right , 4                       'zamiast dzielić przez 16 przesuń w prawo
 '   Shift T , Right , 1       'dla kostek DS18S20, DS1820 przesuń o 1 bit
   Cls : Lcd "Temp=" ; T ; "oC"              'wyświetl wynik - liczbę całkowitą
   Lowerline : Lcd Licznik                   'w dolnej linii wyświetl stan licznika
     1wreset                                 '   dopiero teraz daj polecenie konwersji:
     1wwrite &HCC                            'polecenie SKIP ROM, bo pojedyncza kostka
     1wwrite &H44                            '   dokonaj konwersji - zmierz temperaturę
Wait 1                                       'po cyklu pracy poczekaj
Loop
Wszystko co jest wyświetlone w górnej linii miga przy każdym zwiększeniu wartości licznika - o takie miganie mi chodzi. Co więc powoduje to miganie? 1s opóźnienia? Nawet jeśli jest to opóźnienie to dlaczego wynik miga, a nie jest stabilny. Nie spotkałem się z jakimkolwiek miganiem w fabrycznych urządzeniach np centralkach alarmowych. Przecież nie można pisać programów tak marnie działających. Rozumiem, że to tylko na potrzeby książki, ale wskażcie mi niedoróbkę i jak to wyeliminować. Dodanie End oczywiście nie pomaga.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 15 sty 2010, 23:01

Jest jeszcze jedna możliwość, jeśli sprzęt jest 100% OK. Mianowice nie kompilujesz przypadkiem w BASCOM mających dyrektywę $SIM w programie :?: Jeśli tak to ją wywal. Pamiętam że ja raz tak przez pomyłkę zrobiłem i nie usunąłem tej linii programu przed kompilacją dla fizycznego CPU i miałem problemy, program też nie działał tak jak powinien. Nie pamiętam już co tam dokładnie źle mi działało, ale właśnie to było przyczyną moich problemów. Jedna głupia linijka w programie.
PS. Akurat jak ja wy edytowałem posta to wstawiłeś kod programu. No cóż trudno. Widzę nie masz $SIMa.
Jeszcze trzeba by poszukać, bo wiem że jakieś płytki chyba z tego kursu miały wadę, ale musiał bym sprawdzić i poszukać o co tam chodziło.
W sumie bardzo ciekawy problem, bo każdemu może się zdarzyć. Co do twojego stwierdzenie do książek o programowaniu. TAK masz racje, tych programów nikt nie testuje, i często niespodzianki są już w pierwszych lekcjach. Nie będę tu przytaczał konkretnych tytułów książek bo to praktycznie problem wszystkich tytułów.
Ostatnio zmieniony 15 sty 2010, 23:28 przez kayron, łącznie zmieniany 1 raz.

seg
Użytkownik
Posty: 223
Rejestracja: 17 sie 2005, 1:08
Lokalizacja: PÓŁNOC - POŁUDNIE

Post autor: seg » 15 sty 2010, 23:24

Dodanie instrukcji konfiguracyjnych nie pomogło. Zauważyłem, że efekt potęguje się przy zmniejszaniu kontrastu LCD. I odwrotnie.. chociaż na max kontraście można zauważyć znaki kursora skaczące w górnej linii od prawej do lewej w kilku pozycjach pod wyświetlonymi znakami. Ja stawiam na problemy z "dojściem do siebie" wyświetlacza po komendzie Cls i natychmiastowym rozkazie Lcd. Pewnie czyści każde pole po czym musi wrócić na 1wszą pozycję w 1wszej linii, co zajmuje trochę czasu. Nie znam zasady działania Cls więc teoretyzuję.

ODPOWIEDZ