Skocz do zawartości

[Programowanie] Mikrokontrolery Microchip PIC. Część 2


BlackJack

Pomocna odpowiedź

Czyli co jest potrzebne aby zacząć tresować swojego Picusia.

Zgodnie z zapowiedzią zajmiemy się dzisiaj opisem narzędzi które musimy skompletować aby rozpocząć przygodę z mikrokontrolerami PIC. Postaram się przedstawić programatory, środowisko programowania, oraz jak się nie zgubić w dżungli Microchipa, przy wyborze swojego CPU. Poszukamy odpowiednika dla ATTiny2313 i gwarantuję wam, że wynik naszych poszukiwań oraz jego cena rynkowa, zostawi was z opadem szczęki.

Programator

Zacznijmy może od sprzętu. Pierwszą rzeczą jaką musimy się zainteresować jest programator. Do wyboru mamy urządzenia oferowane przez Microchipa, jak i parę klonów, które można kupić na Allegro. Ja jednak chciałbym się najpierw skupić na urządzeniach oferowanych przez Microchipa, bo nie są tragicznie drogie, a co układ oryginalny to oryginalny. Dla początkujących chyba najlepszym wyborem jest PICKIT2 lub PICKIT3, programatory te można co prawda kupić osobo, ale lepszym wyborem jest zakup ich w tgz. StarterKitach, bo dostajemy od razu do niego płytkę startową z procesorem co pozwala zacząć zabawę od razu. Zestawów tych jest kilka, różnią się nie tylko ceną ale także dołączoną płytką startową i procesorem na niej. ja wybrałem kilka prostszych i tańszych.

IMG_4f020a7d7fb352748.jpg

Najtańszy to PICKIT2 nr. Kat DV164120. Kosztuje ok139,00zł + VAT. W zestawie znajduje się programator PICKIT2, płytka z procesorem PIC16F690, kabel USB i oprogramowanie niezbędne do rozpoczęcia pracy, oraz instrukcja.

PICkit2 Debug Express nr.kat DV164121. Koszt 240zł + vat. Podobnie jak wyżej, ale na płytce mamy większy 44 końcówkowy procesor PIC16F887 w SMD.

PICkit 3 Debug Express, nr. Kat DV164131. Koszt 217zł + vat.. Zawiera oprogramowanie MPLAB IDE oraz kompilator C HI-TECH PICC LITE, kompilator CCS do układu PIC18F45k20, instrukcję obsługi, przykłady ćwiczeń i kabel USB. Programator to PICKIT3.

Oczywiście można kupić osobno same programatory PICKKIT2 i 3, ale biorąc pod uwagę ich ceny jest zwyczajnie nieopłacalne. Są co prawda jeszcze inne zestawy i programator/debuger IDC3, ale cenowo są droższe.

Wszystkie te zestawy i więcej można znaleźć w sklepie ELFA. Ceny także pochodzą z tego sklepu.

Na Allegro pod hasłem PICKIT udało mi się znaleźć dwa takie programatory ➡️

Pierwszy kosztuje ok 129zł drugi 139zł, oba układy są klonami oryginalnych PICKIT2, przy czym pierwszy posiada dodatkowo podstawki do programowania CPU.

Oczywiście istnieją także, alternatywne programatory jak np. JUPIC. Którego opis można znaleźć w Internecie. Ale niestety wadą takiego programatora jest to ze trzeba mieć zaprogramowanego PICa, aby go zbudować.

http://ajpic.zonk.pl/jupic/index.php

Swego czasu alternatywny programator miała w ofercie Firma Kamami, ale nie jest już w ofercie, ale posiadają PICKIT2/3 oraz IDC3.

Ja bym jednak chciał się na chwilę zatrzymać przy PICKIT2, który też sam posiadam. Otóż to nie tylko programator i debugger² w jednym, ale także całkiem przydatne narzędzie warsztatowe które mieści się w kieszeni koszuli, ponieważ po ściągnięciu dodatkowego darmowego oprogramowania ze strony Microchipa, zamienia się nam w mały analizator stanów logicznych, lub generator, co zapewne jest jego plusem.

