0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeProgramiranje PIC32 (3)

    Programiranje PIC32 (3)

    32-bitni mikrokontrolerji prinašajo v svetova elektrotehnike in računalništva povsem nove dimenzije. Hitrost, odzivnost, sorazmerno veliko pomnilnika in strojno podprto digitalno procesiranje signalov omogočajo, da vse več analognih komponent nadomestimo s programsko logiko. Hkrati lahko izdelamo kakovostnejše rešitve.

    Slike niV preteklem nadaljevanju smo novo teoretično znanje PIC32 praktično uporabili na prototipni plošči PC USB Projects in na Microchip PIC32MZ Embedded Connectivity Starter Kitu. Vse je bilo »začinjeno« s programerskimi triki, ki bistveno olajšajo dostopnost posameznih funkcionalnosti ter pohitrijo delovanje.

    Tokrat bomo najprej spoznali podporo za delo z biti, s pomočjo katere lahko enostavno brišemo, postavljamo ali invertiramo bite v posameznih krmilnih registrih PIC32, in enoto za preslikavo vhodov in izhodov funkcijskih enot mikrokontrolerja na posamezne priključke na ohišju mikrokotrolerskega čipa, PPS (angl. peripheral pin select). Nato se bomo lotili dela s časovniki, ki jih lahko uporabimo za generiranje signalov, merjenje signalov, štetje impulzov in druga opravila. Vendar si moramo pri ustvarjanju impulzov pogosto pomagati tudi z enotami za izhodno primerjanje. Zato bomo pred praktičnim primerom razložili tudi njihovo delovanje.

    Mikrokontrolerji PIC32MZ imajo zato kar 9 časovnikov, PIC32MX pa po 5. Poleg teh imajo še poseben časovnik, »pes čuvaj« (angl. watchdog timer), ki preverja, ali program v mikrokontrolerju deluje, družina PIC32MZ pa ima še števec »mrtveca« (angl. deadman timer), ki omogoča odkrivanje odpovedi posameznih funkcionalnosti programske opreme. Obenem lahko »psa čuvaja« sprogramiramo tudi tako,da v izbranih intervalih zbuja mikrokontroler iz spanja, denimo, da periodično preverja stanje tipal. S tem lahko bistveno zmanjšamo porabo energije.

    Zgradba in delovanje

    Podpora za delo z biti

    Slike niV svetu mikrokontrolerjev moramo pogosto posamično krmiliti določen digitalni izhod. Res je, da se lahko »prižiganja« in »ugašanja« posameznih bitov lotimo tudi s »klasičnimi« strojnimi ukazi za logične ALI (angl. OR), IN (angl. AND), NEGACIJO (angl. NEGATION), INVERTIRANJE (angl. INVERT), … bajtov ali daljših pomnilniških besed. Vendar na tak način ne moremo spremeniti vrednosti posameznega bita z enim strojnim ukazom.

    Čeprav ima CPE v PIC18 posebne strojne ukaze za delo z biti (postavljanje, brisanje, invertiranje), so snovalci PIC32 izbrali drug princip. Namesto tega, so za vsak krmilni register <ime osnovnega registra>, kjer je to smiselno, uvedli še 3 dodatne registre, ki so jih poimenovali »<ime osnovnega registra>CLR«, »<ime osnovnega registra>SET« in »<ime osnovnega registra>INV«. Manjša slabost podpore za delo z biti pri PIC32 je le ta, da je ne moremo uporabiti za poljubno pomnilniško lokacijo. Je pa, po drugi strani, odločitev Microchipa za tak pristop razumljiva, saj so v PIC32 vgradili CPE z MIPS arhitekturo, ki je bila razvita za delovne postaje, ki smo jih uporabljali v devetdesetih letih preteklega stoletja.

    Celotni članek

    rogramiranje PIC32 (3)

    2015_SE228_50