logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

PIC16F1459 - Jak programować PIC po doświadczeniach z AVR (Arduino)?

mariomario 08 Cze 2015 20:27 9201 47
Najlepsze odpowiedzi

Jak najtaniej i najprościej programować mikrokontrolery PIC oraz w jakim środowisku zacząć po doświadczeniach z AVR/Arduino?

Najprościej zacząć od PICkit 3 oraz MPLAB X z kompilatorem XC8, bo to polecane darmowe środowisko, a PICkit 3 działa też jako debugger i sam ogarnia kwestie programowania [#14755598][#14755875][#14801399] Jeśli chcesz pisać głównie w C po AVR-ach, lepiej rozważyć PIC18 zamiast 12F/16F, bo rodziny 12F i 16F są prostsze i częściej programuje się je asemblerem, a PIC18 są bardziej przyjazne dla C [#14763943] Litera „L” w oznaczeniu oznacza wersję na niższe napięcie pracy: PIC16LF145X ma zakres 1.8–3.6 V, a PIC16F145X 2.3–5.5 V [#14755711] Do nauki i rozwiązywania problemów warto korzystać z dokumentacji Microchipa, forum Microchipa oraz książek, m.in. Tomasza Jabłońskiego i Bohdana Borowika [#14762331][#14764534]
Wygenerowane przez model językowy.
REKLAMA
  • #1 14755420
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Witam,

    dotychczas programowałem mikrokontrolery AVR na poziomie średnim (Arduino w Arduino IDE).
    Dostałem niedawno kilka całkiem fajnych PIC'ów i chciałbym je zaprogramować.

    I tu przychodzą pytania - czym programować (programator - najlepiej jak najtańszy lub jakieś proste projekty, które samemu można szybko wykonać) oraz w jakim środowisku (może jakieś kursy/tutoriale najlepiej w języku polskim, ale angielski też może być).

    mam kilka "gołych" układów PIC (PIC12LF1552 , PIC16F1455 , PIC12F675 , PIC16F1459) i chciałbym je jakoś wykorzystać ;)
  • REKLAMA
  • Pomocny post
    #2 14755598
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Jeśli chcesz się bawić PICami, to najlepiej zainwestuj w PICKit 3. Obsługuje chyba wszystkie PICi. Z tańszych opcji, kiedyś używałem klona ICD2, ale MplabX go nie obsługuje.
  • #3 14755635
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    don diego napisał:
    Jeśli chcesz się bawić PICami, to najlepiej zainwestuj w PICKit 3. Obsługuje chyba wszystkie PICi. Z tańszych opcji, kiedyś używałem klona ICD2, ale MplabX go nie obsługuje.


    Też zdążyłem doczytać że to chyba najlepsza opcja dla PIC'ów :) ale czytałem też że oryginalne kosztują ok 150-200zł a znalazłem na "chińskich" stronach za ok 14$ czyli jakieś 52zł w tym już wysyłka - i mam pytanie czy to są te oryginalne ? 50zł to niby nie tak dużo, choć więcej niż USBasp dla AVR .. ;)

    Dodatkowo zauważyłem że są uP co mają w nazwie literę "L" np PIC16F1459 oraz ten sam z ta literą PIC16LF1459. Czym się różnią ?
  • Pomocny post
    #5 14755711
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    mariomario napisał:
    ... i mam pytanie czy to są te oryginalne ?

    Myślę, że znasz odpowiedź :)

    mariomario napisał:
    Dodatkowo zauważyłem że są uP co mają w nazwie literę "L" np PIC16F1459 oraz ten sam z ta literą PIC16LF1459. Czym się różnią ?

    Oj zaglądnij do dokumentacji: http://ww1.microchip.com/downloads/en/DeviceDoc/40001639B.pdf

    Już na pierwszej stronie najważniejsza różnica:

    Cytat:
    Special Microcontroller Features:
    • Operating Voltage Range:
    - 1.8V to 3.6V (PIC16LF145X)
    - 2.3V to 5.5V (PIC16F145X)


    EDIT:
    mariomario napisał:
    50zł to niby nie tak dużo, choć więcej niż USBasp dla AVR .. ;)

    Pickit 3 to także debugger, czyli o niebo więcej niż zwykły programator USBasp.
    Dla AVR debuggery są tak samo w cenie jak te Microchipa, czy innych producentów.
  • #6 14755804
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Wyczytałem też że w PIC'ach jest możliwość programowania niskonapięciowego i wysokonapięciowego - jak rozróżnić, które jakim napięciem trzeba programować ?
  • #8 14762233
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Zamówiłem PICkit 3 :) (klona wyglądającego jak oryginał za 14 $, w komentarzach ludzie odpowiadali że programator ten w 100% działa z MPLAB'em).

    Mam jeszcze pytanie - czy znacie jakieś dobre książki lub strony (mogą być w języku angielskim choć lepiej gdyby były po polsku) poświęcone programowaniu PIC'ów lub jakieś fora ?
  • REKLAMA
  • Pomocny post
    #10 14763943
    Marico
    Poziom 20  
    Posty: 409
    Pomógł: 28
    Ocena: 60
    Nie wiem czy wybór 16F jest dobry, jeśli programowałeś Atmegi powinieneś raczej kierować się ku układom 18F, które są bardziej konkurencyjne dla Atmegi, mają więcej RAM niż 16F no i konstrukcyjnie przyjazne językowi C. 12F i 16F to układy prostsze, z reguły chętniej programowane asemblerem niż C.
  • Pomocny post
    #11 14764534
    szymonjg
    Poziom 16  
    Posty: 133
    Pomógł: 17
    Ocena: 24
    Z polskich autorów książek o microchipie kojarzę Tomasza Jabłońskiego. Ma całkiem fajną książkę w której opisał kilka programów w języku C na jakiegoś PIC12 i na nieśmiertelnego PIC16F84. O assemblerze na PIC16F84 jest dobra książka Bohdana Borowika. Tytułu nie pamiętam, ale miała ona na okładce małe dziecko ciągnięte wagonik lub wózeczek. Z angielsko-języcznych tytułów podobno Włoch o nazwisku di Jasio pisał dobre książki.

    Wiele problemów ja rozwiązywałem szukając informacji po forach np. kopiując do googla nieznany komunikat kompilatora o błędzie.
    Nie wiem czy do starszych PICów też, ale do PIC18 oprócz dokumentacji do są jeszcze dodatkowo specjalne Reference Manual'e opisujące szczegółowiej działanie poszczególnych modułów. W sumie działanie tych modułów jest podobne w obydwu tych rodzinach, także poczytać nie zaszkodzi.
  • #12 14764919
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Marico napisał:
    Nie wiem czy wybór 16F jest dobry, jeśli programowałeś Atmegi powinieneś raczej kierować się ku układom 18F, które są bardziej konkurencyjne dla Atmegi, mają więcej RAM niż 16F no i konstrukcyjnie przyjazne językowi C. 12F i 16F to układy prostsze, z reguły chętniej programowane asemblerem niż C.


    Mam też jedną sztukę PIC18F14K50 z obsługą USB 2.0 i jak nauczę się programować PIC'e (jak przyjdzie mi zamówiony programator PICkit 3) to będę chciał wgrać na ten mikrokontroler bootloader tak aby programować go bezpośrednio z USB ( choć wiem że nie ma w tej "kostce" zbyt dużo pamięci bo tylko 16KB ;) ).

    Panowie jeszcze mam pytanie - czy znacie jakieś dobre strony z bibliotekami dla PIC'ów ? bo nie ukrywam że pierwszy projekt jaki chcę zrealizować (który już zrealizowałem na AVR i działa poprawnie) będzie pomiar napięcia na 1 linii ADC i w zależności od pomiaru program będzie czekał na poprawne napięcie, a jeśli się pojawi to załączy czujnik temperatury na DS18B20 i jeśli ten wskaże niższą temperaturę od zadanej to ma załączyć MOSFET-a ;). A całość będzie od samego początku wyświetlać informacje na LCD HD47780... Ok i tu rodzi się pytanie - czy znajdę gdzieś gotowe biblioteki dla DS18B20 oraz HD47780 najlepiej dla rodzin PIC12 / PIC16 / PIC18 (będę testować projekt na każdej rodzinie) ?

    Dodatkowo kolejne pytanie :D .. jak ustawiać prędkość taktowania mikroprocesora ?
    PIC16F1459 - Jak programować PIC po doświadczeniach z AVR (Arduino)?

    Przypuśćmy że chcę ustawić PIC12LF1552 na 1MHz (internal) - jak mam ustawić bit FOSC ?
  • Pomocny post
    #13 14764949
    szymonjg
    Poziom 16  
    Posty: 133
    Pomógł: 17
    Ocena: 24
    Na HD47780 w języku C biblioteki są uniwersalne. Trzeba tylko przedefiniować nazwy portów na te Microchipowe. Szkopuł może być w tym, że ustawiając port jako wyjście do rejestru wyboru kierunku PICach wpisujemy 0 a w AVR'ach i ARM'ach jest chyba na odwrót. Popularna biblioteka do tego wyświetlacza jest na stronie radzio.dxp napisana przez Radosława Kwietnia.

    Aby skonfigurować taktowanie to po pierwsze w programowalnych bitach konfiguracyjnych wybiera się źródło taktowania na Internal Oscilator. Nie wiem czy w nowym MplabX też, ale w starym Mplab 8.x po stworzeniu projektu dla danego mikrokontrolera wybieramy w menu Configure->Configuration Bits... i tam mamy wszystkie te bity programowalne.
    Gdy już wybierzemy sobie źródło taktowania jako wewnętrzny oscylator to już w kodzie podczas działania programu możemy ustawiać jego taktowanie wpisując odpowiednią wartość do bitów IRCF rejestru OSCCON. Szczegóły w dokumentacji w dziale Oscilator Module.
  • Pomocny post
    #14 14764951
    Konto nie istnieje
    Poziom 1  
  • #15 14766172
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Marek_Skalski napisał:
    @mariomario
    Znalazłeś rysunek dystrybucji sygnałów zegara, ale do opisu rejestrów już nie przewinąłeś? Zapoznaj się z treścią strony 42. w DS40001674E; w szczególności: REGISTER 5-1: OSCCON: OSCILLATOR CONTROL REGISTER i nie zadawaj zbędnych pytań.


    ok znalazłem :)

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    choć mam kolejne pytanie.. Jak ustawić np tylko jedną nóżkę np. RA0 (a nie cały port) aby była tylko wyjściem i zapisać na niej stan HIGH ?

    W Arduino IDE (dla AVR) wg. mnie łatwiej było można to zdefiniować, w "czystym" języku C jeszcze nie programowałem mikrokontrolerów:

    ...
    byte LED = SCK;
    ...
    pinMode(LED, OUTPUT);
    ...
    DigitalWrite(LED, HIGH);
    ...






    //Edit//
    Chyba sam odpowiedziałem na swoje pytanie - proszę o sprawdzenie poprawności poniższego fragmentu kodu

    PIC16F1459 - Jak programować PIC po doświadczeniach z AVR (Arduino)?

    Dla pinu RA0 (nóżka 7, PIC12LF1522)
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #16 14772124
    szymonjg
    Poziom 16  
    Posty: 133
    Pomógł: 17
    Ocena: 24
    Ustawianie poszczególnych pinów, czy też w ogóle poszczególnych bitów w rejestrach zależy od tego czy i jak są one definiowane w bibliotekach kompilatora.

    Zawsze można zapisywać wartości całymi rejestrami, albo używać maskowania bitów.

    A powyższy kod jest zły po próbujesz ustawiać bity z PORTA w rejestrach PORTB
  • REKLAMA
  • #17 14774445
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    szymonjg napisał:
    Ustawianie poszczególnych pinów, czy też w ogóle poszczególnych bitów w rejestrach zależy od tego czy i jak są one definiowane w bibliotekach kompilatora.

    Zawsze można zapisywać wartości całymi rejestrami, albo używać maskowania bitów.

    A powyższy kod jest zły po próbujesz ustawiać bity z PORTA w rejestrach PORTB


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    powyższe przykłady napisałem poprawnie ?
  • REKLAMA
  • Pomocny post
    #18 14774680
    Konto nie istnieje
    Konto nie istnieje  
  • #19 14783921
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Tak więc dotarł już do mnie programator PicKit 3 (działa tak jak powinien, testowałem go na kilku różnych PIC'ach prostym "blinkiem")i chcę zacząć naukę programowania PIC'ów , chciałbym teraz podłączyć 1x czujnik temperatury DS18B20 bez wyświetlacza (aby PIC zapamiętywał temperaturę do zmiennej w °C) i pytanie jak przerobić poniższy kod (poniższy kod obsługuje wyświetlacz i 2 czujniki ds18b20) aby zadziałał na którymś z pic'ów -> PIC12LF1552 / PIC12F675 / PIC12F1840 (dopiero uczę się ustawiać rejestry I/O , WTD, pomiar ADC, rejestry FOSC itp. i to sprawia mi największą trudność jak narazie więc proszę o wyrozumiałość.. "programowanie AVR (Arduino) w Arduino IDE nie wymagało ode mnie znajomości tych rejestrów" ;) )

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #20 14784011
    Urgon
    Poziom 38  
    Posty: 7227
    Pomógł: 197
    Ocena: 2630
    AVE...

    To, co Cię interesuje znalazłem po kilku chwilach z Google-fu: http://www.dutchforce.com/~eforum/index.php?showtopic=43185
    Jedna rada na przyszłość: czytaj dokładnie noty katalogowe i erraty dla mikrokontrolerów. Normalne środowisko programistyczne nie ułatwia niczego, dlatego będziesz ustawiał wiele rejestrów ręcznie, chyba że zaczniesz używać gotowych bibliotek. Cierpliwym musisz być i spokojnym, gdyż początki zawsze są trudne.
  • #21 14798903
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Zaczynam powoli rozumieć o co chodzi z rejestrami, aktualnie bawię się PIC12F1840 (7KB flash, 256B RAM, 256B EEPROM, PDIP8).
    Czy moje poniższe ustawienia są poprawne ?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    0x50 0x49 0x43 :)
  • #22 14799054
    szymonjg
    Poziom 16  
    Posty: 133
    Pomógł: 17
    Ocena: 24
    Nie potrzebnie pytasz. Wystarczy tylko sprawdzić w dokumentacji. Po co ma ktoś to sprawdzać za Ciebie jak równie dobrze możesz zrobić to sam. Zresztą niektóre opisy masz już z dokumentacji chyba więc na pewno do niej zaglądałeś.

    Więc jeśli już wiesz co oznaczają poszczególne bity w rejestrach to nie pozostaje Ci nic innego jak tylko skompilować kod i wgrać do procesora. I jeśli będzie działał tak jak trzeba to znaczy, że jest dobrze, a jeśli nie to próbuj innych ustawień aż do skutku.
    Jak już wyczerpiesz wachlarz możliwości to wtedy dopiero zadaj pytanie na forum opisując co i jak działa lub nie.

    Przypomnę tylko, że zapis rejestrów w funkcji main (i innych) podczas działania programu możemy robić tylko do tych rejestrów które są "writable" (literka W przy nazwie bitu w tabelce w dokumentacji) A rejestry które nie są "writable" a tylko "programable" zapisujemy w inny sposób, który opisałem już wcześniej na przykładzie tego starszego MPlaba.

    Poza tym MCLRE nie jest rejestrem a tylko bitem rejestru, a w przypadku tego mikrokontrolera, słowa CONFIGURATION WORD 1.

    Poprawne są te zapisy co do których kompilator nie zgłasza błędu.
  • Pomocny post
    #23 14800609
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14452
    Pomógł: 650
    Ocena: 12443
    mariomario napisał:


    mam kilka "gołych" układów PIC (PIC12LF1552 , PIC16F1455 , PIC12F675 , PIC16F1459) i chciałbym je jakoś wykorzystać ;)


    te bez wersji L byś zaprogramował nawet zwykłym JDMem na paru tranzystorach, troszkę przesadą tu jest kupno PICKITa, ale zależy, jakie masz plany...
    Pomogłem? Kup mi kawę.
  • #24 14801330
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Już pierwsze kompilacje za mną ;) (software reset - wstawka z ASM, blinki, ustawianie rejestrów, odczyt stanu pinów cyfrowych)
    Ale mam pytanie czy ten poniższy kod pomiaru stanu analogowego na pinie RA0(AN0) dla PIC12F1840 można jakoś prościej (mniej linijek kodu) zapisać ? (tak aby działało to dalej na MPLABie i XC8)

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    I jeszcze korzystając z okazji... czy są jakieś równie dobre środowiska programistyczne dla PIC'ów jak MPLAB X IDE ? Czytałem że jest też MikroC for PIC (Link) ale ma ograniczenie do 2KB kodu..

    które środowisko jest lepsze ? lub czy są jakieś dobre/lepsze/polecane darmowe środowiska konkurencyjne dla MPLAB'a ?
  • #25 14801399
    Urgon
    Poziom 38  
    Posty: 7227
    Pomógł: 197
    Ocena: 2630
    AVE...

    Nie musisz umieszczać dodatkowej pętli while(1) w pętli głównej, bo wszystko w pętli głównej będzie wykonywane ciągle. Ustaw przerwanie dla ADC i w pętli obsługi przerwania wartość odczytuj. W ten sposób mikrokontroler może robić inne, interesujące rzeczy czekając na pomiar. Mikrokontrolery z reguły są dużo szybsze od ADC.
    Co do MPLABX i XC8 to jest to najlepsze darmowe środowisko do programowania PICów. Są też takie rzeczy, jak Pinguino czyli Arduino dla niektórych PICów, ale wygląda to przeciętnie. Wspiera: PIC18Fx450, PIC18Fx5(K)50, PIC18Fx6J50 i PIC18Fx7J53, oraz rodzinę: PIC32MX Mips. Z płatnych to najmilej mi się pracuje w MikroPascalu od Mikroelektroniki, testowałem też MikroC, ale generalnie C nie lubię. Był też PICBasic oraz zupełna ciekawostka, czyli Flowcode.
    Wielką zaletą MPLABX i XC8 jest spora biblioteka gotowych kodów i przykładów dostępna na stronach Microchip.
  • #26 14801532
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Urgon napisał:
    AVE...

    Nie musisz umieszczać dodatkowej pętli while(1) w pętli głównej, bo wszystko w pętli głównej będzie wykonywane ciągle. Ustaw przerwanie dla ADC i w pętli obsługi przerwania wartość odczytuj. W ten sposób mikrokontroler może robić inne, interesujące rzeczy czekając na pomiar. Mikrokontrolery z reguły są dużo szybsze od ADC.
    Co do MPLABX i XC8 to jest to najlepsze darmowe środowisko do programowania PICów. Są też takie rzeczy, jak Pinguino czyli Arduino dla niektórych PICów, ale wygląda to przeciętnie. Wspiera: PIC18Fx450, PIC18Fx5(K)50, PIC18Fx6J50 i PIC18Fx7J53, oraz rodzinę: PIC32MX Mips. Z płatnych to najmilej mi się pracuje w MikroPascalu od Mikroelektroniki, testowałem też MikroC, ale generalnie C nie lubię. Był też PICBasic oraz zupełna ciekawostka, czyli Flowcode.
    Wielką zaletą MPLABX i XC8 jest spora biblioteka gotowych kodów i przykładów dostępna na stronach Microchip.


    W internecie wyczytałem, że MPLAB®X IDE w darmowej wersji bardzo słabo optymalizuje kod wynikowy (.HEX). Czy w wersji PRO optymalizacja faktycznie działa aż tak dobrze (jak na załączonym obrazku) że np do uC PIC12F675 (1,75KB pamięci, 64B RAM, 128B EEPROM) lub PIC12LF1552 (3,5KB pamięci, 256B RAM) zmieściłbym:
    obsługę wyświetlacza HD47780 2x16 poprzez ekspander PCF8574 + pomiar ADC + odczyt temperatury z 2szt DS18B20 + prezentacja danych na wyświetlaczu (napięcie, temperatura z czujników) + obliczenia + software reset w ASM (funkcja) + obsługę z 2 portów I/O (1 dla przycisku "button" z pull up'em programowym jednocześnie odczyt stanu "buttona" poprzez 2 if'y z delay'em które niwelują debouncing, drugi jako wyjście które ma podać stan wysoki przez chwilę, po spełnieniu kilku warunków) ?

    Chodzi mi o to czy ta optymalizacja faktycznie działa tak jak na załączonym niżej obrazku ?

    Dodam że kod taki już napisałem dla AVR (Arduino mini, wszystko napisane w Arduino IDE) i działa tak jak chcę ale kod wynikowy zajmuje prawie 10KB w pamięci Flash, 0B w EEPROM, i ok 1KB RAM...

    PIC16F1459 - Jak programować PIC po doświadczeniach z AVR (Arduino)?
  • Pomocny post
    #27 14801729
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14452
    Pomógł: 650
    Ocena: 12443
    To raczej zależy od tego jaki kod, ale mógłbyś znaleźć kogoś z wersją PRO i porównać rozmiary z jeo wynikiem kompilacji Twojego kodu.
    Ale jak patrzyłem na ceny w sieci to te większe PICe nie są o wiele droższe od tych mniejszych, więc nie wiem czy warto się tą optymalizacją przejmować. Jak robisz amatorsko to cena jednego układu większa o 50gr Ci nie zrobi różnicy, co innego, jakbyś produkował tysiące zestawów...
    Pomogłem? Kup mi kawę.
  • Pomocny post
    #28 14801952
    Urgon
    Poziom 38  
    Posty: 7227
    Pomógł: 197
    Ocena: 2630
    AVE...

    Przykład z MikroPascal, prosty kod do małego alarmu na PIC16F84A. Optymalizacja ustawiona na zero dała takie wyniki RAM: 4, ROM: 211 słów. Optymalizacja ustawiona na pięć zaś dała RAM: 4, ROM: 178 słów. Inny program, z kilkoma operacjami na liczbach zmiennoprzecinkowych pisany na PIC16F1827 dał takie wyniki: bez optymalizacji 122/3954 słów RAM/ROM; z maksymalną optymalizacją 122/3984 słów. Zatem optymalizacja nie zawsze daje lepsze wyniki.
  • #29 14816214
    mariomario
    Poziom 18  
    Posty: 707
    Pomógł: 17
    Ocena: 140
    Po pierwszych bojach a czymś bardziej ambitnym niż "blink", a mianowicie obsługą wyświetlacza HD47780 (takiego -> Link) już nie mogę się połapać co robię źle - wyświetlacz ten po podłączeniu wg. schematu poniżej wyświetla takie coś:
    PIC16F1459 - Jak programować PIC po doświadczeniach z AVR (Arduino)?
    PIC16F1459 - Jak programować PIC po doświadczeniach z AVR (Arduino)?

    uC PIC16F1459, kość programowana była bezpośrednio z programatora i proces programowania i weryfikacji był poprawny, programator PICkit3, kod programu (pisane i kompilowane w MPLAB X IDE v3.05 + kompilator MPLAB® XC8 Compiler v1.34), dodatkowo plik lcd.h jest w tym samym folderze co plik main.c:

    main.c
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    lcd.h
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    oba pliki umieściłem w tym samym folderze projektu dla MPLAB
  • #30 14816240
    Urgon
    Poziom 38  
    Posty: 7227
    Pomógł: 197
    Ocena: 2630
    AVE...

    Upewnij się, że wszystko dobrze podłączyłeś. Mi się tak robiło w projekcie miernika pojemności, gdy jeden z przewodów "nie stykał".

Podsumowanie tematu

✨ Użytkownik, który wcześniej programował mikrokontrolery AVR, poszukuje informacji na temat programowania mikrokontrolerów PIC, w szczególności PIC16F1459 oraz innych modeli. W dyskusji poruszono kwestie dotyczące wyboru programatora, z rekomendacją zakupu PICKit 3, oraz różnice między modelami PIC z literą "L" w nazwie, które odnoszą się do napięcia pracy. Użytkownicy dzielili się doświadczeniami związanymi z programowaniem w MPLAB X IDE oraz korzystaniem z bibliotek do obsługi wyświetlaczy LCD HD44780 i czujników DS18B20. Problemy z wyświetlaniem na LCD były często związane z błędami w połączeniach oraz ustawieniem kontrastu. Wskazówki dotyczące optymalizacji kodu w MPLAB X IDE oraz porady dotyczące użycia rejestrów PORT i LAT również były częścią dyskusji.
Wygenerowane przez model językowy.
REKLAMA