Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

p.kaczmarek2 27 Lis 2019 11:13 1656 10
  • Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Witajcie moi drodzy
    Opiszę tutaj krok po kroku instalację, konfigurację oraz użycie darmowego kompilatora SDCC do tworzenia programów na mikroprocesory PIC.
    Całość będzie w formie szczegółowego tutoriala.
    Ze względu na długość całości tutorial podzielę na osobne tematy.
    W dalszych częściach postaram się opisać użycie większości popularnych peryferiów, bibliotek, w SDCC na przykładzie PIC18F2550.
    To ile ostatecznie wyjdzie części i co zostanie omówione zależy w dużej mierze też od tego jakie będą komentarze. Oczywiście przyjmuję sugestie, więc jak ktoś chce bym omówił np. komunikacje PICa po I2C z wybraną kostką/modułem, to proszę o informacje.

    Spis części (osobnych tematów) tutoriala
    Tutorial podzielony jest na osobne tematy i tutaj znajdują się do nich linki.
    Część 1 - Konfiguracja środowiska pracy
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=18304424#18304424
    Część 2 - ......
    Spis treści będzie uzupełniany wraz z pisaniem przeze mnie kolejnych części.


    Ten temat to jest część 1, czyli Konfiguracja środowiska pracy. Zaczynamy.

    Co jest czym?
    SDCC (Small Device C Compiler) to darmowy, open source kompilator dla wielu rodzin 8 bitowych mikroprocesorów, w tym m. in.:
    - PIC16F/PIC18F (którymi zajmiemy się w tym temacie)
    - 8031, 8032, 8051, 8052 Intela
    - DS80C390 od Maxim/Dallas
    - 68HC08 i 68HCS08 od Motorola/Freescale/NXP
    - STM8 od STMicroelectronics
    - PDK14 i PDK15 od Padauk Technology
    - Zilog Z80, Z180, eZ80
    SDCC jest dostępny na licencji GPL. Wspiera platformy Windows, Linux i macOS

    GPUtils jest to zbiór narzędzi dla mikrokontrolerów PIC od Microchipa. Obejmuje programy takie jak gpasm, gplink, gplib. Dostępny jest na licencji GPL, na platformach Windows, Linux oraz macOS. GPUtils jest wymagane przez SDCC jeśli chcemy kompilować wsad dla PICów.

    Co tutorial będzie obejmować?
    W tym tutorialu (oraz w jego kolejnej części, która jest w drodze) postaram się zamieścić:
    - krok po kroku instalacje SDCC wraz z ustawieniem ścieżek PATH na Windowsie
    - krok po kroku instalacje GPUtils wraz z ustawieniem ścieżek PATH na Windowsie
    - krok po kroku instalacje pakietu SDCC dla PIC wraz z ustawieniem ścieżek PATH na Ubuntu
    - prezentacja metody jak sprawdzić czy SDCC/GPUtils jest poprawnie skonfigurowane
    - krótki opis jak kompiluje się programy z pomocą SDCC
    - szczegółowe przykłady programów zrobionych w SDCC dla PIC18F2550 z pomocą bibliotek dostępnych w samym kompilatorze oraz w sieci
    Tutorial będzie praktyczny, czyli bardziej będę się skupiać na tym jak otrzymać rezultaty niż na tym jak co wewnętrznie działa. Umieszczane tutaj instrukcje będą w miarę możliwości szczegółowe (bez pomijania kroków itp), ale jednak oczekuję, że czytelnik też jest w stanie korzystać z wyszukiwarki i innych źródeł wiedzy. I przede wszystkim - tutorial nie zastępuje szkoły i książek!

    Windows - Instalacja SDCC i GPUtils z pomocą instalatorów
    Strona domowa SDCC umieszczona jest na SourceForge. Znajduje się na niej dokumentacja SDCC, manual w PDF, linki do pobrania oraz sam kod źródłowy kompilatora (jest on open source).
    http://sdcc.sourceforge.net/index.php
    Samo SDCC możemy pobrać stąd:
    https://sourceforge.net/projects/sdcc/files/

    Opiszę tutaj dokładnie proces instalacji. Na początek wchodzimy w powyższy link.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy najnowszą wersję (na moment pisania jest to 3.9.0 z 2019-04-15):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Rozpoczynamy proces instalacji:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Standardowo, czytamy całą Licencję, SDCC jest na licencji GPL v2.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy Menu Start Folder oraz pełną wersję instalacji:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Tutaj warto zmienić miejsce do którego zainstalujemy SDCC. Domyślnie instalator chce umieścić kompilator w "C:/Program Files/", ale ja na Windowsie doświadczyłem potem problemu z uruchamianiem SDCC przez spację w tej nazwie, więc najwygodniej jest zainstalować całość do np. "C:/SDCC/".
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Czekamy aż proces instalacji SDCC się zakończy:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Na końcu instalator dodaje automatycznie ścieżkę SDCC do zmiennej środowiskowej PATH:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Teraz musimy zainstalować osobno GPUtils, w których znajduje się gpasm.exe niezbędne do skompilowania wsadu dla PICa.
    GPUtils ma również swoją stronę na Sourceforge:
    https://gputils.sourceforge.io/
    Pobrać je można stąd:
    https://sourceforge.net/projects/gputils/files/
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Rozpoczynamy instalacje:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    GPUtils też jest na licencji GPL. Czytamy licencję i ją akceptujemy:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy pełną wersję instalacji:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Czekamy aż proces instalacji się zakończy:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Na koniec, tak jak z SDCC, instalator daje nam opcje automatycznego dodania folderu GPUtils do ścieżek systemowych:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Windows - Alternatywny sposób instalacji SDCC i GPUtils - Pinguino Compilers
    Pinguino (darmowy, otwarty odpowiednik Arduino dla PIC) posiada w swoich zasobach gotową do użycia paczkę kompilatorów przeznaczonych dla 8 i 32 bitowych PICów. Znajduje się w niej też SDCC, wraz z całym potrzebnym osprzętem. Ta paczka zawiera już w sobie GPUtils (gpasm.exe, i inne), więc nie trzeba instalować ich potem osobno.
    Można ją za darmo pobrać z githuba (są tam też pliki binarne):
    https://github.com/PinguinoIDE/pinguino-compilers
    Jest to pełen zestaw kompilatorów (SDCC i MIPS):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Są tam nawet pliki binarne dla systemu Linux:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Na wszelki wypadek umieszczam tutaj kopię zapasową powyższego repozytorium (stan na czas pisania tego postu):
    Windows 32:
    pinguino-c...dows32.zip Download (29.01 MB)
    Windows 64:
    pinguino-c...dows64.zip Download (29.42 MB)
    Linux 32:
    pinguino-c...inux32.zip Download (23.99 MB)
    Linux 64:
    pinguino-c...inux64.zip Download (25.64 MB)

    Instalacja w ten sposób polega tylko na wypakowaniu paczki tam gdzie chcemy, tyle że trzeba zmienną środowiskową %PATH% ustawić ręcznie. W przeciwnym razie system nie będzie rozpoznawać polecenia sdcc, itp.


    Windows - Ustawienie zmiennej środowiskowej PATH dla SDCC
    Jeśli pobraliśmy SDCC z repozytorium Pinguino-compilers bądź w jakiś inny sposób bez użycia instalatora to może być potrzebne ręczne dodanie ścieżki do SDCC do zmiennej PATH. Jest to potrzebne by Windows rozpoznawał komendę sdcc będąc w dowolnym folderze.
    Aby to zrobić, najpierw zapisujemy sobie w jakim folderze mamy zainstalowane kompilatory (a dokładniej: jaka jest pełna ścieżka do bin z folderu SDCC). Przykładowo:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    A następnie dodajemy ją do %PATH%, przez interfejs Windows lub przez linię komend.
    Sposób 1: Dodanie folderu do PATH poprzez interfejs okienkowy Windowsa
    Na każdej wersji jest dość podobnie. Na Windows 10 najpierw otwieramy właściwości komputera:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Następnie otwieramy "Zaawansowane ustawienia systemu", zakładkę "Zaawansowane", klikamy tam przycisk "Zmienne środowiskowe":
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Teraz widzimy edytor wszystkich zmiennych środowiskowych na systemie Windows. Wybieramy tam zmienną Path:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Klikamy ''Edytuj'' by przejść do edytora wszystkich ścieżek z tej zmiennej. Każda z nich jest tutaj osobno, nie musimy stosować średników. Nową dodajemy z pomocą przycisku ''Nowy'', po czym musimy zatwierdzić zmiany klikając ''Ok''.

    Sposób 2: Dodanie zmiennej do PATH poprzez konsolę cmd
    Mamy tam dostępną komendę set NAZWA=wartość, która ustawia zmienną o danej NAZWIE na daną wartość.
    Można też tam wyświetlić bieżącą wartość zmiennej wpisując %NAZWA%.
    Możemy zatem użyć tych dwóch mechanizmów na raz by dopisać kolejną ścieżkę do ścieżek systemowych.
    Wpisujemy zatem w konsoli:
    Code:
    set PATH=%PATH%;ŚCIEŻKA_DO_SDCC

    gdzie ŚCIEŻKA_DO_SDCC to pełna ścieżka do SDCC, do folderu bin, pełna.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tyle wystarczy by dodać ścieżkę do PATH i będzie ona pamiętana po ponownym uruchomieniu komputera.

    Analogicznie postępujemy z GPUtils. Też dodajemy ścieżkę do PATH (o ile jej tam nie ma).
    W przypadku Pinguino-Compilers nie musimy dwukrotnie dodawać ścieżek, gdyż tam i sdcc.exe i gpasm.exe jest w jednym folderze:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Windows - Sprawdzenie instalacji SDCC oraz GPUtils
    Jeśli wszystko poszło dobrze (i ścieżka folderu SDCC została dodana do PATH) to w konsoli komend rozpoznawane powinno być polecenie sdcc. Można to sprawdzić po prostu wpisując w niej komendę sdcc, bądź np. sdcc -v by wyświetlić zainstalowaną wersję kompilatora.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    W przypadku wersji z Pinguino wynik komendy sdcc -v może się troszkę różnić:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Analogicznie sprawdzamy czy poprawnie widoczne są narzędzia z GPUtils, a zwłaszcza gpasm.exe. Wpisujemy w konsoli komendę gpasm -v.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy


    Ubuntu - Instalacja SDCC/GPUtils
    Ktoś mógłby by pomyśleć, że SDCC/GPUtils można zainstalować na Ubuntu poprzez apt-get. Nic bardziej mylnego!
    Rzeczywiście, apt-get pozwala ściągnąć SDCC na Ubuntu, ale tak ściągnięte SDCC nie wspiera niestety PICów.
    W spoilerze zrzuty ekranu z instalacji ''niepełnego'' SDCC przez apt-get:
    Spoiler:

    Początek instalacji poprzez apt-get:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Końcówka instalacji:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Poniższy zrzut ekranu pokazuje jak kończy się taka instalacja SDCC na Ubuntu - po sprawdzeniu wersji z pomocą komendy "sdcc -v" widać, że PIC nie są wspierane, a sama komenda od kompilacji skutkuje błędem "cannot generate code for target ''pic16''".
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Takie SDCC nam się nie przyda. Problem wynika stąd, że część plików powiązanych z PICami nie jest na licencji kompatybilnej z polityką repozytoriów apt-get, więc nasz kompilator musimy ściągnąć ręcznie.

    Więc SDCC dla Ubuntu pod PICe musimy ściągnąć ręcznie, albo z samej strony SDCC, albo z wspomnianego już wcześniej Pinguino-compilers.
    Ja tutaj opiszę jak ściągnąć SDCC z Pinguino-compilers (jest tam już skompilowane, i na 32-bitowego i na 64-bitowego Linuxa).
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Otwieramy na Ubuntu odpowiednie repozytorium Github, skąd można pobrać Pinguino compilers, tutaj:
    https://github.com/PinguinoIDE/pinguino-compilers
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Pobieramy całe repozytorium, aczkolwiek przydadzą się nam tylko pliki binarne dla p8 (8 bitowe) dla Linuxa 64-bitowego.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Zapisujemy plik archiwum.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wypakowujemy z niego tylko co jest dla nas potrzebne (tutaj: folder p8 z folderu linux64):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy jakiś folder gdzie to wypakujemy. Ja wypakowałem do /home/test/sdcc/ (tam utworzony został katalog p8 a w nim bin). W zasadzie nie jest takie istotne gdzie to umieścimy, bo potem i tak skonfigujemy Linuxowe PATH by wskazywało do folderu bin z kompilatorem.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Po wypakowaniu widzimy, że mamy już pliki wykonywalne sdcc, gpasm i innych potrzebnych narzędzi.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Ubuntu - Ustawienie zmiennej środowiskowej PATH dla SDCC
    Ustawienie tej ścieżki na systemach linuxowych wbrew pozorom nie jest aż tak analogiczne do systemu Windows jakby to się mogło zdawać.
    W moim przypadku przypisanie nowej wartości do PATH z poziomu konsoli Ubuntu się nie sprawdziło, gdyż system zapominał jej wartość po ponownym uruchomieniu.
    Czyli samo set PATH=%PATH%;/nowa/sciezka/ nie wystarczy.
    Poprawnie zadziałała u mnie dopiero metoda edycji pliku /etc/environment.
    1. Otwieramy ten plik jako administrator:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    2. Dopisujemy tam ścieżkę do SDCC:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    3. Ponownie uruchamiamy system
    Od tego momentu po każdym włączeniu Ubuntu powinien znać ścieżkę do SDCC.

    Ubuntu - Weryfikacja czy instalacja przebiegła pomyślnie
    Tak jak w przypadku Windows.
    Instalację SDCC/GPUtils możemy sprawdzić wpisując w konsoli komendy sdcc -v oraz gpasm -v.
    Zrzut ekranu pokazuje poprawny, oczekiwany wynik.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Warto zwrócić uwagę, że komenda sdcc -v pokazuje wprost, że ta wersja SDCC wspiera pic16/pic14.

    Pierwsza testowa kompilacja
    Jak już wiemy, że SDCC oraz GPUtils dodane jest do ścieżek systemowych, to możemy sprawdzić czy sam proces kompilacji działa.
    Bierzemy jakiś prosty kod, przykładowo blink dla PIC18F2550:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    (W dalszej części tutoriala ten kod zostanie dokładniej umówiony).

    Zapisujemy go w pliku z rozszerzeniem .c w wybranym przez nas folderze, np. na D:/PICProjects/SDCCTest/.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Otwieramy konsolę, przechodzimy do tego folderu z pomocą komendy cd:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    I wykonujemy kompilacje z pomocą SDCC z pomocą polecenia:
    Code:
    sdcc.exe --use-non-free -mpic16 -p18f4550 p18f4550_blink.c

    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Rezultatem powinien być gotowy do wgrania na PICa plik .hex.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Jest to poprawny, gotowy do wgrania na PICa wsad:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tak właśnie wygląda wsad na PIC po skompilowaniu w formacie .hex.

    Jeśli kompilacja się nie powodzi i otrzymujemy błąd "Nazwa ''gpasm.exe'' nie jest rozpoznana" to znaczy, że albo nie mamy ustawionej ścieżki %PATH% do folderu bin z GPUtils, albo wcale GPUtils nie zainstalowaliśmy.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy


    Przyglądamy się poleceniom SDCC
    Mamy już kompilator zainstalowany. Teraz przeanalizujemy dokładnie komendę z pomocą której kompilujemy kod C na gotowy plik .hex dla PICa.
    W najprostszej postaci wygląda ona tak:
    Code:
    sdcc.exe --use-non-free -mpic16 -p18f4550 p18f4550_blink.c

    Tylko tyle wystarczy, by skompilować nasz program.
    p18f4550_blink.c - jest to oczywiście nazwa naszego pliku z kodem. Może być w zasadzie dowolna, ale warto zachować w niej rozszerzenie .c.
    Przełącznik --use-non-free pozwala kompilatorowi na użycie bibliotek od Microchipa przeznaczonych dla PIC i jest tutaj w większości przypadków potrzebny.
    mpic16 oznacza tutaj, że kompilujemy pod rodzinę PIC18F. Tak, mpic16 oznacza 18F - te 16 bierze się tam stąd, że rdzeń rodziny PIC18F ma 16 bitowe słowo instrukcji.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    (źródło: datasheet PIC18F4550)

    Analogicznie, istnieje opcja mpic14 . Z jej pomocą kompilujemy dla rodziny PIC16F:
    sdcc.exe --use-non-free -mpic14 -p16f628 p16f628_blink.c
    mpic14 oznacza tutaj, że kompilujemy pod rodzinę PIC16F. Tak, mpic14 oznacza 16F - te 14 bierze się tam stąd, że rdzeń rodziny PIC16F ma 14 bitowe słowo instrukcji.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    (źródło: datasheet PIC16F628A)

    Użycie odpowiedniej opcji (mpic14 vs mpic16) jest niezbędne, m. in. od niej zależy to jakie pliki #include są dostępne (przykładowo pic18fregs.h jest tylko na rodzinie PIC18F).
    Opcja mpic14 wspiera też rodzinę PIC12F*, np PIC12f675.

    Kompilacja projektu złożonego z kilku plików w SDCC
    Teraz jeszcze należy się zastanowić jak skompilować projekt złożony z kilku plików z kodem źródłowym.
    Załóżmy, że mamy dwa pliki.
    - test_blink_file.c
    - p18f4550_blink_multipleFiles.c
    Na pewno nie można zrobić tego tak:
    Code:
    sdcc.exe --use-non-free -mpic16 -p18f4550 p18f4550_blink_multipleFiles.c test_blink_file.c

    Skutkuje to dość niepokojącym błędem o treści "at 1: warning 120: cannot compile more than one source file. file ''test_blink_file.c'' ignored".


    Ale to nic złego - SDCC jak najbardziej może kompilować projekt złożony z wielu plików, po prostu trzeba rozbić kompilację na osobne etapy.
    Code:
    sdcc.exe --use-non-free -mpic16 -p18f4550 -c test_blink_file.c
    
    sdcc.exe --use-non-free -mpic16 -p18f4550 p18f4550_blink_multipleFiles.c test_blink_file.o

    W tym sposobie osobno kompilujemy każdy dodatkowy plik z kodem, a na końcu podajemy plik z funkcją main i rezultaty poprzednich kompilacji.
    Bardzo ważne jest, by plik z funkcją main() podać tutaj jako pierwszy.

    Można cały proces jeszcze bardziej rozdzielić - skompilować osobnym poleceniem każdy plik z kodem (też osobno plik z main()), a potem tylko je połączyć. Wymaga to jednak jeszcze ręcznego dopisania pliku .lib z funkcjami dla PIC18F.
    Code:
    sdcc.exe --use-non-free -mpic16 -p18f4550 -c test_blink_file.c
    
    sdcc.exe --use-non-free -mpic16 -p18f4550 -c p18f4550_blink_multipleFiles.c
    sdcc.exe --use-non-free -mpic16 -p18f4550 p18f4550_blink_multipleFiles.o test_blink_file.o libc18f.lib


    Organizacja pracy - skrypty do kompilacji
    Oczywiście nie trzeba zawsze ręcznie wpisywać komend do konsoli. Można zrobić skrypt wsadowy .bat (na Windowsie; na Linuxie .sh) który wykona za to co chcemy.
    Skrypt .bat to po prostu dokument tekstowy i tworzy się go tak jak plik txt:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wpisujemy jego nazwę (wraz z rozszerzeniem .bat):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    W razie takiego komunikatu potwierdzamy, że plik ma mieć rozszerzenie .bat:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Następnie edytujemy go jako plik tekstowy.
    Do skryptu można wpisać te komendy które normalnie wykonuje się w konsoli, ale nie trzeba się martwić o ścieżki - wystarczy podać względne. Czyli jak plik z kodem jest w tym samym folderze co skrypt to podajemy tylko nazwę pliku z kodem, itp.
    W skryptach można też użyć echo by wyświetlić komunikat oraz pause by zatrzymać okienko przed chowaniem.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Finalnie, jeden z najprostszych skryptów do kompilacji wygląda tak:
    Code:
    echo ''Starting compilation script...''
    
    sdcc.exe --use-non-free -mpic16 -p18f2550 p18f2550_blink.c
    pause

    Uruchomienie go włącza okienko konsoli i w nim proces kompilacji. Komenda ''pause'' sprawia że po kompilacji okienko zostaje i czeka zamknięcie, dzięki czemu możemy sprawdzić czy kompilacja się powiodła.

    Alternatywa dla pisania kodu w Notepadzie - SDCC w Code Blocks
    Użycie zintegrowanego środowiska do pisania kodu nie jest tu konieczne, lecz może być dość wygodne. Dlatego pokażę teraz jak można skonfigurować Code Blocks do współpracy z kompilatorem SDCC i pisania programów pod PICe.
    SDCC i GPUtils należy mieć zainstalowane wcześniej wedle instrukcji z tego tematu!
    Zaczynamy od ściągnięcia Code Blocks:
    http://www.codeblocks.org/downloads

    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Na tym etapie możemy ściągnąć czystą wersję Code Blocks (bez żadnego kompilatora), jak również tą z MingW (tyle, że sam kompilator MingW się nam nie przyda - i tak będziemy korzystać z SDCC. To jedynie na wypadek gdybyśmy chcieli używać CB też do programowania na Windowsa).
    Ale podkreślam, że Code Blocks pozwala mieć różne kompilatory jednocześnie (MingW nie będzie kolidować z SDCC).
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Instalujemy Code Blocks poprzez instalator Windowsa.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Code Blocks też oczywiście jest na licencji GPL.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy pełną instalację; to i tak tylko raptem 250MB.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Przy pierwszym uruchomieniu Code Blocks automatycznie wykrywa to jakie mamy kompilatory. Powinien wykryć obecność SDCC, ale nawet jeśli go nie wykryje to żaden problem - można ręcznie ustawić ścieżkę w ustawieniach.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Swoją drogą powyższy obrazek pokazuje jak dużo kompilatorów wspiera Code Blocks.

    Po otwarciu IDE otwieramy Settings->Compiler:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy tam SDCC (bądź pełną nazwą: Small Device C Compiler; zależy od tego jaką wersję Code Blocks mamy):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tam są ustawienia globalne dla tego kompilatora.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    W Toolchain executables upewniamy się, czy Compiler''s installation directory poprawnie wskazuje na folder w którym jest SDCC (ale nie bezpośrednio na bin, tylko na folder który zawiera bin):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Potem przechodzi do Other settings, gdzie klikamy przycisk Advanced options.... Trzeba będzie tam coś ustawić.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Potwierdzamy, że wiemy co robimy:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tutaj zaradzimy coś na popularny problem z rozszerzeniem plików wynikowych (.o versus .rel). Code Blocks oczekuje plików .rel, a w rzeczywistości mają one rozszerzenie .o. Aby to naprawić wpisujemy do pola "Object file extension (eg. o)" treść ''o'', zamiast ''rel'' które jest tam domyślnie.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Po tych zmianach koniecznie restartujemy Code Blocks! Wyłączamy go całkiem i włączamy ponownie!
    Jeśli nie zmienimy oczekiwania rozszerzenia ''rel'' na ''o'' to w trakcie kompilacji otrzymamy błąd "at 1: warning 119: don''t know what to do with file ''objReleasecb_sdcc_test.rel''. file extension unsupported":
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Konfiguracja Code Blocks zakończona, teraz możemy utworzyć nowy projekt.
    Klikamy File - > New Project. Tam wybieramy typ projektu ''Empty Project'':
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Przechodzimy kolejne kroki ''Empty Project Wizard'':
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Ustawiamy nazwę i lokację naszego projektu na dysku.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wybieramy kompilator którego użyjemy, czyli oczywiście SDCC:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wyłączamy konfigurację Debug:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Projekt jest gotowy. Jeśli są jakieś ostrzeżenia, to je ignorujemy.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Dodajemy nowy plik do folderu poprzez File -> New -> Empty File:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    To utworzy nam pusty plik. Wklejamy do niego nasz kod.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Teraz musimy skonfigurować nasz projekt pod konkretnego PICa.
    Otwieramy Project->Build Options.
    Tam włączamy znany nam już z linii komend przełącznik --use-non-free:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Troszkę nad nim zaznaczamy pod którą rodzinę PICów kompilujemy (tez już wcześniej omawiane -mpic14 i -mpic16):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    W sąsiedniej zakładce (Other compiler options) dopisujemy jeszcze przełącznik/wybór konkretnego PICa pod który piszemy. W przypadku tego przykładu to jest -p18f4550.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Jeszcze tylko w Linker Settings musimy ręcznie wskazać odpowiednie biblioteki, tutaj libc18f.lib. Jest ona potrzebna dla funkcji delay1ktcy. Jeśli chcemy zrobić własnego delaya, to może ona nie być potrzebna.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Jeszcze pozostało zrobić jedno - zmienić rozszerzenie wynikowego pliku kompilacji z .exe na .hex. Wykonujemy to w Project/target options -> Build targets.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Od tego momentu projekt powinien się poprawni kompilować w Code Blocks.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Wynik kompilacji (plik hex) powinien być w folderze /bin/Release w folderze naszego projektu.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Co będzie nam potrzebne by zacząć z PICami?
    Przede wszystkim potrzebny jest programator.
    Programator służy do wgrania wsadu (skompilowanego kodu, .hex) z komputera na PICa.
    Oczywiście programator jest potrzebny tylko na czas programowania mikrokontrolera, potem można go odłączyć a nasz program, wsad będzie dalej działać.
    Chyba najbardziej praktyczny teraz będzie zakup programatora PICKIT3, aczkolwiek ja preferuję PICKIT2 gdyż ten drugi jest zdolny do zasilania układu z mikrokontrolerem, a PICKIT3 niestety wymaga osobnego podania zasilania do PICa.
    PICKIT2 nie jest już dawno wspierany, ale istnieją inicjatywy open source takie jak PICKIT2 Device Editor czy tam pic32prog które pozwalają z jego pomocą programować też nowsze PICe.
    Jest jeszcze PICKIT4 ale z niego nie korzystałem, więc się nie wypowiem.
    Oczywiście są też inne programatory dla PIC, ale by nie komplikować zbędnie w tym temacie użyjemy PICKIT3:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tutaj chciałbym zwrócić uwagę na to, że PICKIT3 naprawdę wspiera dużo układów. Nawet AVRy:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    (Powyższy zrzut ekranu pochodzi z MPLAB IPE, sam osobiście programowania Atmeg z pomocą PICKIT3 jeszcze nie testowałem).

    Dla PICKIT3 potrzebny też będzie kabelek mini USB:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Całość mojego tutoriala będzie wykonana z PIC18F2550 na płytce stykowej, czyli nie będzie potrzebne nam żadne PCB. Wszystko złożymy na tzw. breadboard:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Kabelki do płytek stykowych (tzw. jumpery, zworki). Nimi zrobimy połączenia:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Do płytki trzeba będzie podprowadzić zasilanie 5V. Ja je wezmę z USB, poprzez te złącze mikro USB dla płytki stykowej:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    I dodatkowo - kabelek mikro USB.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Oczywiście potrzebny też będzie PIC - ja wybrałem PIC18F2550. Więcej o nim w dalszej części tutoriala.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Teraz rzeczy potrzebne na początek dla PICa:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Rezytory 10k (jeden dla pinu RESET od PICa, też jako pull up/down przycisków), kondensator mniej więcej 220nF dla pinu VUSB, rezystory jakieś 1k dla diod LED, standardowo jakiś kondensator elektrolityczny i 100nF ceramiczne na zasilanie.

    Zaczynamy działanie z PIC18F2550
    W tym momencie rozpoczynamy właściwą część tutoriala, czyli działania z PICem na płytce stykowej.
    Dla tej części wybrałem PIC18F2550, ponieważ jest dość popularny, ma bogate peryferia oraz sprzętowe USB, które w przyszłości też być może wykorzystamy.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Oprócz PIC18F2550 można by tutaj użyć PIC18F4550, który
    jest do niego bardzo podobny, oferuje jednak nieco więcej pinów (jest w obudowie DIP40).
    Są też nieco nowsze wersje tych PICów, PIC18F25K50 oraz PIC18F45K50 które mają m. in. dokładniejszy wewnętrzny oscylator, dzięki czemu można na nich korzystać z USB bez użycia zewnętrznego oscylatora kwarcowego.
    PIC18F2550 działa przy zasilaniu od 4.2V do 5.5V, ale dostępna jest też jego wersja (PIC18LF2550, gdzie ''L'' oznacza ''Low voltage'') na napięcia od 2V do 5.5V.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Pierwszym krokiem będzie skomunikowanie PICa z programatorem. Aby to zrobić należy podłączyć jego wszystkie piny zasilania (VCC, GND) oraz kondensator na VUSB. Dodatkowo przyda się rezystor 10k na pinie RESET.
    Ale zacznijmy od początku, czyli od pustej płytki stykowej.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Na początek podpinamy zasilanie. Obowiązkowo kondensator elektrolityczny i ceramiczny na liniach VDD/GND:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Warto też dodać jakąś diodę LED do zasilania by wiedzieć czy 5V jest obecne w układzie:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Potem do akcji wkracza PIC - podłączamy jego wszystkie piny VDD/GND. Tutaj są dwa piny GND i jeden VDD. Dodatkowo 100nF najbliżej jak się da pinów PICa.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Mikrokontrolery z rodziny PIC18F też często wymagają dodatkowego kondensatora o pojemności rzędu 220nF. Podłącza się go na pinie VUSB, zgodnie z notą katalogową:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Co ciekawe, czasem może się zdarzyć że PIC będzie działać poprawnie bez tego kondensatora. Miałem kiedyś płytkę z PIC18F4550 i z zimnym lutem na miejscu tego kondensatora, na którą był wgrany wsad obsługi USB i działała ona na jednym komputerze, a na drugim Windows pokazywał komunikat "Nierozpoznane urządzenie.".
    Ale my nie zamierzamy ryzykować więc kondensator 220nF na VUSB od razu podłączamy. Do tego rezystor 10k na pin RESET (tzw. pull up dla MCLR). Do samego programowania może on nie być konieczny, ale do uruchomienia zaprogramowanego wsadu już tak (no, chyba że wyłączymy RESET w konfiguracji PICa, ale aż tak nie komplikujemy).
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    UWAGA: Ta płytka stykową z której korzystam zrobiona jest tak, że jej boczne linie zasilania są przedzielone w połowie płytki. Dlatego potrzebna jest zworka. Na powyższym zdjęciu jest oznaczona na czerwono.
    Na koniec podprowadzamy linie odpowiedzialne za programowanie (PGC, PGD, MLCR aka RESET):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Podłączamy do nich programator.
    Dużo zależy od tego jaki dokładnie programator mamy, ale PICKIT2/PICKIT3 posiada następujące piny:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Pin numer 6 (PGM aka LVP) nie jest nam potrzebny i go nie podłączamy.

    I tak wygląda ostatecznie gotowy setup pod następne etapy mojego tutorialu. Na nim uruchomimy kolejne przykłady z mruganiem LED, z przerwaniami, z UART, itp.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    W takim układzie PICKIT powinien być już w stanie odczytać ID mikroprocesora, programować go, itp.

    Pierwsze mruganie diodą
    Teraz jeszcze zostało sprawdzić działanie naszego dzieła stworzonego na płytce stykowej z pomocą najprostszego programu - blink LED. Program po prostu będzie mrugać diodą LED.
    Przede wszystkim musimy wybrać pin na którym umieścimy diodę LED i umiejscowić ją na płytce z rezystorem.
    (Rezystor jest tam niezbędny by ograniczyć prąd płynący przez diodę i jej nie spalić).
    Wybrałem pin C0 (najmłodszy bit z PORTC):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Podłączamy więc na niego rezystor i diodę LED:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    I kompilujemy po czym wgrywamy następujący kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    UWAGA: Ten kod zostanie dokładnie omówiony, ale to dopiero w następnej części tutoriala. Jak na razie tylko sprawdzamy czy działa.


    Kompilacja oczywiście przechodzi pomyślnie i chwilę potem mamy gotowy .hex do wgrania:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Teraz trzeba jeszcze wgrać wsad do PICa.
    Ja to zrobię z pomocą PICKIT3. W przypadku innych programatorów użyty software może się nieco różnić.
    Odpalamy MPLAB IPE (Integrated Programming Environment):
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Po uruchomieniu IPE od razu wykrywa, że mamy podłączonego PICKIT3. Widoczny jest on w polu rozwijanym Tool. Wybieramy interesującą nas rodzinę mikrokontrolerów i sam konkretny mikrokontroler jaki mamy. Następnie klikamy Connect by się połączyć.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    IPE ostrzega nas, że nie powinniśmy próbować programować PICów na napięcie 3.3V z pomocą ustawień dla PICów na 5V. To dlatego ważne jest byśmy poprawnie wybrali tego PICa jakiego mamy.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Przy przełączaniu na PIC18F pierwszy raz należy troszkę poczekać, gdyż PICKIT3 będzie przestawiać się w tryb programowania tej rodziny. Następne programowania z kolei dokonywać się będą już dość szybko.
    Potem wystarczy tylko wybrać plik hex (przycisk "Browse" z "Hex file") i można wgrywać wsad.
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy
    Po poprawnym wgraniu wsadu powinniśmy otrzymać długo oczekiwany efekt - miganie diodą LED:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    Załączam tutaj pełną paczkę zip z tym przykładem (kod źródłowy .c, plik .bat kompilujący go na każdym komputerze z poprawnie zainstalowanymi SDCC/GPUtils, skompilowany plik .hex):
    p18f2550_..nk.zip Download (9.38 kB)Punkty: 1 dla użytkownika

    Ciąg dalszy tutoriala i przykładów dla PIC18F2550 będzie w następnym temacie.

    Uzupełnienie tutoriala - materiały do zapoznania się
    Oczywiście trudne byłoby w pełni merytoryczne opisanie tutaj wszystkiego związanego z SDCC i PICami, dlatego też zainteresowanych tematem odsyłam do materiałów źródłowych:
    Manual SDCC:
    sdccman-3...5.pdf Download (900.64 kB)
    Manual CodeBlocks:
    codeblocks...ual_en.pdf Download (1.15 MB)
    Krótki opis konfiguracji SDCC i CodeBlocks dla 8051 (proces nieco podobny dla SDCC i PIC):
    CodeBlocks...torial.pdf Download (801.76 kB)

    Podsumowanie
    To była pierwsza część mojego praktycznego tutoriala o darmowym kompilatorze SDCC i PIC18F2550. Tutaj starałem się szczegółowo pokazać konfigurację kompilatora i środowiska na platformach Windows i Linux. Również pokazałem, że można go używać w połączeniu z Code Blocks.
    W następnej części będziemy już programować samego PICa, zajmiemy się podstawami IO, czyli sterowaniem LEDami, obsługą przycisków, prostą komunikacją UART a może nawet też ADC lub PWM.
    PS: Zapraszam do komentowania, jednakże jeśli ktoś ma jakieś mniej merytoryczne uwagi (literówki, złe słowa, drobne poprawki) to proszę z nimi do mnie na PW, temat będę poprawiać i aktualizować, nie róbmy śmietnika na forum.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #3
    p.kaczmarek2
    Poziom 24  
    simw napisał:
    Tytaniczna praca, dziękuję.


    Dziękuję za dobre słowa.

    To raczej dopiero początek serii, zamierzam w praktyczny sposób (i dokładny) opisać większość działań na SDCC i PIC18F2550.

    Wiadomo, że nic nie zastąpi dobrej książki, ale mam styczność z różnymi studentami/czy tam jeszcze uczniami i wiem, że dużo osób (i młodszych i starszych) naprawdę potrzebuje czasem takiego szczegółowego wyjaśnienia krok po kroku co i jak zrobić. Postaram się takie coś dostarczyć.

    No i myślę o czymś podobnym o jakimś 16-bitowym lub 32-bitowym mikrokontrolerze od Microchipa - jakby co to przyjmuję zgłoszenia/sugestie.
  • #4
    bsw
    Poziom 15  
    Przeglądnąłem pobieżnie artykuł, zaintrygował mnie fragment z gniazdem USB - zaświeciła się lampka: czyżby tego PICa można było przez usb programować ?!?
    Niee - niestety potrzebny programator...
    Dziękuję zostaję przy AVR (póki jeszcze są...)
  • #5
    p.kaczmarek2
    Poziom 24  
    bsw napisał:

    Niee - niestety potrzebny programator...


    PICKIT3 (czy tam jego klon) jest bardzo tani.
    To jednorazowy wydatek rzędu 10$ na Ali:
    Tutorial PIC18F2550 + SDCC - Część 1 - Konfiguracja środowiska pracy

    To jest raptem jakieś 40 złotych, a będziesz mógł programować niemalże wszystkie PICe, do tego pamięci, a może też i AVRy (tak jak pisałem w temacie - widziałem, że są wspierane ale nie sprawdzałem).
  • #6
    tangofox
    Poziom 14  
    Chciałby zapytać czy istnieje możliwość używania Pickit3 jako debuggera w codeblocks ?
    Jeżeli tak to może ktoś mógłby wskazać jakieś materiały na ten temat ?
  • #7
    nolens_volens
    Poziom 14  
    Kawał świetnej roboty.
    Dziękuję!
    I czekam z niecierpliwością na ciąg dalszy :)
  • #8
    pier
    Poziom 23  
    bsw napisał:
    Przeglądnąłem pobieżnie artykuł, zaintrygował mnie fragment z gniazdem USB - zaświeciła się lampka: czyżby tego PICa można było przez usb programować ?!?
    Niee - niestety potrzebny programator...
    Dziękuję zostaję przy AVR (póki jeszcze są...)


    A co AVR-y można przez usb programować?
  • #9
    tangofox
    Poziom 14  
    Niby można programować przez USB, ale tak jak w przypadku AVR'ów wymaga to stosownego bootloadera...
    Dla PIC'ów jest taki "odpowiednik" arduino :https://www.pinguino.cc/index.php
  • #10
    And!
    Admin grupy Projektowanie
    Bardzo dobry materiał! Programator PICKIT3 jest dość tani, więc łatwo można rozpocząć zabawę z PIC.

    Co do I2C jako przykład można zaprezentować komunikację z jakimś popularnym RTC np. DS3231.
  • #11
    _lazor_
    Moderator Projektowanie
    Masz jedno nadprogramowe zdjęcie przy dziale "Windows - Ustawienie zmiennej środowiskowej PATH dla SDCC"

    Bardzo dobrze opisany tutorial, cieszę się, że jest jakaś odmiana od AVR i ARM :D