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



Teraz jest 24 kwi 2024, o 19:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 9 maja 2015, o 22:01 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Witam koledzy ;)

Na samym wstępie chciałbym przeprosić że w tym dziale ale PICi to anie nie Arduino anie nie ARMy więc gdzieś ten post musiałem wcisnąć, w razie co proszę o przeniesienie ;) do rzeczy..

Udało mi się ostatnio dorwać programator PICkit3 i 2 zestawy ewaluacyjne microchipa. Na początek jednak chciałem pomigać sobie klasycznie LEDem na stykówce więc zaopatrzyłem się w procek PIC18F45K80. Zainstalowałem sobie środowisko MPLAB X IDE wraz z kompilatorem XC8 ( oczywiście wersja free ). Udało mi się zamigać diodą ale mam pewien problem z kodem. Otóż napisałem sobie funkcję wait_ms taką jak poniżej:

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


i w takiej wersji ta funkcja działa. Jeżeli zaś utworze sobie zmienną lokalną we funkcji i przypisze do niej jakąś wartość to led już nie miga. Kod:

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



I o co tu cholerka chodzi?

Druga sprawa, próbuje skompilować projekt do debugowania [Build for Debbuging Main Project] i wywala mi taki komunikat:

Kod:
The program file could not be loaded: The Extended CPU Mode configuration bit is enabled, but the program was not built using extended CPU instructions.


I co to może być? Ogólnie procki są fajne i jest to jakaś alternatywa dla Atmela. Ma ktoś doświadczenia z PICami trochę żeby polecić jak tu zacząć żeby się nie zniechęcić? Środowisko jakieś i kompilator? Noty są ok, nie miałem jakoś problemów żeby coś tam napisać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2015, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

no właśnie ... bliżej im do AVR bo 8bit i rdzeń podobny tez harwardzki ....
wiec stąd wykopuję ...

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 maja 2015, o 22:20 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

No ok ;)

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

Dobra, problem rozwiązany, pogrzebałem w ustawieniach projektu i ruszyło z tą zmienną. A co do debugowania to wystarczyło dodać w kodzie linijkę:

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


i debugowanie ruszyło.

W każdym bądź razie co byście polecali do nauki na początek? MPLAB będzie ok?



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

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

tylko mplab co byś chciał więcej ?? weź nie przesadzaj .....

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 10:42 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

No ja używam PICkita 3 obecnie do programowania/debugowania i powiem że jest naprawdę fajnie :) co do MPLAB to się zgodze, środowisko potężne i dopracowane. Nie ma się do czego przyczepić. No chyba że wadą można by nazwać ilość opcji do ogarnięcia na początek :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 11:05 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

No ja będę się starał przepisywać teraz kod z AVRrów na PICi w ramach nauki. Martwi mnie tylko ten opasły i wolniejszy kod w wersji FREE kompilatora. No ale do nauki jak najbardziej wystarczy na początek. Także nota w łapki i do przodu. Nie samymi avrami człowiek żyję :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 11:16 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

spoko, jak będę miał jakieś pytania będę się zgłaszał ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 11:53 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Kurde, zgłupiałem już. Dzisiaj sobie od nowa wszystko odpaliłem i kod poniższy mi nie działa... nie mam w sumie pojęcia dlaczego..

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


Może jakoś te bity konfiguracyjne muszę przestawić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2015, o 12:23 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Dzięki za info, mógłbyś zapodać jakiś swój przykładowy kod blinka? Byłbym bardzo wdzięczny..

------------------------ [ Dodano po: 17 minutach ]

ok, ruszyło. Odznaczyłem te opcje:

Obrazek

i zmieniłem ustawienia zegara na poprawne :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2015, o 08:25 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Dzięki, wszystko mi już ruszyło elegancko tylko nie wiem jak bujnąć to PLL razy 4 bo jak ustawiam _XTAL_FREQ 64000000L to mi ten delay strasznie długo trwa a jak wpisze 16000000L to działa dobrze...

Znalazłem super materiały, co prawda po angielsku ale super wytłumaczone wszystko:

Do poczytania online za free:

http://www.mikroe.com/products/view/285 ... ming-in-c/
http://www.mikroe.com/products/view/11/ ... ntrollers/

Polecam :D

------------------------ [ Dodano po: 20 minutach ]

Twój kod z timerami mam zamiar przejrzeć i przerzucić się na timerki programowe bo nie lubię delayów ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2015, o 19:06 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Dobra, doszedłem co było nie tak. Nie wiedzieć czemu, ustawiłem bity SCS na 10. Teraz wszystko pięknie śmiga, co prawda na delayu ale można startować bo ustawianie zegara mam już opanowane :) Poniżej kodeł, musiałem dodać kod do konfiguracji bitów konfiguracyjnych bo nie wiedzieć czemu po każdym wgraniu wsadu w zakładce Config Bit Source mi się wszystko resetowało.

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



