Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 4 cze 2025, o 09:01


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
    Autor Wiadomość
    PostNapisane: 31 maja 2013, o 21:51 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Witam
    Buduję duży projekt w którym ma być przewijane menu. Zrobiłem tapetę którą podzieliłem na 5 części i w pętli while ma program przewijać to menu od pierwszej strony do ostatniej i od nowa. Działa dobrze tylko jest kłopot z pierwszą stroną. To znaczy że pierwsza strona przewija się 2 razy i dopiero kolejna jest przewijana potem już przewija się dobrze. Żebyście to lepiej mogli zrozumieć nagrałem filmik kamerka internetową bo tel się ładuję. Kamerkę mam najlichszą ale widać jak się przewija.


    Na filmiku widać pewne zniekształcenia obrazu lecz w rzeczywistości jest pięknie.
    Oczywiście umieszczam kod programu ale podam tylko to co odpowiada za wyświetlanie obrazków bo cały program jest rozległy :)
    Zmienna "pozycja" jest zdefiniowana jako
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    A oto fragment programu:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Wszystko inne są po prostu zakomentowane dlatego nie podaje tutaj całego programu ale jeśli trzeba to wtedy pousuwam i wstawię
    Czy spotkał się ktoś z takim przypadkiem?
    uC to atmega644p + eclipse + 16Mhz
    Proszę o pomoc

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2013, o 21:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Jakim typem jest pozycja?

    ------------------------ [ Dodano po: kilkunastu sekundach ]

    Cieszy, że coraz więcej ludzi bawi się tymi TFT.
    No to czekamy na pierwszy projekt na 4.3''. Kto pierwszy? Krauser? :)

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2013, o 21:59 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Cytuj:
    Jakim typem jest pozycja?

    Jest to napisane tuż przed programem to uint16_t
    Na 4,3'' mnie nie stać :( A szkoda bo fajny wyświetlacz

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2013, o 22:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Ahh no tak, uint_16t, nie spojrzałem

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Tu czasem nie majstrowałeś?

    ------------------------ [ Dodano po: 18 minutach ]

    Poza tym u Ciebie napotka na bufor 4 (960) to przeskakuje OD RAZU na bufor 0 - spójrz sobie na if-a.
    I właśnie dlatego źle Ci działa.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Powinno pomóc.

    A najlepiej:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Odpada Ci od razu ten nieszczęsny if i 18 linia.

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 08:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2013
    Posty: 568
    Zbananowany użytkownik

    Pomógł: 31

    Błąd jest pewnie w set_frame_adr() w części wyliczającej z którego bufora ma czytać. Na początku powinno z SSDXBUF0 i z SSDXBUF1 a czyta 2 razy z SSDXBUF0.

    _________________
    Und schreien

    Spring
    Erlöse mich
    Spring
    ...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 11:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    PROTON, co może tu być źle? No powiedz.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Błąd jest tam, gdzie podałem w poprzednim poście.

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 15:21 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Po pierwsze to 1200 to ostatnia linijka piątej strony więc program wchodził by na szóstą stronę.
    Po drugie zapis
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Powoduje warnninga
    Kod:
    warning: operation on 'pozycja' may be undefined


    Z tymi definicjami nic nie kopałem, są tak jak powinny być.
    Jaka jeszcze może być przyczyna?

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 16:24 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Masz 5 ekranów po 240 linii, 5*240 = 1200, wykrywasz czy jesteś na 1200 linii (przed wyświetleniem więc nie wchodzisz na "szosty" ekran), jeżeli tak, to zmieniasz na linię nr zero czyli zapętlasz.
    To jest dobrze.

    Warning jest pewnie przez zapis w jednej linii.
    Spróbuj tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 16:38 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Nic nie dało ale nie 1200 tylko 960. Zmienna "pozycja" określa początek strony a nie jej koniec, jak jest 0 to jest początek pierwszej strony a żeby była piąta strona to 960 bo to jest początek 5 strony.

    A może mógł by ktoś wgrać mój program i sprawdzić czy u niego jest to samo.
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Do projekty należy dodać bibliotekę: PetitFS, MK_SSD1963, MK_PETIT_UTIL prosto z płyty DVD zielonej bibli.
    Częstotliwość to 16Mhz a procesor to atmega644p

    Chyba że macie jakiś jeszcze pomysł.
    Proszę o pomoc

    ------------------------ [ Dodano po: 5 minutach ]

    Po wgraniu na atmega32 i 16Mhz efekt jest taki sam. Już nie mam pomysłów. :( Czy możliwe jest aby mój sterownik od tft miał wadę? Nie twierdze że na pewno on, ale trzeba rozważyć wszystkie możliwości

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 17:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 maja 2012
    Posty: 758
    Pomógł: 9

    Ale koniec 5 bufora to 1199, czyli początek szóstego 1200. Czyli wykrywasz koniec piątej strony i potem lecisz od początku.
    Wg mnie mam rację. ;)

    _________________
    ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2013, o 18:27 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Zmienna pozycja wskazuje na początek każdego z buforów a nie ich koniec.
    Mogę zrobić tak jak ty proponujesz i nakręcić filmik jak to działa ale to niema sensu. Bo błąd nie tkwi w tym. Nawet po wywaleniu tego if nadal jest to samo.

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 10:17 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Gdy przerobiłem program aby przewijał od tyłu to efekt jest taki sam.
    Co może być za przyczyna?
    Proszę o pomoc

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 10:45 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2013
    Posty: 568
    Zbananowany użytkownik

    Pomógł: 31

    Poszukaj w kodzie czy zamiast SSDXBUF1 nie dałeś SSDXBUF0, na filmiku widać że na początku 2 razy odczytujesz SSDXBUF0.
    Pokaż lepiej cały kod.

    _________________
    Und schreien

    Spring
    Erlöse mich
    Spring
    ...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 10:49 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Cztery posty wyżej jest cały program.

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 11:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2013
    Posty: 568
    Zbananowany użytkownik

    Pomógł: 31

    Nie cały, brakuje jeszcze tego:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ale

    spróbuj może zmienić adres bufora, przesuń o jeden tak aby SSDXBUF0 nie było 0
    Może to 0 w funkcji wyliczającej adres robi bałagan.


    Nie mając pełnego kodu trudno jest zgadywać co robią funkcje.
    np:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Tutaj domyślam się że frame_ptr to zmienna globalna z której korzysta funkcja tft_bitmap_from_file, a dlaczego nie podałeś frame_ptr jako parametru a podałeś jako zmienną globalną?

    _________________
    Und schreien

    Spring
    Erlöse mich
    Spring
    ...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 11:57 
    Offline
    Użytkownik

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Tych plików ja nie mogę udostępnić ponieważ są to gotowce z płyty Pana Mirka. Które kupiłem z zieloną biblią. Ich nie można udostępniać.
    Co do adresu bufora to próbowałem nawet od tyłu 241-- i gdy weszło 240 to już przeskakuje na pierwszą stronę bez przewijania.

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 12:05 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2013
    Posty: 568
    Zbananowany użytkownik

    Pomógł: 31

    OK. Akurat na zieloną czekam, w piątek zamówiłem :)

    _________________
    Und schreien

    Spring
    Erlöse mich
    Spring
    ...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 cze 2013, o 12:06 
    Offline
    Moderator zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 18 lip 2012
    Posty: 3229
    Lokalizacja: Kraków - obok FAB5 ATMEL'a
    Pomógł: 91

    Janadamis napisał(a):
    Tych plików ja nie mogę udostępnić ponieważ są to gotowce z płyty Pana Mirka. Które kupiłem z zieloną biblią. Ich nie można udostępniać.


    Dokładnie tak. Tylko własne pliki bibliotek lub zmodyfikowane pliki Main.

    _________________
    http://www.jaglarz.info



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO