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



Teraz jest 23 sty 2025, o 13:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 4 kwi 2013, o 17:30 
Offline
Użytkownik
Avatar użytkownika

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

Witam,
natknąłem się na problem podczas stosowania timera programowego (opartego na Timerze2) w Atmedze32. Otóż projekt ma dołączony wyświetlacz LCD TFT 3.5'' od Atnela wraz z konwerterem (a zatem panelem dotykowym). Jest również ADC - pomiar 8 napięć 0-2.5V.

W czym rzecz - gdy stosuję przerwanie od timera to mi się wiesza na wyświetlaczu dotyk, nie od razu po uruchomieniu, czasami pół sekundy po a czasami 10 sekund po starcie. Nie wiem, w czym rzecz. Przerwanie uprościłem do minimum, a nawet zostawiłem je puste (!) i problem nadal występował. Gdy ustawiłem tylko rejestry od timera i nie dałem wcale obsługi przerwania (procedury ISR...) to ekran przy starcie cały czas migał (jakby się odświeżał cały czas na biało). Nie wiem, co jest grane.

Sprzęt ok, lekcja16 działa super (te suwaki).

Pewnie mam jakiegoś babola w kodzie, proszę o zerknięcie okiem bo mnie już szlag trafia...

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


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


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


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


mk_stmpe811.h
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: 4 kwi 2013, o 20:29 
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

Chętnie pobawię się tym ciekawym kodem, ale na szybko może spróbuj zastąpić w pliku mk_stmpe811.c w funkcji stmpe811_init() inicjalizację przerwań INTx takim kodem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 5 kwi 2013, o 16:31 przez Krauser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 kwi 2013, o 21:50 
Offline
Użytkownik
Avatar użytkownika

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

Dzięki za odpowiedź.
O, nie przypuszczałem nawet że to może być wina konfiguracji STMPE811. Przyjąłem po prostu kod-bibliotekę Mirka za pewnik. ;)
Nie mam teraz możliwości tego sprawdzić, ale jutro wieczorem albo w sobotę rano napiszę, czy pomogło. :)

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 kwi 2013, o 21:56 
Offline
Moderator
Avatar użytkownika

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

no tak - robiłem jakieś Copy&Paste i walnęło mi się coś takiego :(

Cytuj:
MCUCR &= (1<<ISC01); // zbocze opadające


zamiast

Cytuj:
MCUCR |= (1<<ISC01); // zbocze opadające


też tak mam w kodzie u siebie - niestety - muszę to dać do aktualizacji na stronie ;)

dzięki Krauser za znalezienie BUG'a

------------------------ [ Dodano po: 1 minucie ]

chociaż? czy ty już kiedyś o tym gdzieś tu nie pisałeś komuś? a ja zapomniałem to zaktualizować ? ;) eeeeh idę teraz od razu to zrobić ;)

------------------------ [ Dodano po: 8 minutach ]

już jest w aktualizacjach:

http://atnel.pl/uaktualnienia-programow-do-dvd.html


Autor postu otrzymał pochwałę

_________________
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: 6 kwi 2013, o 20:44 
Offline
Użytkownik
Avatar użytkownika

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

Wygląda na to, że teraz działa dobrze. ;]
Chciałbym Wam gorąco podziękować - w końcu mogę iść do przodu z magisterką. :)

Nikt nie jest nieomylny, nawet Mirek, ale jesteśmy tylko ludźmi i ja to rozumiem. ;)
Fajnie, że udało się rozwiązać problem.
Lekcja na przyszłość: nie traktować czyjegoś kodu (z bibliotek) jako w 100% działający i podchodzić krytycznie do każdej linijki. ;)

Pozdrawiam. :)

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2013, o 22:08 
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

Używanie Ctrl+C, Ctrl+V mnie też nie raz wpuściło w maliny :oops:
Przy okazji pobawiłem się programem. Coś nie tak jest z czcionką, bo zmienia się z 11 bold na default w trakcie działania w podmenu częstotliwość pomiaru, ale to kosmetyka i teraz pójdzie z górki. Klawiatura ekranowa wymagać będzie więcej pracy.

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 6 kwi 2013, o 22:33 przez Krauser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2013, o 22:13 
Offline
Moderator
Avatar użytkownika

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

Krauser napisał(a):
Używanie Ctrl+C, Ctrl+V mnie też nieraz wpuściło w maliny :oops:
....


Ja nawet wiem jak zrobiłem te babole bo najpierw napisałem obsługę na INT2, a później już na szybko chciałem bez sprawdzania w realu dopisać obsługę z kompilacją warunkową na INT0 i INT1, więc szybko CTRL+C, CTRL+V, skasowałem tyldy - ale wzrokiem niestety już nie złapałem znaków & tzn żeby je zamienić na | .... i tak wyszło. Zresztą zdaje się że przy modułach RFM12 identyczna sytuacja była w bibliotece mojej.

