Microstick Plus‎ > ‎

Mintaprogramok

Azok számára, akik most ismerkednek a PIC mikrovezérlők C nyelvű programozásával, azok számára elkészült a PIC mikrovezérlők alkalmazástechnikája című könyv C nyelvű mintapéldáinak Microstick Plus gyakorló panelen használható változata.
A mintapéldák itt érhetők el.

Akik megszeretnének ismerkedni a Microchip cég új MPLAB X programfejlesztő felületével, azok számára elérhető egy 12 lépésből álló segédanyag, amely segít létrehozni az első MPLAB X projektünket.
A segédanyag itt érhető el.

A Microstick Plus kártyához elérhető a dr. Cserny István által létrehozott PIC-kwik projekt példaprogramjainak a gyakorlóra átdolgozott változata. A MUNKÁJÁT NAGYON SZÉPEN KÖSZÖNJÜK!!! :-)
A mintaprogramok és egyéb jó ötletek itt érhetőek el.

Microstick Plus mintaprogramok MPLAB X fejlesztőfelülethez


1. számú mintaprogram:
LED-ek és a gomb használata
Rev. A és Rev. B panelhez   Rev. C panelhez

A panelen található gomb nyomva tartása alatt a kék, ellenkező esetben a piros színű LED-ek világítanak.

2. számú mintaprogram:
Timer 1 periféria meghajtása külső oszcillátor segítségével
Rev. A és Rev. B panelhez   Rev. C panelhez
A Timer 1 időzítőt a panelen található 32,768 KHz órakvarc hajtja meg. Az időzítő egy másodpercenként generál megszakítást. A megszakításkezelő függvény egy globális változó értékét növeli egyel. A globális változó értéke a gyakorlópanelen lévő LED-ekre van hatással. A LEDsor lévő ábrázolást a gyakorlón található gomb segítségével meg lehet változtatni.

3. számú mintaprogram:
Potenciométer értékének beolvasása
Rev. A és Rev. B panelhez   Rev. C panelhez
A potenciométer által előállított feszültséget a mintaprogram beolvassa az analóg-digitális konverter periféria segítségével, majd a beolvasott feszültségértékkel arányos adatot helyez ki a LEDsorra. A LEDsor lévő ábrázolást a gyakorlón található gomb segítségével meg lehet változtatni.

4. számú mintaprogram:
Passzív piezzo hangszóró meghajtása
Rev. A és Rev. B panelhez   Rev. C panelhez
A mintapélda a panelon található passzív csipogót hajtja meg 4 KHz-es 50%-os kitöltésű PWM jellel. A PWM jel előállítása Output Compare modul segítségével történik. Az Output Compare modult a Timer2 időzítő hajtja meg. A piezzo hangszóró a panelen található gomb nyomva tartása alatt szól. 

5. számú mintaprogram:
Rotary Encoder használata
Rev. A és Rev. B panelhez   Rev. C panelhez
A panelon található rotary encoder a mikrokontroller RB6 és RB7 lábára csatlakozik. Az encoder egymástól 90o-al eltolt négyszögjelet állít elő tekerés hatására. A két jel egymáshoz viszonyított helyzetéből eldönthető a forgatás iránya. ( További részletek. ) A program Change Notification megszakítást használja. Amikor az RB6 vagy RB7 lábon lévő érték megváltozik, akkor mindkét láb értékét beolvassa a program, és szoftveres úton eldönti a forgatás irányát. A megszakításkezelő függvény a feltételek alapján vagy csökkenti vagy növeli egy globális változó értékét. A globális változó értékét a főprogram a LEDsoron jelzi ki. A panelen található gomb segítségével a kijelzés megváltoztatható.

6. számú mintaprogram:
UART1 soros port használata
Rev. A és Rev. B panelhez   Rev. C panelhez
A mintapélda a panelen található MCP2200 Soros-USB átalakító segítségével kommunikál a hozzá csatlakoztatott számítógéppel. A program indulás után kiküld egy mintaszöveget, majd karaktereket fogad a soros portról. A beolvasott karakter ASCII értékének alsó négy bitjét kihelyezi a LEDsorra, és a teljes karakter értéket visszaküldi a soros portra is.