Ciekawą funkcjonalnością PICkit’ów jest Programmer-To-Go. Gdy korzysta się z tej funkcji, w pamięci nieulotnej programatora za pomocą komputera PC zostaje umieszczony specjalny obraz służący do zaprogramowania mikrokontrolera lub pamięci EEPROM w układzie docelowym. Po dołączeniu do programowanego układu PIC wystarczy nacisnąć guzik umieszczony na obudowie PICkit’a, a proces programowania odbędzie się bez udziału komputera PC. Jest to bardzo przydatne przy wykonywaniu aktualizacji oprogramowania lub produkcji małoseryjnej. Niestety, programator nie może być zasilany za pośrednictwem złącza programującego, lecz musi mieć doprowadzone napięcie +5 V do złącza USB. Można w tym celu zastosować zasilacz lub dostępny interfejs dowolnego hosta USB.

Tabelka porównuje najważniejsze cechy i różnice miedzy PICKIT2 i 3.

W trakcie pisania tej części, w pierwszym temacie wybuchła gorąca dysputa o programatorach dla PICów, ja się nie będę tutaj do niej odwoływał, ale od siebie powiem, że po doświadczeniach z AVRemi i programatorami do nich, rozpoczynając przygodę z PICami wyszedłem z założenia że lepiej zainwestować raz a dobrze, niż mieć potem pół szuflady programatorów bo jeden umie to drugi tamto.

Co do wsparcia przez PICKIT 2 nowszych procesorów, to różnica jest taka że z MPLABa, na PICKIT 2 nie zaprogramujemy bezpośrednio nowszych proców, ale można to zrobić bezproblemowo, z zewnętrznej aplikacji dla tego programatora.

Chciałbym także wspomnieć tutaj o PICDUINO czyli odpowiedniku ARDUINO ale dla procesorów PIC. Takowy zestaw oferuje AVT, jest on kompatybilny z modułami rozszerzeń do ARDUINO, na pokładzie posiada procesor PIC18F2550 (z wbudowanym USB 2.0), ale można tam włożyć inny 28 końcówkowy procesor zgodny pinowo, chodzi głownie o zasilanie, np. PIC16F1936.

Cena zestawu do samodzielnego montażu to 67zł, a zmontowanego 94zł.

Całkiem sporą ofertę ma także ELFA oraz Kamami, aczkolwiek ELFA ma oryginalne płytki z Microchipa, ale w rozsądnych cenach.

Tylko wpisując w Google ELFA nie zapomnijcie dopisać Elektronics, bo może wam znaleźć system zabudowy mebli pod tą samą nazwą. 🙂

Środowisko programowania

Tutaj jakiegoś wielkiego szału ani wyboru nie ma, i to w pewnym sensie jest plus. Oczywiście na PICi powstały kompilatory wszystkich bardziej znaczących języków programowania jak C, Pascal, czy nawet jest środowisko BASIC, choć od razu mówię że nie ma ono nic wspólnego z BASCOMEm i raczej przypomina C.

Na stronie Microchip mamy dostępne środowisko MPLAB IDE V8, które jest chyba najpopularniejsze, W skład w chodzi komplet narzędzi, asembler, oraz kompilator HI-TECH C dla procesorów PIC10/12/16 w wersji Lite. jest on doinstalowany osobno, w trakcie głównej instalacji MPLAB.

Ta wersja kompilatora ma jedynie takie istotne ograniczenie, ze nie można jej stosować komercyjnie, czyli do produkcji, oraz że nie pozwala wybierać stopnia optymalizacji podczas kompilacji, więc jesteśmy skazani na narzuconą nam optymalizacje kodu wynikowego.

Środowisko jest darmowe i można sobie je bez problemu ściągnąć. Po rejestracji, można także bez problemowo ściągać kompilatory dla PIC18/24 i 32, oczywiście też w wersji Lite.

Od jakiegoś czasu MIcrochip promuje także jego nowszą odsłonę o nazwie MPLAB®X IDE, jest ono także do pobrania z ich strony, ale na razie jest to program w wersji Beta, czyli testowej i może działać niestabilnie. Prawdopodobnie w przyszłości zastąpi on MPLAB IDE.

Poniżej umieściłem wykaz kompilatorów dla PICów, część z nich jest samodzielna, część integruje się z MPLAB.

➡️ MPLAB C Compiler for PIC18 MCUs

Kompilator C dla procesorów PIC18. Produkt Microchipa. Posiada darmową wersję studencką

➡️ MPLAB C Compiler for PIC24 MCUs and dsPIC DSCs

Kompilator C dla procesorów PIC24F, PIC24H, dsPIC30F i dsPIC33F. Własny kompilator Microchipa stworzony na bazie gcc. Posiada darmową wersję studencką

➡️ MPLAB C Compiler for PIC32 MCUs

Kompilator C dla procesorów PIC32. Własny kompilator Microchipa stworzony na bazie gcc. Posiada darmową wersję studencką

➡️ Hi-Tech C Compiler

Hi-Tech udostępnia kilka różnych kompilatorów obsługujących wszystkie mikrokontrolery i mikroprocesory firmy Microchip

➡️ IAR Embedded Workbench for dsPIC

Zintegrowane środowisko uruchomieniowe dla procesorów dsPIC. Zawiera kompilatory C i C++

➡️ IAR Embedded Workbench for PIC18

Zintegrowane środowisko uruchomieniowe dla procesorów PIC18. Zawiera kompilatory C i C++

➡️ CCS PCxx

Kompilatory C dla procesorów PIC10, PIC12, PIC14, PIC16 i PIC18. Obsługa rodzin szesnastobitowych w planach

➡️MicroBASIC , MikroPascal i MikroC

Kompilatory Basica, Pascala i C dla procesorów PIC12, PIC16, PIC18 i dsPIC30F

➡️ BoostC

Kompilatory C dla procesorów PIC16, PIC18 i niektórych z rodziny PIC12

➡️ CC5X

Kompilator C dla procesorów PIC10, PIC12, PIC14 i PIC16

➡️ CC8E

Kompilator C dla procesorów PIC18

➡️ SDCC

Small Device C Compiler - kompilator darmowy i Open Source. Prace nad obsługą procesorów PIC16 i PIC18 są w trakcie

Spośród tej listy dosyć ciekawo prezentuje się MicroBASIC . Jego Demo ma ograniczenie kodu wynikowego do 2KB, ale jest to zintegrowane środowisko. Co prawda nie miałem, okazji jeszcze nic w nim pisać, ale z takiego szybkiego przeglądu, na stronie producenta, ma ono dosyć dobrą i czytelną dokumentację, popartą sporą ilością zrzutów ekranu.

Jak odnaleźć się w gąszczu procesorów ?

W poprzedniej części obiecałem że pokaże jak wybrać odpowiednie CPU dla swojego projektu. W przypadku PICów a szczególnie 8-bitowych nie jest to takie proste, ponieważ mamy tutaj kilka odmian samego rdzenia, jak też pewien bałagan przyjęty w rozwiązaniach rozkładu pinów scalaka w tym zasilania, co oznacza że nie każdy procesor z każdym nawet w tej samej obudowie da się zamiennie stosować.

Może zacznijmy od samych rdzeni, otóż przez lata opracowana kilka odmian 8-bitowych rdzeni które przypisano do różnych zastosowań, różnią się wydajnością, ilością instrukcji, wielkością sprzętowego stosu oraz ilością peryferii którymi są obudowane, choć to akurat dynamicznie się zmienia ostatnio.

Ogólny podział przedstawia tabelka.

Jak łatwo zauważyć odnalezienie się w tym gąszczu na początku jest nie łatwe. Ale i z tym można sobie poradzić, i postaram się zaprezentować kroki jak to zrobić.

💡 Krok pierwszy.

Na samym początku musimy określić czego potrzebujemy do naszej aplikacji, czyli :

Ile końcówek I/O procesora jest nam potrzebne ? Przy czym należy uwzględnić czy chcemy mieć procesor programowany w układzie, jeżeli tak to czy chcemy programować wysokim napięciem, czy niskim ? W tym drugim przypadku musimy poświęcić dodatkowo jedną linię procesora. Czy chcemy korzystać z kwarcu, jeżeli tak to przynajmniej 2 dodatkowe linie które nam znikną. Należy także pamiętać, ze jeżeli linię MLCR (RESET) mamy zamiar używać jako portu to może ona być tylko wejściem cyfrowym, oraz dodatkowo nie posiada ona tgz. Pull-UP, czyli rezystora podciągającego do plusa zasilania.

Niektóre nowsze procesory z linii XLP jak wspomniany PIC16F1936 w wersji wysokonapięciowej czyli na 5V (z literką F w oznaczeniu) pozwalają na zasilanie procesora dwu napięciowo, czy peryferia napięciem 5V (VCC) a rdzeń 3,6V poprzez aktywowanie wewnętrznego stabilizatora LDO, jednak wtedy musimy poświecić jeden pin CPU na dołączenie zewnętrznego kondensatora do tegoż stabilizatora. Po uwzględnieniu tych niuansów i dodaniu potrzebnej nam ilości portów otrzymujemy ile potrzebujemy końcówek CPU, przy czym dobrym zwyczajem jest zostawić sobie zapas i dodać co najmniej 2.

Na tej podstawie wiemy w jakiej obudowie szukać CPU, ale to jeszcze nie wszystko.

💡 Krok drugi.

Skoro wiemy już orientacyjnie ile potrzebujemy pinów procesora, należy jeszcze określić co byśmy chcieli mieć w środku i jakiej wydajności oczekujemy. Od wydajności bezie zależał wybór rdzenia, a co za tym idzie taktowania. Trochę więcej problemu jest przy oczekiwanych peryferiach, ponieważ tutaj czasami sprawę komplikuje trochę specyficzna budowa PICów. Otóż np. Timery w nie są tak elastyczne jak w AVRach. co gorsza ich funkcje alternatywne / dodatkowe, są często sztywno przypisane dla danego timera, co narzuca pewne ograniczenia sprzętowe w czasie projektowania i doboru.

Jak sobie z tym poradzić ? Najlepiej wejść sobie na stronę Microchipa i z ramki Products wybrać interesującą nas rodzinę procesorów, w naszym przypadku 8-bits. Klikamy, i zostaniemy przeniesieni na stronę poświęconą tym produktom. Po Lewej stronie na samym dole mamy zakładkę Find Products klikamy i rozwinie sie nam lista rodzin CPU, narzędzie do poszukiwań oraz sklep.

Teraz do wyboru mamy dwie drogi, albo jeżeli decydujemy się narzędzie do poszukiwań, albo wybieramy konkretną linię np. PIC16 i szperamy samy w notach.

Najlepiej chyba jednak skorzystać z metody mieszanej, czyli najpierw typujemy kilka CPU korzystając z narzędzia Product Selection Tool po czym pojawi się nam strona z następującym narzędziem.

Ja postanowiłem poszukać odpowiednika dla ATTiny 2313, jednak uwzględniając kompilator C założyłem że zamiast 2KB pamięci programu powinno być jej co najmniej 4KB. Zegar 20MHz, dwa kanały PWM po 10bit, przynajmniej 8 kanałów ADC 10-bit i jeden komparator analogowy. Program wytypował nam 4 CPU, spełniające te kryteria. Jak sie szybko przyjrzymy ich wyposażeniu to szybko dojdziemy do wniosku ze tak naprawdę otrzymamy znacznie lepsze CPU niż zakładaliśmy, bo minimów to 7KB pamięci programu, a taktownie to 32MHz max. Skąd te 7KB przecież to nietypowo, ponieważ pamięć programu ma organizację że jedna instrukcja to jedno słowo, więc nie jest 8-bitowa, tylko np 14, co po przeliczeniu daje np. te 7KB, stad takie nietypowe wartości.

Nie polecam natomiast zaznaczania sobie timerów, bo może to nieco namieszać w typowaniu, nie koniecznie na naszą korzyść, za chwile powiem dla czego.

To oczywiście nie koniec poszukiwań, teraz należało by się przyjrzeć poszczególnym wytypowanym CPU. Wystarczy kliknąć na dany procesor w tabelce i zostaniemy przeniesieni gdzie trzeba. Jak wybrałem pierwszy proc z listy.

Trzeba przyznać że niezły procesorek się nam ujawnia, 32MHz i to węwnetrznego oscylatora puszczonego przez PLL. 4-8bitowe timery jeden 16-bitowy, a nawet obsługa 12 kanałowej klawiatury pojemnościowej.

Ale na tym etapie nie należy jeszcze wpadać w euforię i na dole strony otworzyć sobie notę katalogową CPU.

W niej dobrze sobie sprawdzić jak wygląda ukąłd oscylatora, w naszym przypadku jest sopko bo mamy az 3 możliwe źródła taktowania, i PLL który pozwala uzyskać 32MHz.

Drugą bardzo ważną sprawą jest określenie co potrafią Timery, a właściwie jak są powiązane z modułami CCP (Capture/Compare/PWM Modules) bo od tego zależy co gdzie będziemy mieli sprzętowo przypisane i czy mamy dwa osobne PWMy czy tylko jeden 4 kanałowy. Dla tego pisałem wcześniej że lepiej nie ruszać pola Timers w wyszukiwarce CPU. W naszym przypadku na szczęście mamy dwa osobne PWMy, natomiast tryb Compare (odpowiednik CTC w AVR) jest na stałe przypisany do Timera 1, podobnie jak tryb Capture (przechwytywanie).

Z innych ciekawostek jakie wyczytamy to, zę posiadamy do dyspozycji 5 bitowy przetwornik DAC, który właściwie jest napięciem odniesienia dla ADC, ale można go używać osobno. No i wisienka na torcie czyli sprzętowy moduł DSM (Data Signal Modulator) który pozwala, kodować i modulować sygnał np. do nadawania IR.

Z innych przydatnych rzeczy zanim zdecydujemy sie na konkretne CPU, do których warto sobie zerknąć jest tabelka funkcji poszczególnych pinów CPU na samym początku noty.

Z niej dowiemy się gdzie są przypisane, poszczególne funkcje modułów sprzętowych, oraz w tym konkretnym przypadku że niektóre z nich są programowo wybierane. Na tej podstawie warto sobie rozrysować wstępny blokowo-pinowy schemat urządzenia które budujemy, aby podjąć końcową decyzje czy dany procesor odpowiada naszym oczekiwaniom i wymogom.

Na koniec najważniejsze. Ile kosztuje to cudo ? Na Farnnel cena to 7.81zł + VAT.

natomiast ATTiny2313 który był punktem wyjścia przy poszukiwaniach kosztuje tam 13,57zł+VAT, a jak sprawdziliśmy jest to znacznie grzej uposażone CPU.

Podobnie możecie sami poszukać odpowiednika ATMegi 8, pewnie znajdziecie też coś smakowitego.

W następnej części, prawdopodobnie ostatniej, spróbujemy ruszyć PICa od strony praktycznej, czyli za pomocą MPLAB i kompilatora HI-TEch C, sklecić jakiś prosty program Demo na PICKIT2, oraz zajrzeć trochę do środka PICa16F690. Przedstawię także skrócony przegląd polskiej literatury na temat PICów.

__________________________________________________________________________________

²-Debug tool, Debugger (czytaj debager - z ang. odpluskwiacz) – program komputerowy służący do dynamicznej analizy innych programów, w celu odnalezienia i identyfikacji zawartych w nich błędów, zwanych z angielskiego bugami (robakami). Proces nadzorowania wykonania programu za pomocą debuggera określa się mianem debugowania.Podstawowym zadaniem debuggera jest sprawowanie kontroli nad wykonaniem kodu, co umożliwia zlokalizowanie instrukcji odpowiedzialnych za wadliwe działanie programu. Współczesne debuggery pozwalają na efektywne śledzenie wartości poszczególnych zmiennych, wykonywanie instrukcji krok po kroku czy wstrzymywanie działania programu w określonych miejscach. Debugger jest standardowym wyposażeniem większości współczesnych środowisk programistycznych.Debuggery posiadają również wady – symulacja działania kodu nie jest idealnym odtworzeniem wykonania tego kodu w warunkach normalnych. Wobec tego debuggery mogą nie wykrywać bugów niezależnych bezpośrednio od treści badanego programu.

CDN...

1762732917_MPLABIDE.thumb.png.1f14c86d6f7aea22e177e84aeb775861.png

  • Lubię! 1
Link do komentarza
Share on other sites

