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 w 2025? 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 1 maja 2025, o 11:11


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ] 
    Autor Wiadomość
    PostNapisane: 20 paź 2012, o 23:38 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Witam,
    Przy wykonywaniu ćwiczenia z panelem dotykowym natkąłem na dziwny problem. Otóż przy prostym programiku który zmienia kolor tła przy dotknięciu działa prawidłowo (w programie nie jest wykorzystany odczyt współrzędnych); problem pojawia się dopiero gdy przechodzę do odczytu współrzędnych z STMPE811, mianowicie współrzędne udaję się odczytać raz, dwa, rzadziej trzy. Po tym nic się nie dzieje - brak reakcji na dotyk.
    Początkowo myslałem, że błąd leży w moim programie (w ramach nauki napisał go samodzielnie), jednak po załadowaniu programu z płytki jest dokładnie tak samo.
    Dodam, że pracuję na Atmega644PU - akurat taki miałem. Żeby odpalić bibliotekę mk_stmpe811.c musiałem dokanać jej modyfikacji (w Atmega644PU są inne rejetry w porównaniu do użytej przez Mirka Atmega32).
    Oryginalny fragment:

    Kod:
    #if USE_IRQ_NR == 0
       // inicjalizacja przerwania synchronicznego INT0
    //   IRQ_DIR    &= ~IRQ_PIN;
       IRQ_PORT    |= IRQ_PIN;
       GICR      |= (1<<INT0);
       MCUCR      &= (1<<ISC01);    // zbocze opadające
    #endif

    #if USE_IRQ_NR == 1
       // inicjalizacja przerwania synchronicznego INT1
    //   IRQ_DIR    &= ~IRQ_PIN;
       IRQ_PORT    |= IRQ_PIN;
       GICR      |= (1<<INT1);
       MCUCR      &= (1<<ISC11);   // zbocze opadające
    #endif

    #if USE_IRQ_NR == 2
       // inicjalizacja przerwania asynchronicznego INT2
    //   IRQ_DIR    &= ~IRQ_PIN;
       IRQ_PORT    |= IRQ_PIN;
       GICR      |= (1<<INT2);
       MCUCSR              &= (1<<ISC2);   // zbocze opadające
    #endif



    Zmiany które wprowadziłem:

    Kod:
    #if USE_IRQ_NR == 0
       // inicjalizacja przerwania synchronicznego INT0
    //   IRQ_DIR    &= ~IRQ_PIN;
       IRQ_PORT    |= IRQ_PIN;
       EIMSK      |= (1<<INT0);
       EICRA      &= (1<<ISC01);    // zbocze opadające
    #endif

    #if USE_IRQ_NR == 1
       // inicjalizacja przerwania synchronicznego INT1
    //   IRQ_DIR    &= ~IRQ_PIN;
       IRQ_PORT    |= IRQ_PIN;
       EIMSK       |= (1<<INT1);
       EICRA      &= (1<<ISC11);   // zbocze opadające
    #endif

    #if USE_IRQ_NR == 2
       // inicjalizacja przerwania asynchronicznego INT2
    //   IRQ_DIR    &= ~IRQ_PIN;
       IRQ_PORT    |= IRQ_PIN;
       EIMSK      |= (1<<INT2);
       EICRA               &= (1<<ISC2);   // zbocze opadające
    #endif



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 00:02 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    Czy działa program z dvd ??? Lekcja z touch panelem ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 00:39 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Cytuj:
    Czy działa program z dvd ??? Lekcja z touch panelem ?


    Działa tak samo jak mój



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 09:02 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    poczekaj poczekaj - bo cosik nie mogę zrozumieć - w czym dokładnie problem - może zapytam inaczej - czy testujesz to na wyświetlaczu i konwerterze ATB-GLCD z naszej firmy ? czy na czym ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 09:49 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Poniższe linie nie są zgoddne z tym co chcesz zrobić (komentarzem)
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 10:56 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Cytuj:
    Poniższe linie nie są zgoddne z tym co chcesz zrobić (komentarzem)


    No rzeczywiście, moje niedopatrzenie :) Po wprowadzeniu poprawki nic się nie zmieniło - pewnie dlatego, że wcześniej zadeklarowałem użycie INT0:

    Kod:
    #define USE_IRQ_NR    0


    Niemniej dzięki za cenną uwagę ;)

    Cytuj:
    poczekaj poczekaj - bo cosik nie mogę zrozumieć - w czym dokładnie problem - może zapytam inaczej - czy testujesz to na wyświetlaczu i konwerterze ATB-GLCD z naszej firmy ? czy na czym ?


    Zarówno wyświetlacz (3,5") jaki i konwerter kupiłem oczywiście w sklepie Atnel :)
    Żeby zobrazować problem nagrałem filmik: http://www.youtube.com/watch?v=oItuG_nMiPM&feature=youtu.be
    Filmik jest kiepskiej jakości ale mam nadzieję, że istota problemu jest widoczna.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 11:47 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    No to teraz widzę, że się zawiesza - na pewno tak nie powinno być - zdecydowanie ....

    ale największe moje zdziwienie budzi fakt, że nie działa ta lekcja z DVD - oczywiście na procesorze ATmega32 testowałeś ??? czy nie ?

    Bo jeśli nie to nadal może być kłopot że coś źle przeportowałeś na ATmega644P albo coś źle podłączyłeś.

    Jeśli więc nie masz ATmega32 - to spakuj swój cały projekt do ZIP'a i mi podeślij - zapodam m644P do zestawu ATB i sprawdzę go ;)

    Najpierw wolałbym sprowadzić wszystko do wspólnego mianownika - czyli żeby zadziałał nam wspólnie ten jeden podstawowy przykład. A dodam - że oczywiście przed wysłaniem wyświetlacza do KAŻDEGO - sam osobiście wgrywam tę właśnie lekcję z DVD i testuję to wszystko przesuwając te suwaki, klikając także w klawisz CLEAR i to kilkakrotnie na zmianę wszystko. Inaczej bym nie wypuścił tego dalej do sprzedaży.

    czekam więc na wsad - chyba że masz ATmega32 ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 13:59 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Dodałem filmik na którym widać, że wszystko działa jeżeli tylko sprawdzam flagę st_intX_flag, mianowicie:
    Kod:
    while(1)

                   {
                   if( st_intX_flag ) {
                      switch( i )
                      {
                      case 0:
                         tft_cls(black);
                          break;
                      case 1:
                         tft_cls(red);
                          break;
                      case 2:
                         tft_cls(green);
                         break;
                      case 3:
                         tft_cls(blue);
                      break;
                      case 4:
                         tft_cls(lime);
                      break;                  
                      case 5:
                         tft_cls(white);
                      default:
                         tft_cls(cyan);
                         i=0;
                          break;
                      }

                      i++;
                      st_intX_flag=0;
                   

                               }

                   }


    http://www.youtube.com/watch?v=d74G9kAiyow&feature=youtu.be
    Programik napisany na szybko; zmienia kolor tła przy dotyku.

    Cytuj:
    czekam więc na wsad - chyba że masz ATmega32?


    Niestety z podobnych mam tylko ATmegę128 (w obudownie smd)
    Wysłałem w załączniku projekt z płytki DVD, tylko ze zmienioną biblioteką, którą użyłem na filmiku.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 14:19 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    ale to projekt dla ATmega644P ?

    podeślij mi go na maila: biuro@atnel.pl

    a nie tutaj w załączniku ok ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 14:28 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Cytuj:
    ale to projekt dla ATmega644P ?

    Tak.
    Cytuj:
    podeślij mi go na maila

    Poszło :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 paź 2012, o 14:39 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    Ok - ale sprawdzę dopiero jutro jak będę w firmie i dam ci znać czy u mnie to działa

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 paź 2012, o 12:23 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    Właśnie przetestowałem twój nadesłany wsad. Działa - tzn długo męczyłem suwaki, klawisz "clear" i w ogóle cały wyświetlacz. Żadnego zawieszenia - żadnego kłopotu - więc wydaje się że wsad jest prawidłowo przez ciebie przerobiony. (Nawet już go nie analizowałem - bo jak mówię wszystko śmiga ładnie)

    Kurczę - może sprawdź jeszcze raz wszystkie przewody, połączenia - szczególnie to od przerwania oraz I2C .... jeśli nadal będzie to samo - to chyba będzie trzeba przesłać do nas ten wyświetlacz tzn cały komplet - sterownik+wyświetlacz i sprawdzimy jak najszybciej czy przypadkiem to nie jego wina.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 paź 2012, o 14:21 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Okej, wieczorkiem sprawdzę wszystko jeszcze raz i dam znać czy pomogło :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 paź 2012, o 17:45 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 lut 2012
    Posty: 123
    Lokalizacja: Reda
    Pomógł: 0

    Też miałem na początku problemy, jednak zawsze okazywało się że wina leży w programie, albo w kabelkach.
    Po szybkości działania, widzę że kolega nie ma za szybkiego taktowania, pewnie max 8MHz, proponuję zwiększyć do 16, ja miałem problem przy małych MHz. Podobnie miałem problem przy kabelku INT, wystarczy że od go odłączysz na chwilę, albo chwilowy zanik połączenia i cały program się zawiesza... Podobne objawy co Ty miałem przy migracji kodu do xmegi128 i megi128, zobacz jeszcze raz czy dobrze ustawiłeś rejestry przerwania, w/g mnie komunikacja I2C działa dobrze, bo dostajesz odpowiedź o współrzędnych.
    Jakbyś potrzebował moje ustawienia dla 128 to daj znać.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 08:34 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Niestety zabrakło mi wczoraj czasu na sprawdzenie połączeń :(

    Cytuj:
    Po szybkości działania, widzę że kolega nie ma za szybkiego taktowania, pewnie max 8MHz


    Właściwie też mnie to zastanawia, bo używam taktowania 16MHz

    Cytuj:
    zobacz jeszcze raz czy dobrze ustawiłeś rejestry przerwania


    U Mirka mój program z przerobioną biblioteką bez problemu, więc chyba to nie tu jest problem.

    Co do ustawień na mega128 to chętnie się zapoznam z Twoją wersją ;) na PW wysłałem Ci swojego maila.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 17:34 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2012
    Posty: 101
    Pomógł: 5

    Sprawdziłem dziś dokładnie całą kabelkologię i układ zachowuje się tak samo. Czy prawdopodobne jest, że to procek jest winowajcą? Co prawda wyciągnąłem go jako nówkę z szuflady, ale kto tam wie. Niestety nie mam nic na podmiankę oprócz wspomnianych ATmeg128 :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 18:19 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    coolpablos napisał(a):
    Sprawdziłem dziś dokładnie całą kabelkologię i układ zachowuje się tak samo. Czy prawdopodobne jest, że to procek jest winowajcą? Co prawda wyciągnąłem go jako nówkę z szuflady, ale kto tam wie. Niestety nie mam nic na podmiankę oprócz wspomnianych ATmeg128 :(

    To może spróbuj drugą. Wszystkie przecież nie będą walnięte ;)

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 18:35 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    Mnie się nie wydaje żeby procek był winowajcą :( co to miałoby być za uszkodzenie procka ? Poza tym bardzo łatwo to sprawdzić na byle jakiej innej aplikacji np z I2C.....

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 18:48 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    Mnie się Mirku też nie wydaje, ale jak Kolega ma takie wątpliwości... niech spróbuje. ;)
    Zresztą w ten czy inny sposób.

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 18:52 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    Nie - no - ja nawet sobie nie wyobrażam nie mieć pod ręką dwóch takich samych procków - szczerze mówiąc - ponieważ zawsze gdy przychodzi wątpliwość - jak człowiek siedzi już wiele godzin i nie może znaleźć babola - gdy podświadomość szyderczo podszeptuje nam:

    "a może to procek, a może to procek, a może ..... " ;)

    to wtedy myk - drugi procek - i jeśli nadal ten sam efekt to wylewamy kubeł zimnej wody naszej podświadomości na głowę - i przestaje gderać ;) przynajmniej na jakiś czas

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 18:59 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    mirekk36 napisał(a):
    Nie - no - ja nawet sobie nie wyobrażam nie mieć pod ręką dwóch takich samych procków - szczerze mówiąc - ponieważ zawsze gdy przychodzi wątpliwość - jak człowiek siedzi już wiele godzin i nie może znaleźć babola - gdy podświadomość szyderczo podszeptuje nam:

    "a może to procek, a może to procek, a może ..... " ;)

    to wtedy myk - drugi procek - i jeśli nadal ten sam efekt to wylewamy kubeł zimnej wody naszej podświadomości na głowę - i przestaje gderać ;) przynajmniej na jakiś czas

    hihihihi Dobre. Uśmiałem się!

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 paź 2012, o 21:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 lut 2012
    Posty: 123
    Lokalizacja: Reda
    Pomógł: 0

    Zobacz czy masz podobnie... jednak ja mam INT podłączony pod port PE7 i wygląda to tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Nie będę wklejał tych linijek gdzie zmieniałem makrodefinicje portów, bo pewnie i tak masz inaczej...
    Daj znać czy coś pomogło.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 gru 2012, o 03:05 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Spróbuj zmniejszyć prędkość I2C do 200kHz lub sprawdź czy masz włączone zewnętrzne rezystory podciągające linie SDA i SCL.

    _________________
    Dragonus Cracovus: Biomagia



    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: 23 ] 

    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO