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



Teraz jest 8 lut 2025, o 16:05


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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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: 27354
Lokalizacja: Szczecin
Pomógł: 1042

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 0 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