Warto dodać że w procesorach MC nie wszystkie piny mają opcję programowego "podciągnięcia" tzn pull up. Ja miałem akurat takiego pecha że w swoim projekcie dałem przyciski monostabilne na pinach które nie miały tej opcji, dziwne to jest. Ale dlatego polecam przy projektowaniu zerknąć na to 🙂

Osobiście posiadam PICkit 3 Debug Express i jestem naprawdę bardzo zadowolony.

Dodam że przesiadkę na PIC zrobiłem z AVR wtedy gdy AVR miały "dziwaczne" ceny. Jeśli ktoś ma maila w domenie student.pl MC wysyła darmowe sample, generalnie bardzo się to opłaca, gdyż można wybierać w całej ofercie.

Jeśli ktoś byłby zainteresowany to w Elektronice Praktycznej w tym momencie trwa kurs programowania PIC18.

Mierzyłeś się juz z PIC16 ?

Ja właśnie teraz dorwałem PIC16F1503, (to ta wersja z dwoma niezależnie programowanymi cellami) i jakoś nie umiem rozpocząć. Po pierwsze zaskoczyło mnie to że nie ma czegoś takiego jak MPLABC16... Moim zdaniem bardzo szkoda, bo wygodnie używać zabudowanych tam funkcji.

Link do komentarza
Share on other sites

Znaczy się o tych Pull-up na MCLR miałem zwrócić uwagę podczas praktycznego programowania czyli w 3 części, bo chce tam omówić porty I/O.

Co do sampli próbowałem zdobyć PIC16F1507, właśnie dla CLC ale chyba lipa, bo nie mam konta studenckiego 🙁 . Niby w uzasadnieniu napisałem Education for PIC, ale wątpię że z tego coś będzie.

Jeżeli chodzi o samo CLC to chyba jest do tego osobny program, w którym graficznie opracowuje się konfig cel, a on generuje na tej podstawie kod który trzeba sobie wstawić do własnego programu. Ale nie majac dostępu do CPU i tak nie jestem tego w stanie sprawdzić, chyba że kolega mógłby jakie odsprzedać, bo narazie do Fernnela nie mam dojścia bo muszę załatwić sobie jakąś kartę płatniczą. A TME raczej krucho wygląda na razie w kwestii oferty.

Natomiast co do kursu PIC18 z EP. sam go śledzę, ale świadomie tu o nim nie wspomniałem, ponieważ uważam że dla początkujących jest on złym wyborem, to raczej kurs dla średnio zaawansowanych użytkowników, którzy potrafią sami dać sobie rady w przypadku niespodzianek, czy konieczności szukania danych w notach. Po za tym trudno go nazwać kursem, bo jest to takie rzucanie przykładowymi procedurami.

Oj widzę czeka mnie poprawienie sporej ilości błędów ortograficznych i literówek. 😅

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A TME raczej krucho wygląda na razie w kwestii oferty.

dlaczego? w TME jest tego do wyboruy do koloru:

http://www.tme.eu/pl/details/pic16f1503-i_p/mikrokontrolery-microchip-8-bit/microchip-technology/#

W dowolnej obudowie 🙂

Owszem jest oddzielny program, spisuje się to 🙂

Tak tylko się zastanawiałem czy pracowałeś juz na PIC16, bo dla mnie jest on cięższy w "rozpykaniu" niż np PIC18, dla którego sam MC udostępnia sporo przykładów.

Moja uwaga co do pull-up nie odnosiła się do MCLR, właśnie MCLR od biedy ma programowego pull up, gdyż jak wykorzystuje się go tylko jako reset, to jest on już wewnętrznie podciagnięty.

Cytat z noty (miałem pod ręką akurat notę do PIC16F1507 ale uważam że w innnych przypadkach będzie podobnie):

When MCLR is disabled, the pin functions as a general

purpose input and the internal weak pull-up is under

software control.

Oczywiście o wszytkim decydują bity konfiguracyjne.

Moja uwaga dotyczyła PORTuB w PIC18, on cały pozbawiony jest programowych pull-up.

Link do komentarza
Share on other sites

