Kennismaking: flikkerende ledjes

In deze tutorial maak je voor het eerst kennis met het Dwengo-bord. Stap voor stap leer je hoe je de programmeeromgeving en de compiler moet installeren, hoe je de dwengo-programmer aansluit en hoe je uiteindelijk je eerste programma op het Dwengo-bord zet en uitvoert.

Benodigdheden

  1. Een Dwengo-experimenteerbord
  2. Een Dwengo-programmer
  3. De bijbehorende USB-kabel
  4. Internetverbinding

Installeren van de software

Surf naar de MPLABX-pagina van Microchip External link en klik op de knop MPLABX free download. Vervolgens download en installeer je voor het besturingssysteem naar keuze (windows, linux of mac) zowel MPLABX IDE v1.2 (of hoger). Daarna surf je naar de Microchip C18 compiler pagina External link en download je MPLAB C18 Lite Compiler for PIC18 MCUs v3.40 (of hoger). Volg de standaard installatie-procedure.

Om het programmeren eenvoudiger te maken, heeft Dwengo een bibliotheek ontwikkeld die de laag niveau details van de PIC18F4550 microcontroller verbergt, zodat het programmeren eenvoudiger en intuïtiever wordt. In de tutorials wordt dankbaar gebruik worden gemaakt van deze bibliotheek.

Om de bibliotheek te gebruiken moet je enkel het zip-bestand downloaden en extraheren. Vervolgens kopieer je het lib-bestand naar de map microchip/mplabc18/v3.40/lib terwijl je de h-bestanden in de map microchip/mplabc18/v3.40/h plaatst. Merk op dat de exacte locatie en versienummer van de mplabc18-map kan verschillen van besturingssysteem tot besturingssysteem. Voor meer achtergrondinformatie over de dwengo bibliotheek verwijzen we naar de dwengo bibliotheek pagina.

Jouw eerste project

Stap 1: aanmaken eerste project

Wanneer alles goed geïnstalleerd is kunnen we beginnen met een eerste project aan te maken. Daarvoor start je MPLAB X op en kies je in het menu File voor New Project. Er zal een wizard opstarten waarbij je volgende zaken moet kiezen:

Kiezen projectsoort

MPLAB X project wizard


Aanduiden PIC: PIC18F4550

PIC kiezen


Kiezen programmeertoestel: PicKit 2

PicKit 2


Kiezen compiler: C18

C18


Kiezen projectnaam

projectnaam

Jouw project is nu succesvol aangemaakt, het schrijven van de code kan beginnen.

Stap 2: schrijven van de code

Dit kan je doen door nu in de rechter kolom op Source Files te klikken met je rechtermuis en vervolgens te kiezen voor New > Empty File. In het menu dat je nu krijgt kies je voor het aanmaken van een nieuw c-bestand, bvb helloMPLABX.c:

code

Dit bestand wordt automatisch toegevoegd aan de Source Files van het project. Een overzicht van de toegevoegde bestanden kan je zien door het aanvinken van Project in het menu View.

Je kan nu C-code schrijven in het net aangemaakte code-bestand. Het eenvoudige programma dat we gaan schrijven bestaat uit twee delen:

  1. Toevoegen van de bibliotheekbestanden die je wenst te gebruiken, de zogenaamde header-bestanden

  2. De eigenlijke code in de hoofdlus: de main-functie

Voor dit project dienen er drie bibliotheekbestanden te worden toegevoegd. Dit zijn basis bestanden die je in elk project zult gebruiken. Het eerste bestand is dwengoConfig.h, dat er voor zorgt dat de microcontroller correct geconfigureerd wordt. Het tweede bestand is dwengoBoard.h definieert intuïtieve namen voor de diverse aansluitingen van de microcontroller, in overeenstemming met de functionaliteit op het dwengo bord. Tenslotte is er het bestand dwengoDelay.h, dat handige functies voorziet om het programma voor een bepaalde, instelbare tijdsduur te laten wachten. De functies worden toegevoegd met de volgende code:

  1. #include <dwengoConfig.h>
  2. #include <dwengoBoard.h>
  3. #include <dwengoDelay.h>

Nu is het de beurt aan de main-functie van het programma:

  1. void main(void) {
  2. initBoard();
  3. while (TRUE) {
  4. LEDS = 0b11111111; // LED0-7 on
  5. delay_ms(200);
  6. LEDS = 0b00000000; // LED0-7 off
  7. delay_ms(200);
  8. }
  9. }

