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

MPXLAB Ogólne pytania. Opcje. Zmiany rejestrów. Poprawne makro.

figa_miga 03 Mar 2012 10:44 2125 16
  • #1 03 Mar 2012 10:44
    figa_miga
    Poziom 19  

    Mam kilka pytań co do tego środowiska.


    1.

    Code:
    #pragma config FOSC = INTIO67


    Zapis ten wygenerowany jest na podstawie ustawień w opcjach. Gdzie te opcje się znajdują, bo dokopać się do nich nie mogę.

    2. Zmiany rejestrów. np
    Code:
    OSCCON=0b10000010;


    Chyba najbardziej niebezpieczna wersja

    Code:
    OSCCON= (1<<IRCF2);


    Rodem z AVR jednak IRCF2 trzeba najpierw zdeklarować.

    Code:
    OSCCONbits.IRCF2 = 1;


    Tutaj kompilator sam podpowie co dać po kropce, rozwija sie menu w którym pojawia się opis bitu. Nie wiem czego brakuje ale u mnie np menu z opisem jest puste. Jakim sposobem ustawić, skasować kilka bitów na raz?

    3. Jak poprawnie powinno wyglądać makro np ustawiające pin jako wejście i wystawiające stan niski.

    4. Gdzie można podglądnąć rozmiar kodu, jak przy debugowaniu/symulowaniu podglądać parametry, rejestry, czas, cykle itp.

    0 16
  • #2 03 Mar 2012 11:03
    Jado_one
    Poziom 22  

    1. pragma configi znajdziesz w helpie od MPLABX - np. C18 toolchain -> C18 settings
    albo C32 toolchain ->C32 settings...

    3. To przykładowe makra dla PIC32MX440F512H do zabaw z portami:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #3 03 Mar 2012 13:40
    figa_miga
    Poziom 19  

    Jado_one napisał:
    1. pragma configi znajdziesz w helpie od MPLABX - np. C18 toolchain -> C18 settings
    albo C32 toolchain ->C32 settings...


    No ok, tylko dalej nie wiadomo jak dojść do menu gdzie konfiguruje się fusy

    0
  • #4 03 Mar 2012 18:10
    Jado_one
    Poziom 22  

    O ile ja wiem (bo nie uzywam MPLABX, więc na 100% glowy nie dam) to nie ma takiego menu - te fusy konfiguruje się w kodzie programu.
    W/g helpa jaki Ci podałem

    #pragma config, nazwa fusa i stosowna wartość - taka jaka Ci jest potrzebna

    0
  • #5 03 Mar 2012 18:19
    63404
    Użytkownik usunął konto  
  • #8 03 Mar 2012 18:47
    63404
    Użytkownik usunął konto  
  • #9 03 Mar 2012 19:07
    Jado_one
    Poziom 22  

    Dokładnie :-) - właśnie zaletą PIC'ow jest to, że mają wszystkie fusy zintegrowane z kodem - raz ustawiasz i zapominasz. Nie trzeba się bawić jak w AVR i uważać żeby nie wyłączyć sobie dostępu do procka.

    A i tak do opisu fusów musisz zajrzeć, żeby wiedzieć co one włączają/ustawiają.

    Dodano po 14 [minuty]:

    figa_miga napisał:

    Na temat symulowania też wyczytałem zonki, chyba błędem było sciąganie wersji X

    MPLABX jest jeszcze nie do końca dopracowane - niby wypuścili juz wersję 1.0, ale wciąż jest tam sporo do poprawiania - co widać po problemach użytkowników na forum Microchip'a.
    Widać zresztą, że niektórzy maja problemy inni nie - może mplabx jest czuły na różnice w systemach operacyjnych/driverach usb itp....
    Z czasem pewnie wszytko to zostanie do końca poprawione/opisane.

    Stare MPLAB jest pod tym względem bardziej dopracowane, ale z czasem nie bedzie dalej rozwijane, więc to ślepa uliczka.
    Jeżeli chcesz szybko zacząć i nie użerać się z niedociągnieciami MPLABX, to może lepiej zastosować stare MPLAB.
    Ale trzeba się liczyć z tym, że z przeniesieniem projektów z MPLAB do MPLABX będzie trochę zabawy (jak juz kiedyś bedziesz musiał na nie przejść).

    0
  • #10 03 Mar 2012 19:16
    figa_miga
    Poziom 19  

    Czyli "wizarda" nie ma i dla każdej rodziny trzeba sobie wklepać fusy wedle helpa/manuala...

    Niby to wypuścili nawet v1.10 bo taką mam, importowanie z poprzednich wersji to akurat poszło łatwo (wciągałem ćwiczenia). W "X" jest odpowiedni filmik/tutorial

    0
  • Pomocny post
    #11 03 Mar 2012 22:08
    63404
    Użytkownik usunął konto  
  • Pomocny post
    #12 03 Mar 2012 22:29
    Jado_one
    Poziom 22  

    Kto wie? - jak już uporają się z podstawową funkcjonalnoscią, to może dołożą jeszcze jakiegoś wizarda?
    W sumie to chyba dość szybko im idzie - już jest wersja 1.10?...

    A najlepiej jakby zrobili analizę kodu z uwzględnieniem najnowszych errat i automatyczną podmianę kodu na "workaround" zalecany w tych erratach ((((-;

    0
  • Pomocny post
    #13 03 Mar 2012 22:41
    94075
    Użytkownik usunął konto  
  • #14 03 Mar 2012 23:55
    Jado_one
    Poziom 22  

    No rzeczywiscie :-)

    No cóż - wypada przeprosić kolegę Wątkotwórcę jak i pozostałych za zamieszanie - zasugerowałem się tym tekstem "no longer integrated with IDE" - widocznie Microchip miał co innego na myśli.

    A na przyszłość być ostrożniejszy w wypowiedziach.....

    0
  • #15 04 Mar 2012 12:29
    figa_miga
    Poziom 19  

    No jest. Ok kolejna sprawa, to normalne ze prosta migajka LED zajmuje na dzień dobry 270 bajtów RAM i 300 flash?. Optymalizacja nic nie zmienia.

    Jako dolelowy procek wskazałem 18f1220 zamiast 45k20 i spadło do 77 bajtów RAM i nieco wzrosło na flash

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #16 04 Mar 2012 18:50
    94075
    Użytkownik usunął konto  
  • #17 04 Mar 2012 19:10
    figa_miga
    Poziom 19  

    Ciesze się że odpuściłem Cortexowi.
    Na takich programach to może nie, ale chyba tyczy się to PIC. Analogiczny soft w AVR daje wedle (informacji kompilatora) 130 bajtów Flasha i 0 RAMu. Miałem tego świadomość i dlatego zapytałem. Już pomijając to co faktycznie poleci na rejestry i stos to C18 robi chyba szczególnie duże zapasy

    Idąc dalej tym tropem, nie ma co pisać w C na najmniejsze PICe (obudowach SOT)

    0