A to mój błąd z TME, bo ostatnio szukałem PIC16F1828 i tego nie mają. Ale fajnie jak procki z CLC już są, przy najbliższych zakupach kupie sobie jeden do nauki. Jeszcze z 2 miesiące temu miały status, "produkcja w przyszłośći" na stronie MC.

Ja i tak w przykładzie programu będę się skupiał na PIC16F690, bo chcę pokazać w miarę prosty procesor, który nie przytłoczy początkujących dwoma tuzinami bitów konfiguracyjnych, ale jednoczenie taki co coś też potrafi, a nie jak w większości kursów czy książek kastrata 16F84, który w dodatku jest drogi ?

Tak wracając jeszcze do tego CLC, to ja sądzę zę w przyszłości Microchip, będzie chciał zintegrować wszystkie narzędzia w nowym MPLAB X. No ale to trochę jeszcze potrwa, a do tego czasu mam nadzieję że PIC KIT 3 stanieje jeszcze bardziej i doszlifują soft do niego.

Link do komentarza
Share on other sites

BlackJack i bardzo dobrze planujesz 🙂

Moje sugestie były tylko dlatego że ta część kursu dotyczy właśnie wyboru procesora i nie chciałem żeby ktoś później się zastanawiał dlaczego mu microswitch nie działa.

Ogólnie, zawsze należy czytać noty, nawet dla tak prozaicznych czynności jak dołożeniu przycisku do projektu.

Koniec moich wywodów:)

Ps. TME jest bardzo bardzo fajne jeśli chodzi o produkty MC, mają praktycznie wszystko i to bardzo szybko po premierze, a i ceny nie są jakoś odpychające. PICkita 3 również mają w niezłej cenie: http://www.tme.eu/pl/details/pickit-3-icd/programatory/microchip-technology/pg164130/#

Nie żebym za mocno chwalił, nie mam nic z nimi wspólnego 🙂

Link do komentarza
Share on other sites

Witam,
Jak jest z pisaniem programów obiektowych w C++? Niby kompilatory są do tego, ale czy się opłaca*?

*Czytałem, że np. C++ na AVR to niezbyt dobre połączenie bo kod dużo zajmuje.

Jak z tym jest na PICe?

Link do komentarza
Share on other sites

Mam pytanie, może mały offtop, ale może autor albo inny użytkownik miał z czymś takim doczynienia:

otóż nie działają mi przesunięcia bitowe:

np:

PORTC |= (1<

itd.

Jeśli wpisze: PORTC |= (1<<2);

to oczywiście nie ma problemu, ale zastanawia mnie skąd się to bierze ?

Mam dołączoną bibliotekę procesora, kompilator to Hi-TECH v9.83

Głupota, ale zwiększa czytelność kodu...

Link do komentarza
Share on other sites

He. też się ostatnio na to naciąłem, choć w moim przypadku winna była dodatkowo jeszcze specyficzna budowa portu. Ogólnie definiacja (dla PIC16F690)jest taka:

// Register: PORTC
volatile unsigned char           PORTC               @ 0x007;
// bit and bitfield definitions
volatile bit RC0                 @ ((unsigned)&PORTC*8)+0;
volatile bit RC1                 @ ((unsigned)&PORTC*8)+1;
volatile bit RC2                 @ ((unsigned)&PORTC*8)+2;
volatile bit RC3                 @ ((unsigned)&PORTC*8)+3;
volatile bit RC4                 @ ((unsigned)&PORTC*8)+4;
volatile bit RC5                 @ ((unsigned)&PORTC*8)+5;
volatile bit RC6                 @ ((unsigned)&PORTC*8)+6;
volatile bit RC7                 @ ((unsigned)&PORTC*8)+7;
#ifndef _LIB_BUILD
volatile union {
   struct {
       unsigned	RC0                 : 1;
       unsigned	RC1                 : 1;
       unsigned	RC2                 : 1;
       unsigned	RC3                 : 1;
       unsigned	RC4                 : 1;
       unsigned	RC5                 : 1;
       unsigned	RC6                 : 1;
       unsigned	RC7                 : 1;
   };
} PORTCbits @ 0x007;
#endif

Wiec zapis musiałby wyglądać np:

PORTC |= (1<

lub

PORTCbits.RC2 = 1;

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.