Megjegyzések:

  • A soros port beállításai:
    9600 baud átviteli sebesség, 8 bites átvitel paritás használata nélkül, 1 stopbit használata.
  • PC oldalon Windows operációs rendszert használóknak a Docklight programot ajánlom.
    A Soros-USB átalakító meghajtó programjai letölthető a termék oldaláról. ( http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en546923 )
  • Linux operációs rendszert használóknak a Minicom programot ajánlom. A program a főbb disztribúciók alapcsomagjában megtalálható. Használatáról a következő videó ad segítséget. Az MCP2200 legtöbb esetben /dev/ttyACM0 porton keresztül érhető el. Linux operációs rendszerben a soros portot használni kívánó felhasználók dialout csoport tagjának kell lenniük. 2.4 kerneltől az átalakító IC-t az operációs rendszer automatikusan felismeri, meghajtó program telepítésére nincsen szükség.
  • A mintapéldában található write.c állomány segítségével az alapértelmezett kimenet az UART1 soros port lesz, így például a printf(...) függvény is az UART1 soros port-ra fog írni.

7. számú mintaprogram:
Referencia feszültség kijelzése
Rev. A és Rev. B panelhez   Rev. C panelhez
A panelen található MCP1525 2,5 V-os referencia feszültség IC kimeneti feszültségét méri, és a mért feszültséget mV-ban kiküldi az UART1 soros portra.

8. számú mintaprogram:
Hőmérséklet kijelzése
Rev. A és Rev. B panelhez   Rev. C panelhez
A panelen található TC1047 analóg hőmérő IC kimeneti feszültségét méri, és a mért feszültségnek megfelelő hőmérséklet értékét kiküldi az UART1 soros portra.

9. számú mintaprogram:
Kapacitív gomb használata
Rev. A és Rev. B panelhez   Rev. C panelhez
A kapacitív gomb érzékelése kapacitás megosztás elven működik (CVD). A módszer lényege, hogy a gomb kapacitása és a mikrokontrollerben található A/D konverter mintavételező kondenzátor kapacitás összemérhető tartományban található. Ha a gombhoz közeledünk, akkor a gomb kapacitása megváltozik, és ez a változás megmérhető. ( További részletek )
A program indulás után inicializáló mérést végez, majd ehhez az értékhez hasonlítja a további mért értékeket. A mért értékeket kiküldi az UART1 soros portra. A program akkor tekinti megnyomottnak a gombot, ha gombon mért feszültség értéke az inicializáló méréshez képest 6,5%-al megváltozott. A gomb megnyomását a LEDsor is kijelzi.

Megjegyzés:

  • A program saját függvény segítségével méri a gomb kapacitását. A Microchip szoftverkönyvtáraiban is találunk megoldást kapacitív gomb használatára.
  • PIC24H típusú mikrokontrollerhez található CVD módszeren alapuló mintapéldák a következő oldalon tölthetők le.

10. számú mintaprogram:
Beépített ECAN periféria használata
A mintapélda a rotary encoder, gomb és kapacitív gomb hatására különböző CAN üzeneteket helyez ki a CAN buszra. A mintapélda egyben üzeneteket is fogad a CAN buszról amelyek tartalma alapján vezérli a LED sort.
A program először a CAN perifériát (fogadási maszk, filterek, stb) és a DMA perifériát konfigurálja fel. A program az egyes bemeneti perifériák kezelésére a többi mintapéldában bemutatott megoldásokat használja .
A gomb megnyomása és felengedése hatására a program CAN üzenetet generál a buszra. Az üzenet ID értékét a CAN_ID_BUTTON (ecan_app.h) makró definiálja. A kapacitív gomb megnyomása és felengedése hatására, hasonló módon a mechanikus gombhoz, szintén üzenetet generál a program. Az üzenet ID értékét a CAN_ID_TOUCH (ecan_app.h) makró definiálja. Mindkét üzenet hatására a fogadó oldalon az első adat byte alapján LED-ek be- vagy kikapcsolódnak.
A rotary encoder forgatása eredményeként a program CAN_ID_ENCODER (ecan_app.h) makróban definiált üzenetet generál a buszra. 
Az így keletkezett üzenetek hatására a fogadó oldalon a program szintén a LED sort vezérli, amely a LED_MODE (ecan_app.h) makró értékének alapján kétféle módon is történhet (SHIFT or DIR_IND).
A fogadó filter konfigurálása a ecan_app.h fejlécállományban definiált ACCEPT_ROTARY, ACCEPT_BUTTON, and ACCEPT_TOUCH makrók segítségével történik.
További információ a beépített ECAN periféria használatáról: AN1249