Dziękuje Ci Anty za pomoc. Pomógł leci :) Nie omieszkam Cie pewnie jeszcze nie raz o coś zapytać :)

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

a, chciałem jeszcze tylko napisać że trochę się zawiodłem bo myślałem że procek będzie mega szybki z uwagi na te 64MHz ale niestety się przeliczyłem. Jak się okazuje PICe mają 4 stopniowe przetwarzanie potokowe i wykonanie jednej instrukcji zajmuje im 4 takty zegara. Także jakby nie patrzeć PIC na 64MHz jest tak szybki jak ATmega na 16... no bo avry przecież mają 1 cyklowe rozkazy w większości... Muszę kiedyś jakiegoś "benchmarka" im zapuścić typu projekt wielozadaniowy i zobaczyć co będzie szybsze/sprawniejsze. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2015, o 16:28 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Kurcze, dzisiaj usiadłem i chciałem odpalić przerwania. Niestety po kilku godzinach prób i zaglądania w note nie wiem co już robię źle... Proszę jeszcze raz o pomoc... Chciałem zrobić timer programowy ale narazie nawet w przerwanie nie chce mi wejść...

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2015, o 17:31 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Dobra, pogrzebałem w googlach i okazało się że trzeba ustawić WSZYSTKIE bity w rejestrze TCON! Obojętnie czy to zera czy jedynki. Diodka miga już co 500ms :)

Kod dla potomnych:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2015, o 21:02 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ten sposób też znam, kombinowałem z różnymi opcjami ;)

Z jakiego programatora/debugera korzystasz? Mam u siebie taki problem że jak włączam debugowanie to zaznaczone breakpointy są zaznaczane jako zepsute i gdy włącze pauze to nie pokazuje mi w którym momencie programu zatrzymałem procka. Może ten Pickit którego mam jest jakiś walnięty?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2015, o 21:37 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

No mi też to debugowanie nie jest jakoś niezbędne ale skoro mam już Pickita3 to bym chciał żeby to hulało... no nic. Szperam dalej, może coś wynajde.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2015, o 21:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

https://www.youtube.com/watch?v=ordBL6mkxK0

myślę że to wyjaśni wszystko

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2015, o 22:39 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ten film już widziałem trzy razy. U mnie po odpaleniu debuga licznik programu się aktualizuje ale nie działają brakpointy i nie pokazuje w której lini program jest.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 maja 2015, o 16:33 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ech, doszedłem dlaczego mi to wszystko nie działało. Okazało się że winna wszystkiemu była ścieżka do folderu z projektem... Zawierała w nazwie litere "Ł". Po przeniesienu workspace'a gdzie indziej, wszystko już elegancko śmiga.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 maja 2015, o 16:49 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Polak mądry po szkodzi, no ale mam nauczkę na przyszłość :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 08:23 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Mały update tematu...

W przyzwyczajeniu do AVR'ów chciałem sobie do PIC'a podłączyć jakiegoś uSwitcha. Po godzinie bojów i nie działania prostego programu okazało się że w moim PIC'u niektóry piny po resecie domyślnie są ustawione jako wejścia do ADC... Wystarczyło przestawić bity w rejestrach ADCON1 i ADCON2 :) Dlatego wszech i wobec ogłaszam...

LUDZIE, czytajta dokumentacje! :lol:

------------------------ [ Dodano po: 3 minutach ]

a, zapomniałbym.

Kupiłem sobie tę książkę;

http://helion.pl/ksiazki/mikrokontroler ... mipicp.htm

jak ktoś zna podstawy C z bluebooka i nie denerwuje go wtrącanie jakiś mało śmiesznych żarcików do książki technicznej to śmiało mogę ją polecić. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 12:24 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Dzisiaj po raz kolejny apdejtuje temat :) Co by nie mówić ale ATB to mega uniwersalny zestaw uruchomieniowy... jest tam wszystko żeby zacząć z kążdą rodziną procków :) Przykład poniżej:

Obrazek


Właśnie testuje nową biblioteke do HD44780 pod PIC'e ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2015, o 07:16 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Antystatyczny napisał(a):
Microchip ma dla Ciebie niespodziankę w postaci libsów do układów peryferyjnych procków



Wiem, wiem, ale mnie zawsze jakoś odrzuca od stosowania gotowców. Wolę sam sobie usiąść i napisać coś. Wtedy się człowiek najwięcej uczy :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2015, o 12:31 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Kurcze, ciekawe.. A możesz powiedzieć które to bity? Bo ja u siebie jakoś nie widzę czegoś co by miało związek z tym o czym piszesz :( ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2015, o 22:11 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Anty, mam pytanie do Ciebie szczere. Nie wkurza Cię że 8 bitowe pice mają jeden wspólne wektor przerwania pod który skaczą i trzeba w przerwanie pełno ifów wrzucać? Właśnie piszę bibliotekę do EUSARTA i mnie to drażni... bo już mam dwa timerki odpalone w trybie normal.



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

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