_________________
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: 6 kwi 2013, o 22:16 
Offline
Użytkownik
Avatar użytkownika

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

@Krauser: wiem, coś z czcionkami jest jeszcze nie halo, ale jak piszesz to już drobnostka. Dodatkowo je odchudziłem je w PixelFactory i zostawiłem tylko używane znaki dzięki czemu znacząco spadła pamięciożerność programu. ;)

Klawiaturka ekranowa przecież chodzi ładnie, co masz na myśli? Zauważyłem tylko, że nie da się wprowadzić liczby z zakresu (-1,0), ale to już jest drobnostka do poprawienia. :)

Jak masz jakieś uwagi do programu i obsługi wyświetlacza jaką stosuję (np. menu, przyciski itp) to pisz, będę wdzięczny. Słyszałem, że szalejesz na tych TFT. ;)

------------------------ [ Dodano po: 7 minutach ]

Ehhh chyba za wcześnie chwaliłem dzień przed zachodem słońca. Nadal się dotyk wiesza, tylko dużo rzadziej...

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 00:09 
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

Nie zauważyłem żadnej zwiechy a jeżdżę po ekranie. W funkcji drawButton dodałem na początku linię setCurrentFont(&DefaultFontInfo); Klawiaturka działa zbyt szybko i trudno wprowadzić jeden znak i jak jest ich więcej to przeskakuje na minus i ten znak pojawia się również zaraz za przecinkiem.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 00:21 
Offline
Użytkownik
Avatar użytkownika

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

Mi się dwa razy zwiesił od pory poprawki, ale może to wina tego, że testowałem na podłączonym USB (i programatorze co za tym idzie). Chociaż raz zawisł chyba też przy odłączonym USB i programatorze w ATB.

Dzięki za resztę uwag. Klawiaturka nie będzie raczej służyła do wprowadzania dużych liczb (temperatura, nastawy P, I, D), a "przekręca" się bo przekracza zakres inta... Z tym minusem za kropką - nie mogę dojść do tego kiedy i dlaczego się pojawia. Nieco poprawiłem klawiaturkę i teraz już można wprowadzać liczby od -1 do 0. ;)

A to, że działa zbyt szybko to hmmm nie wiem co na to poradzić. Ma wykrywać co 5 kliknięcie w cyfrę? :) Czy nie wiem kurka...

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


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


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: 7 kwi 2013, o 10:30 
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

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

w końcu trzeba przewidzieć każdą sytuację.
Czy możesz wprowadzić 0,01 ?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 21:17 
Offline
Użytkownik
Avatar użytkownika

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

Krauser napisał(a):
Czy możesz wprowadzić 0,01 ?

Nie... :/

Krauser problem dotyczy wprowadzania liczb typu x.0y
problem w tym, że część ułamkowa jest u mnie intem, a jak wiadomo 03 = 3 więc dlatego nie działają takie liczby. Jak to rozwiązać - nie wiem... Pierwszy raz w życiu implementuję klawiaturę ekranową i nie jest to takie proste jak myślałem, jeszcze gdyby można było używać double/float to by było prościej, ale na samych całkowitych to jest ciężka sprawa dla mnie...

No i działa 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.

keyNo wynosi 0, numKbdRes.fractPart wynosi 0 na początku.
Po tej linijce numKbdRes.fractPart = 10*0 + 0 = 0...
I w funkcji tftPutReal nie jest wyświetlana część ułamkowa...
Nawet jakby wyświetlać, to i tak niczego nie rozwiązuje. Bo 4.02 => numKbdRes.fractPart = 10*0 + 2 = 2 => mamy 4.2 zamiast 4.02...

------------------------ [ Dodano po: 6 minutach ]

Można dodać licznik zer pod rząd po przecinku zwiększający się z każdym naciśnięciem "0" po kropce, jedyne co mi przychodzi do głowy. I wyświetlać te zera między częścią całkowitą i ułamkową. Ale to bardzo komplikuje cofanie (backspace).

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2013, o 20:27 
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

To powinien być string. Podczas wprowadzania pilnujesz czy - i . już zostały użyte.
Jak będziesz miał "-54321,0123" to wtedy należy rozbić to na 2 stringi przy użyciu funkcji strtok. Znając długość 2 stringa (funkcja strlen zwróci powiedzmy fractIntLength) możesz po użyciu funkcji atoi używać tych liczb w taki przykładowy sposób:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zwracam tu uwagę na to, że fractPart będzie takie samo dla 0,123 i 0,0123 dlatego znajomość długości tego stringa jest kluczowa.
Nie jest to sprawdzony kod. Dlatego postaram się o działający przykład.

_________________
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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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