Telkens wanneer de microcontroller aangeschakeld wordt, zal de main-functie worden opgeroepen. Deze functie wordt sequentieel uitgevoerd, d.w.z. regel voor regel, net zoals in elke klassieke programmeertaal (bijv. Java, C, C++, Basic, ...). In tegenstelling tot wat gebeurt in klassieke programmeeromgevingen, willen we niet dat het programma eindigt: de microcontroller moet zijn functie blijven uitvoeren totdat de stroom uitgeschakeld wordt. Daarom zorgen we ervoor dat de hoofdlus voortdurend herhaald wordt. Dit gebeurt met de while (TRUE) opdracht. De main-functie kan dus opgesplitst worden in twee componenten. Lijn 2 doet de initialisatie, deze gebeurt slechts éénmaal, na het aanschakelen. Lijnen 4-7 vormen de hoofdlus, deze wordt – eens de initializatie voltooid is – voortdurend uitgevoerd. Deze structuur is typisch voor alle embedded programma's.

In bovenstaand voorbeeld worden de 8 LEDs worden aangesproken als een 8-bits getal. Een 1 in dit getal zet de corresponderende LED aan, een 0 uit. Het is ook mogelijk om elke LED apart aan of uit te zetten (zonder de andere LEDs te beïnvloeden). De LEDs zijn genummerd van 0 tot 7. Het aan- en afzetten van LED0 gebeurt bijvoorbeeld als volgt:

  1. LED0 = 1;
  2. LED0 = 0;

Om de knippersnelheid in te stellen, plaats je een wachttijd tussen het aan en af schakelen van de LEDs. In bovenstaand voorbeeld bedraagt deze in beide gevallen 200 ms.

Wie zich registreert, kan het volledige programma downloaden onderaan deze pagina. Hiervoor moet je ingelogd zijn.

Tot slot dien je ook nog de Dwengo-bibliotheek, het lib-bestand, toe te voegen aan jouw project. Dit doe je door in de rechterkolom met je rechtermuisknop op Library Files te klikken en via Add Existing Item dwengo.lib toe te voegen aan het project.

Dwengo lib

Stap 3: testen

Wanneer jouw code af is kan je beginnen testen. Sluit hiervoor het Dwengo-programmeertoestel aan op je computer met behulp van de USB-kabel en steek het toestel eveneens in je Dwengo-bord. Let hierbij op dat de programmer correct wordt aangesloten (zie figuur)!

Aansluiten van de programmer

Vervolgens kies je in het menu Run voor Run Project. Als het goed is dan zal MPLAB X eerst jouw code compileren om het vervolgens op het Dwengo-bord te gaan programmeren.

testen

Jouw eerste project in MPLAB X is nu af!

Stap 4: loskoppelen, code bijwerken, verder experimenteren

Nu het Dwengo-experimenteerbord geprogrammeerd is, kan je de programmer loskoppelen van het bord. Je zal merken dat de LEDs ophouden met flikkeren. Het experimenteerbord krijgt nu immers geen stroom meer. Koppel het bord rechtstreeks aan de computer met de USB-kabel. De LEDs zullen opnieuw beginnen te flikkeren.

Je hebt de eerste tutorial met succes afgerond. Je kan nu zelf verder experimenteren.

Probeer misschien eens de snelheid van het knipperen aan te passen. Als je de code hebt aangepast, kan je ze opnieuw compileren (Build All) en programmeren. Voor die laatste stap moet uiteraard de programmer opnieuw aangesloten worden.

Problemen met de PicKit 2

In sommige besturingssystemen, voornamelijk mac OS X Leopard is de ondersteuning van MPLAB X voor de PicKit 2 programmer nog niet optimaal. Een oplossing hiervoor is de Microchip PicKit 2 command tool te downloaden en vervolgens volgende commando uit te voeren via de terminal telkens na het compileren van jouw programma in MPLAB X beta: ./pk2cmd -PPIC18F4550 -F/pad/naar/jouw/hex/bestand/naambestand.hex -M

BroncodeBronbestanden zijn enkel toegankelijk voor geregistreerde gebruikers. Als je al een account hebt op de Dwengo site, gelieve dan in te loggen, anders kan je je eerst registreren.