Handleiding Piccolino

Maat: px
Weergave met pagina beginnen:

Download "Handleiding Piccolino"

Transcriptie

1 Handleiding Piccolino Installatie van de benodigde software, en aansluiten van de hardware. (c)2012 Bert van Dam

2 INLEIDING 3 INSTALLATIE INSTRUCTIES 8 VOORBEELD PROGRAMMA 11 PROGRAMMEREN LUKT NIET 23 GEBRUIK PICCOLINO MET SMALL BASIC 24 GEBRUIK PICCOLINO MET JAL BOEKEN 26 GEBRUIK PICCOLINO MET HYPER TERMINAL OF PYSERIAL 28 HOE NU VERDER 29 PICCOLINO (JAL) TAAL INSTRUCTIES 32 INDEX 53 2

3 Inleiding Gefeliciteerd met de aanschaf van uw Piccolino! De Piccolino is een prototype platform dat gebruikt kan worden om razendsnel opstellingen te maken en te testen. Alle basisvoorzieningen zijn aanwezig op de Piccolino, en door middel van de headers kunnen extra componenten eenvoudig aangesloten worden. Daarnaast is het mogelijk op de headers uitbreidingsmodules aan te sluiten. U kunt die aanschaffen, maar het is ook mogelijk ze zelf te maken. Gebruikt u bij uw prototypes altijd bepaalde componenten dan maakt u er zelf gewoon een uitbreidingsmodule van. Door op deze modules ook headers te plaatsen kan hier bovenop ook weer een uitbreidingsmodule geplaats worden. Zonder koelplaatje op de voedingsstabilisator kan de Piccolino ongeveer 100 ma via de headers leveren. De Piccolino heeft volgende eigenschappen: 1. Geen programmer nodig; de Piccolino programmeert zichzelf. 2. Ingebouwde gestabiliseerde 5 volt voeding met indicatie LED. 3. Ingebouwde RS232 poort (losse USB convertor verkrijgbaar). 4. Voorzien van LED, schakelaar en potmeter om meteen van start te kunnen. 5. Reset schakelaar en auto-reset jumper. 6. Ruimte voor stapelbare uitbreidingsmodules. 7. Moderne PC16f887 microcontroller: 20 MHz (5 MIPS) words Flash geheugen. 768 bytes RAM. 256 bytes EEPROM. 35 I/O, waarvan 25 op de headers. 14 analoge ingangen. 2 PWM uitgangen. 2 Comparatoren. Communicatie RS232-TTL, RS232, I 2 C, SPI, one wire. Aarde, 5 volt en V in op de header. De 16f887 zit in een voetje en kan dus omgewisseld worden voor een ander exemplaar. Dat gaat echter niet zomaar want deze PIC bevat een speciale bootloader die er voor zorgt dat hij zichzelf kan programmeren. Wilt u een andere PIC gebruiken dat moet deze ook van een bootloader voorzien worden anders werkt de Piccolino niet meer! Vervangende PIC's met bootloader kunt u bij Elektor kopen. 3

4 Let op: wanneer u de PIC uit de Piccolino haalt en met een gewone programmer programmeert dan wordt de bootloader overschreven en kunt u de PIC niet meer in de Piccolino gebruiken. Figuur 1. De Piccolino met uitleg van de componenten. De Piccolino heeft een externe voeding nodig. Deze hoeft niet gestabiliseerd te zijn, maar moet wel gelijkspanning leveren met de plus op de middenpin. Het voltage van de voeding ligt bij voorkeur tussen de 7 en 10 volt. Meer mag wel, maar dan wordt de spanningsregelaar op de Piccolino wel snel warm. Optioneel kunt u de Piccolino ook met een 9 volt batterij voeden. U kunt uw Piccolino in dat geval gebruiken zonder dat er een stopcontact in de buurt is. Het Piccolino Sidekick pakket bevat een stekker hiervoor. Het verstandigst is om een oplaadbare batterij te gebruiken. De inhoud van de headers is als volgt: Naam Omschrijving a0 AN0 Pin a0, verbonden met de analoge unit AN0. a1 AN1 Pin a1, verbonden met de analoge unit AN1. a2 AN2 Pin a2, verbonden met de analoge unit AN2. a3 AN3 Pin a3, verbonden met de analoge unit AN3. a4 Pin a4. a5 AN4 Pin a5, verbonden met de analoge unit AN4. e0 AN5 Pin a6, verbonden met de analoge unit AN5. c Pin c0.

5 Naam b7 TTL out b6 TTL in b5 AN13 b4 AN11 b3 AN9 b2 AN6 b1 AN10 b0 AN12 Omschrijving Pin b7, de seriële RS232-TTL uitgang. Pin b6, de seriële RS232-TTL ingang. Pin b5, verbonden met de analoge unit AN13. Pin b4, verbonden met de analoge unit AN11. Pin b3, verbonden met de analoge unit AN9. Pin b2, verbonden met de analoge unit AN6. Pin b1, verbonden met de analoge unit AN10. Pin b0, verbonden met de analoge unit AN12. Naam Omschrijving Vin Voltage op de Piccolino voedingsstekker. +5 V Gestabiliseerde +5 volt. NC Niet in gebruik. 1 GND Aarde van de voeding. d0 Pin d0. d1 Pin d1. d2 Pin d2. d3 Pin d3. Naam Omschrijving c3 SCL Pin b7, seriële kloklijn (SPI en I 2 C) c5 SDO Pin b6, seriële data out (SPI en I2C) c4 SDA Pin b5, seriële data in (SPI en I2C) c2 CCP1 Pin b4, CCP1 module. c1 CCP2 Pin b3, CCP2 module. NC Niet in gebruik. NC Niet in gebruik. NC Niet in gebruik. Tabel 1.Header informatie. Deze omschrijving, evenals de teksten op de Piccolino zelf, zijn alleen ter referentie. Uiteraard hebben de pinnen, voor zover aangesloten, de normale functionaliteit zoals 1 De NC pinnen zijn niet in gebruik, en bestemd voor toekomstige Piccolino modellen. 5

6 beschreven in de datasheet. U kunt de Piccolino dus ook gebruiken in combinatie met de JAL boeken van dezelfde auteur. 2 Figuur 2. Functie van de pinnen volgens de datasheet van de 16f887. Overigens zijn niet alle pinnen met de headers zijn verbonden, en andersom ook niet alle headers met pinnen. Een deel wordt gebruikt voor interne doeleinden, denk bijvoorbeeld aan de ingebouwde LED. Verder is rekening gehouden met toekomstige modellen van de Piccolino die andere functionaliteiten hebben, die ook pinnen nodig hebben. Let op: om automatisch programmeren mogelijk te maken moet de auto-reset jumper geplaatst zijn. U hoeft deze jumper in feite nooit te verwijderen, tenzij u de Piccolino liever met de hand reset. Een aantal communicatie pakketten maakt gebruik van software flow control die niet uitgezet kan worden, bijvoorbeeld Hyper Terminal. Wilt u van een dergelijk pakket gebruik maken dan moet u de jumper eerst verwijderen. Datzelfde geldt voor de pyserial module van Python. Als aanvulling op uw Piccolino kunt u de Piccolino Sidekick kopen. 3 In dit uitgebreide onderdelenpakket zitten alle spullen die u nodig heeft voor dit boek, en voor vele andere leuke en spannende experimenten. 2 Zie de sectie 'Hoe nu verder" voor meer informatie. 3 "Sidekick" is Engels voor "maatje" of "vriendje".

7 De inhoud van de Piccolino Sidekick: Figuur 3. Het Sidekick pakket. 4 1 Steekbord (circa 6 bij 17 centimeter). 1 Set draden voor gebruik met het steekbord en de Piccolino. 20 Weerstanden: 47-3x330-3x1k x2k2-2k7-4x10k - 100k - 1M - 2x10M. 7 Condensatoren: 100nF - 220nF - 1µF - 2,2µF - 22µF - 220µF µf. 5 Spoelen: 1,0mH - 4,7mH - 10mH - 22mH - 47mH 2 OPAMPs: LM358 - MAX BJTs: BC547C - BC679A. 2 MOSFETs: BS170 - IRF LEDs. 1 IC: NE Instelpotmeters: 2k2 LIN - 2 x 10k LIN - 100k LIN. 1 Mini stereostekker, male. 3 Steekbordschakelaars. 1 Weerstand array 10k. 1 Diode 1N Servomotor Hitec HS-422 of soortgelijk. 1 LDR. 1 TC74 A0 5.0 VAT. 1 9 volt batterij aansluitdraad met stekker. 4 De componenten en de samenstelling kunnen in de praktijk iets afwijken. De informatie in de Elektor webwinkel is correct. 7

8 Installatie Instructies Voor het programmeren van de Piccolino wordt gebruik gemaakt van JAL (Just Another Language), een op Pascal lijkende hoog niveau taal. Het is de enige geavanceerde gratis taal, en kent een grote internationale actieve gebruikersgroep. Het adres hiervan vindt u op Daarnaast is er ook informatie over beschikbaar in diverse boeken en op websites. JAL is configureerbaar en uitbreidbaar door middel van bibliotheken (libraries) en kan gecombineerd worden met assembler. Dit is een voorbeeld van een JAL programma waarmee de LED van de Piccolino gaat knipperen gaat knipperen. include 16f887_bert_piccolino forever loop pled = on delay_100ms(1) pled = off delay_1s(1) end loop U ziet dat u zonder enige kennis van JAL of de Piccolino het programma toch een beetje kunt begrijpen. De LED gaat aan, er wordt even (100 milliseconden) gewacht, dan gaat de LED weer uit, en er wordt weer even (1 seconde) gewacht. 5 Voor het schrijven van het programma gebruiken we JALedit. Deze gratis editor is speciaal bedoeld voor gebruik in combinatie met JAL heeft een aantal unieke eigenschappen: JAL opdrachten zijn kleur gecodeerd. Overzicht van gebruikte variabelen, constanten en procedures in een programma. Blokcommentaar toevoegen/verwijderen. Met één klik compileren en downloaden naar de Piccolino. Ingebouwde ASCII tabel, rekenmachine, terminal. Source export naar html (voor publicatie op een website). Automatische backups. Compileer resultaat in een aparte Window. Kan meerdere bestanden tegelijk laden. 5 Weet u weinig van het programmeren van microcontrollers af, of wilt u uw kennis vergroten, schaf dan het boek "PIC Microcontrollers programmeren - in 10 boeiende lessen" aan (ISBN ). Dit populaire boek, van dezelfde auteur, leert u stap voor stap hoe u JAL kunt gebruiken. Bij iedere les horen vragen waarvan de antwoorden achterin het boek staan.

9 Haal voor u verder leest het download pakket op dat bij de Piccolino hoort. We gebruiken hiervoor het pakket dat bij het boek "Supersnel Interfacen" hoort. Ga naar en zoek de link naar het boek "Supersnel Interfacen" in uw taal. Klik op de link om naar de supportpagina te gaan, en download daar het downloadpakket. Dit pakket bestaat uit JALedit, een mooie editor waarmee u JAL programma's kunt schrijven, de bijbehorende JAL compiler, de software die met de Bootloader in de Piccolino praat en een grote verzameling bibliotheken en functies. 6 Unzip het pakket met behoud van de directory structuur, er is circa 18 Mb ruimte nodig. Het maakt niet uit waar u het pakket uitpakt - we verplaatsen het straks - maar het is wel belangrijk dat de mappen behouden blijven. 7 Alle programma's en bestanden zijn voorgeconfigureerd, het enige dat u hoeft te doen is de gehele map op de juiste plaats te zetten. Kopieer de map PICcolino en alles wat er onder zit naar schijf C. Het resultaat moet eruit zien zoals weergegeven in de volgende figuur. Voor de duidelijkheid zijn andere mappen die niets met de Piccolino te maken hebben niet in de figuur afgebeeld. Figuur 4. Uitgepakt downloadbestand op schijf C. Is dat niet zo dan heeft u het ZIP bestand niet goed uitgepakt (de mappen zijn verloren gegaan) of map PICcolino niet goed gekopieerd. Probeer het opnieuw, want als dit niet klopt werken de programma's niet! 6 Het pakket bevat ook de broncodes van het "Supersnel Interfacen" boek, maar daar hebt u zonder boek weinig aan. U kunt deze map (c:\piccolino\book) na de installatie wissen. U kunt natuurlijk ook het betreffende boek kopen, dan leert u alles over interfacing tussen PC en Piccolino. 7 Wanneer u niet in het bezit bent van een unzip programma dan vindt u op de supportwebsite een link naar een gratis programma. U kunt ook naar de officiële website van Winzip gaan daar een betaalde versie aanschaffen. 9

10 Ga naar het bestand jaledit.exe in map c:\piccolino\jal\jaledit en maak een snelkoppeling naar het bureaublad. 8 Dit programma is JALedit, de editor waarmee u zo dadelijk JAL programma's gaat maken. U heeft het zeer regelmatig nodig, vandaar de snelkoppeling. Figuur 5. Snelkoppeling naar JALedit op het bureaublad. 9 Controleer op jaledit.exe inderdaad in map "c:\piccolino\jal\jaledit" staat. U kunt dit gemakkelijk zien door van de snelkoppeling die u zojuist op het bureaublad geplaatst heeft de eigenschappen op te vragen. Figuur 6. Juiste pad controleren in de snelkoppeling. 8 Ga naar het bestand jaledit.exe, en klik erop met de rechter muisknop. Kies niet "Snelkoppeling maken, maar wel "Kopiёren naar" en dan "Bureaublad (snelkoppeling maken)". 9 Alle PC afbeeldingen in dit boek zijn gemaakt op een Windows 7 64 bit machine, Nederlandse versie. Op uw PC kan het er dus iets anders uit zien, maar de inhoud moet hetzelfde zijn.

11 Is dat niet zo dan heeft u het download bestand niet goed uitgepakt, of niet goed op schijf C neergezet. Klopt het niet ga dan niet door maar doe de installatie opnieuw. Als de installatie niet klopt heeft doorgaan geen zin want dan werken de programma's niet. Voorbeeld programma Om de Piccolino te kunnen programmeren moeten we in JALedit invoeren aan welke seriële of COM poort de Piccolino is aangesloten. Wanneer u gebruik maakt van een USB-to-Serial convertor dan kunt het betreffende poortnummer bij Windows Apparaatbeheer vinden. Open de Device Manager op uw PC - met de Piccolino aangesloten - om te kijken wat het nummer is dat uw PC aan deze poort heeft gegeven en noteer dat nummer. 10 Heeft u meerdere virtuele seriële poorten en twijfelt u dan kiest u nu een willekeurige poort. Mocht straks blijken dat het programmeren van de Piccolino niet lukt dan probeert u een voor een de andere poorten totdat u de juiste heeft gevonden. Figuur 7. De virtuele COM poort waar de Piccolino mee is verbonden. 10 Op Windows XP kiest u: Start - Uitvoeren en dan tikt u devmgmt.msc in en drukt op de enter toets. Op Windows 7 machines kiest u Start, en dan tikt u devmgmt.msc in het zoekvenstertje in. In de lijst met gevonden programma's klikt u op devmgmt.msc. 11

12 Op mijn PC is het virtuele poort nummer 5, maar op uw PC is dat naar alle waarschijnlijkheid anders. Wanneer u in deze handleiding een verwijzing ziet naar poort 5 vervang deze dan door het poort nummer dat voor uw PC van toepassing is. Om u te helpen herinneren welk nummer dat is kunt u dat hieronder noteren. Piccolino poort nummer Wanneer u gebruik maakt van een gewone seriële poort dan is het poortnummer wat lastiger te bepalen. In de meeste gevallen is het nummer 1, dus als u twijfelt vul dan poort 1 in. Mocht straks blijken dat het programmeren van de Piccolino niet lukt dan probeert u 2, 3 en 4. Een gewone COM poort heeft zo goed als nooit een nummer hoger dan vier. De software voor de Piccolino wordt geschreven met behulp van een editor: JALedit. Uiteraard is iedere editor bruikbaar, maar deze heeft speciale voorzieningen die het gebruik in combinatie met JAL erg eenvoudig maken. In de sectie "Software - JAL" heeft u een snelkoppeling gemaakt naar JALedit. Dubbelklik op deze snelkoppeling om JALedit te starten. JALedit wordt bediend vanaf een enkel scherm dat in de volgende figuur is weergegeven. 11 Het is een standaard Windows venster dus u kunt het op de gebruikelijke manier vergroten, verkleinen, schermvullend maken en afsluiten. Het scherm is verdeeld in vier delen. Bovenaan vindt u de knoppenbalk. Links bevindt zich de (bron)code explorer. 12 Hier kunt u snel een overzicht krijgen van belangrijke code elementen die in het programma aanwezig zijn, zoals includes, functies, procedures en variabelen. Rechts naast de code explorer bevindt zich de werkruimte met daarin de werkbladen. In de volgende figuur bevat de werkruimte één leeg werkblad met als naam "untitled1.jal". Uw programma komt in zo'n werkblad te staan. U kunt meerdere werkbladen - programma's dus eigenlijk - tegelijk inladen. Zo kunt u gemakkelijk stukje van het ene in het andere programma kopiëren. Slechts een van de werkbladen is actief, dat wil zeggen dat daar het programma staat dat naar de Piccolino gestuurd gaat worden. Het tabje van dit blad is blauw. 11 Kies in het menu File voor optie New om hetzelfde scherm te krijgen als in deze figuur. 12 De broncode is het programma in voor mensen leesbare vorm. Het programma is de vertaalde broncode die door een computer of microcontroller leesbaar is. Programmeurs gebruiken deze woorden vaak door elkaar, en korten broncode vaak af tot code. Het Engelse woord voor broncode is sourcecode. Ook dat wordt vaak afgekort tot code, of tot source. U ziet dat programmeurs het niet zo nauw nemen met taal..

13 Onderin bevindt zich de compile results ruimte, hier komen de resultaten van de compilatie te staan. Compileren is het omzetten van de broncode in een vorm die de microcontroller kan lezen. Figuur 8. Het scherm van JALedit. Op het scherm vindt u de volgende mogelijkheden. 1. Code Explorer ruimte, hiermee kunt u belangrijke elementen uit uw broncode snel vinden. 2. Broncode ruimte, hier staat uw programma. 3. Compile results ruimte, hier komen de resultaten van de compilatie, bijvoorbeeld of er fouten in uw programma zitten. 4. Geheugen overzicht. Hier kunt u zien hoeveel geheugen van de Piccolino verbruikt wordt. Het verbruik wordt aangegeven in procenten, wanneer een van de waarden over de 100% gaat dan past uw programma niet. 5. Begin een nieuw programma. U krijgt een nieuwe leeg werkblad met als naam "untitled.jal", met achter untitled een nummer. 6. Open een programma dat op de harde schijf staat. U kunt het programma inladen door erop te dubbelklikken. 7. Sla het huidige programma op. Er wordt om een pakkende naam voor het programma gevraagd. U kunt kiezen wat u wilt, maar zet de extensie (.jal) er niet achter, dat doet JALedit zelf voor u. 13 Om het overzicht te bewaren is het handig 13 Let op: de naam van uw programma mag geen spaties bevatten, en het pad naar die naam ook niet. Wilt u toch meerdere woorden gebruiken dan kunt u een underscore gebruiken (mijn_eerste_programma), of creatief omgaan met hoofdletters (MijnEerstePrograma). Merk op 13

14 voor elk programma een andere map te maken. Behalve het programma kunt u in die map allerlei andere dingen opslaan die met dat programma te maken hebben. Denk hierbij aan documentatie, achtergrond informatie e.d. 8. Start de compilatie. Dat wil zeggen dat uw programma van JAL omgezet wordt in Assembler in HEX formaat. U kunt het dan zelf niet meer lezen. De Piccolino wordt nog niet geprogrammeerd, u gebruikt deze knop om te kijken of uw programma foutloos is, geen waarschuwingen veroorzaakt, en of het geheugen niet te vol raakt. 9. Start de compilatie en stuur het resultaat naar de Piccolino. Deze knop doet hetzelfde als knop 8, echter deze keer wordt het programma naar de Piccolino gestuurd. 10. De ASCII tabel. Computers (en dus ook microcontrollers)werken met cijfers en niet met letters of andere tekens. Om toch van andere tekens gebruik te kunnen maken is afgesproken dat alle cijfers ook een letter of teken kunnen voorstellen. Welke dat zijn staat in de zogenaamde ASCII tabel. 14 De afspraak is gemaakt in de tijd dat computers 7 bits waren, er zijn dus 127 tekens gedefinieerd. Nummers boven de 127 worden ook wel gebruikt, echter daar kan iedere fabrikant zijn eigen uitleg voor kiezen, standaard is dat geenszins! 11. Het ingebouwde terminal programma van JALedit. U kunt hiermee communiceren met de Piccolino. U dient daarvoor de volgende instellingen te gebruiken: Setting Waarde Port 15 De COM poort waar de Piccolino mee verbonden is, in mijn geval dus COM5. Baud rate Data bits 8 Stop bits 1 Parity None Flowcontrol None Tabel 2. Communicatie instellingen. dat in "c:\mijn documenten" een spatie zit, u kunt die map dus niet gebruiken, òòk niet wanneer u er een submap zonder spaties in maakt, zoals "c:\mijn documenten\mijnmap". 14 American Standard for Computer Information Interchange, Amerikaanse standaard voor de uitwisseling van informatie tussen computers. 15 U kunt alleen COM poorten selecteren die ook daadwerkelijk bestaan, Maakt u gebruik van een USBtoRS232 kabel, en is die kabel niet aangesloten dan bestaat die COM poort voor uw PC niet. De oplossing is om eert de kabel aan te sluiten, en eventueel de Piccolino aan te zetten, en pas dan de COM poort in te stellen.

15 Let op: dit is en standaard terminal programma, en het kan dus alleen afdrukbare ASCII waarden aan in de range 32 tot en met 255 (waarbij 129 tot en met 255 niet gestandaardiseerd zijn). 12. De naam van de actieve JAL file. Dit is de broncode die daadwerkelijk gecompileerd wordt wanneer u op button 8 of 9 drukt. Het tabje van de actieve JAL file is blauw, let u daar goed op wanner u meerdere broncode tegelijk open hebt staan! U zult niet de eerste zijn die zich afvraagt waarom het programma niet werkt om er dan na lang puzzelen achter te komen dat de verkeerde broncode actief was. 13. De naam van de actieve JAL file compleet met pad. U kunt dit gebruiken om snel te zien of uw pad en programma naam niet per ongeluk een spatie bevat. Figuur 9. Aanpassen van de COM poort in JALedit. Nu het programma is opgestart kan het programma ingetypt worden. We gaan echter eerst de juiste COM poort instellen. Kies in JALedit de menu optie "Tools" en dan "Environment Options". Klik vervolgens op de TAB "Programmer". Onderaan staat de tekst "%F -p com5 -r 300". Vervang het cijfer 5 door het nummer van de seriële poort op uw PC. Let goed op dat u niet per ongeluk ook anders aanpast! Klik vervolgens op de OK button. JALedit is nu klaar voor gebruik. 15

16 Figuur 10. JALedit met het demo programma. Een programma bestaat uit een aantal opdrachten. Deze opdrachten vertellen de Piccolino wat hij moet gaan doen. Ze worden op volgorde van boven naar beneden afgewerkt, tenzij u andere instructies geeft. De programmeertaal die in dit boek gebruikt wordt (JAL) is niet zo kritisch over de manier waarop u de opdrachten over de regels verspreidt. Maar u moet het zelf natuurlijk nog wel snappen, daarom maken we een paar afspraken: 1. Op iedere regel komt maar één opdracht. 2. Met kort commentaar geven we aan wat de bedoeling is van de opdrachten. 3. Bij lussen en voorwaardelijke opdrachten wordt ingesprongen. Wat regel drie precies inhoudt komen we straks op terug. Om de leesbaarheid verder te vergroten voegt JALedit allerlei kleuren toe aan uw tekst. Op de werking van het programma zelf heeft dit geen enkele invloed. Allereerst moet een library geladen worden. Een library is een soort bibliotheek met extra opdrachten. Het gaat dan bijvoorbeeld om opdrachten die niet in de programmeertaal zelf kunnen zitten omdat ze voor elke microcontroller anders zijn. Om u daar niet mee te vermoeien zijn al die verschillen weggestopt. Het enige dat u als gebruiker hoeft te doen is de library te gebruiken die bij de microcontroller hoort. In de Piccolino zit de 16f887 dus nemen we de library die daar bij hoort: de 16f887_bert_piccolino. Het laden van deze library gebeurt met de volgende opdracht: include 16f887_bert_piccolino

17 U kunt met intikken overigens het best even wachten totdat alle stukjes programma zijn uitgelegd, omdat ik ze niet altijd in de juiste volgorde behandel. Aan het eind van deze paragraaf staat het complete programma. De standaard JAL opdrachten worden door de editor herkend en krijgen een mooi kleurtje. Variabelen en opdrachten uit libraries zijn blauw. De eerste regel begint met include (Engels voor invoegen) en dan de naam van de library. Alles wat in die library staat wordt op dat punt in het programma gevoegd, zonder dat u daar verder iets van ziet. De Piccolino bevat een drietal standaard hardware componenten die u kunt gebruiken zonder dat u die eerst moet declareren. Component Rode LED Schakelaar Potmeter Naam pled pbutton ppot Op analoog kanaal pan Tabel 3. Standaard componenten van de Piccolino. We gaan in dit demo project de LED op de Piccolino laten knipperen. De LED kan aan en uitgezet worden met de opdrachten "on" en "off". pled=on pled=off Tussendoor moet een kleine pauze ingelast worden, anders gaat het knipperen zo snel dat u er niets van ziet. We laten de LED 1 seconde aan: delay_1s(1) Het cijfer tussen haakjes geeft aan hoe vaak er 1 seconde gewacht moet worden. Zou hier bijvoorbeeld delay_1s(3) staan dan wacht het programma op die plaats 3 x 1 seconde is 3 seconden. En vervolgens laten we hem 100 milliseconde (0,1 seconde) uit: delay_100ms(1) Met de bovenstaande opdrachten knippert de LED eenmaal, maar een echt knipperlicht houdt natuurlijk niet na eenmaal op. Daarom moeten de laatste opdrachten herhaald worden, in feite eindeloos: 17

18 forever loop end loop Alle stukjes programma bij elkaar ziet er als volgt uit: include 16f887_bert_piccolino forever loop pled = on delay_1s(1) pled=off delay_100ms(1) end loop U ziet dat de loop (in het Nederlands: lus) die eindeloos herhaald wordt opdrachten bevat die inspringen. Op die manier is goed te zien waar de lus begint en waar hij eindigt. Dat is de derde afspraak die we gemaakt hadden over het intikken van een programma: Bij lussen en voorwaardelijke opdrachten wordt ingesprongen Wellicht is dit een goed moment om het programma in zijn geheel in te tikken en meteen even op te slaan. Met behulp van het File menu kiest u Save As en verzint een pakkende naam, bijvoorbeeld demo (de extensie.jal komt er vanzelf achter). Plaats het programma in een passende map, bijvoorbeeld c:\piccolino\tmp Het is overigens handig voor elk project dat u maakt een andere directory te gebruiken. Zo komt alles wat met dat ene project te maken heeft netjes bij elkaar. Let op: de naam van het bestand en de naam van het pad mogen geen spaties bevatten! Zitten die er wel in dan krijgt u vreemde foutmeldingen. 16 Allereerst kan gekeken worden of het programma foutloos is ingetypt. Klik op de button met het groen driehoekje (compile active JAL file), of druk op F9. 16 Wilt u toch meerdere woorden gebruiken dan kunt u een underscore gebruiken (mijn_eerste_programma), of creatief omgaan met hoofdletters (MijnEerstePrograma). Merk op dat in "c:\mijn documenten" een spatie zit, u kunt die map dus niet gebruiken, òòk niet wanneer u er een submap zonder spaties in maakt, zoals "c:\mijn documenten\mijnmap".

19 Figuur 11. Compile Active JAL U kunt meerdere bestanden tegelijk openen, echter er is er maar één de "active" file. Van dit bestand is het tabje bovenaan blauw. Als u de instructies netjes heeft opgevolgd heeft u maar één bestand open (namelijk wat u net heeft ingetypt) dus dat is automatisch de actieve. Er verschijnt even een window, en daarna komt onderaan in de "compile results" window een mededeling. Compilation started at :5/22/2012 4:35:49 PM jal 2.4o (compiled May ) 17 Compiler CommandLine: C:\PICdev\JAL\Compiler\jalV24o\JALv2.exe -clear -no-variable-reuse -s c:\picdev\jal\libraries "C:\PICcolino\tmp\demo.jal" Errors :0 Warnings :0 Code :156/8192 Data:17/368 Hardware Stack : 2/8 Software Stack :96 Geen fouten betekent overigens niet dat het programma doet wat u wilt, het betekent alleen dat u geen taalfouten gemaakt heeft. Stel dat u bijvoorbeeld per ongeluk deley in plaats van delay geschreven zou hebben dan krijgt u daar meteen een melding van: [Error] (demo.jal) [Line 5] {FOREVER starts at C:\PICcolino\tmp\demo.jal:3} [Error] (demo.jal) [Line 5] "deley_1s" not defined [Error] (demo.jal) [Line 5] unexpected token: deley_1s Compiler CommandLine: C:\PICdev\JAL\Compiler\jalV24o\JALv2.exe -clear -no-variable-reuse -s c:\picdev\jal\libraries "C:\PICcolino\tmp\demo.jal" Errors :5 Warnings :0 De fout is gemaakt in regel 5 en wordt netjes gemeld: "deley_1s" not defined. Door deze fout raakt de compiler in de war en snapt nu regel 5 helemaal niet meer. Het lijkt daarom alsof u meerdere fouten hebt gemaakt. Het beste is de eerste fout aan te passen, en dan 17 Wanneer een andere JAL versie gebruikt wordt staat hier een ander nummer en een andere 'compiled' datum. Dat maakt echter niets uit. 19

20 opnieuw op Compileren te klikken. Dan lost u weer de eerste fout op, net zolang totdat er geen fouten meer zijn. Er vanuit gaande dat het programma foutloos is wordt het tijd het naar de Piccolino te downloaden. Sluit de Piccolino aan op de voeding, en op uw PC. Figuur 12. Piccolino aan de PC en voeding aangesloten. Zet de spanning op de Piccolino. Als het goed is gaat de rode power LED meteen aan. Is dat niet zo dan is de voeding niet goed aangesloten, of niet geschikt. 18 Figuur 13. De auto-reset jumper (omcirkeld) moet geplaatst zijn. 18 De voeding hoeft niet gestabiliseerd te zijn, maar moet wel gelijkspanning leveren met de plus op de middenpin. Het voltage moet bij voorkeur tussen de 7 en 10 volt liggen. Meer mag wel, maar dan wordt de spanningsregelaar op de Piccolino wel snel warm. Optioneel kunt u de Piccolino ook met een 9 volt batterij voeden.

21 Let op: om automatisch programmeren mogelijk te maken moet de auto-reset jumper geplaatst zijn, zie de voorgaande figuur. U hoeft deze jumper in feite nooit te verwijderen, tenzij u de Piccolino liever met de hand reset. 19 Gaat de rode LED aan druk dan op de PC op de button met het IC en het groene pijltje erop (compile + program) of druk op Ctrl-F9. Figuur 14. Compile + Program De window van het compileren verschijnt opnieuw, maar daarna komt een window met zwarte achtergrond. Deze hoort bij de software die de Piccolino gaat programmeren. Figuur 15. Window van de programmer. De window gaat te snel weer weg om te lezen wat er precies in staat, u kunt de tekst in de voorgaande figuur rustig nalezen. 19 Maakt u gebruik van Hyper Terminal of pyserial lees dan de sectie "Gebruik Piccolino met Hyper Terminal of pyserial" verderop in dit document. 21

22 Als alles goed gaat knippert de LED op de Piccolino nadat deze window zich weer automatisch gesloten heeft. U heeft zojuist uw eerste microcontroller programma gemaakt, gefeliciteerd! Als alles goed is gegaan kunt u deze paragraaf verder overslaan en door gaan naar de volgende sectie. Ging het niet goed zoek uw probleem dan op in deze tabel, voer de oplossing uit die er bij hoort, en probeer compile+program opnieuw. symptoom De window met zwarte achtergrond komt niet. In de window met zwarte achtergrond komt een foutmelding en de window blijft staan. U kunt de window sluiten door op enter te drukken. oplossing 1. Er zitten fouten in het programma, kijk in de window onderaan (compile results) of daar foutmeldingen staan. 2. U heeft het software pakket niet volgens de instructies geïnstalleerd. Lees de instructies bij het download pakket en volg ze exact op. 3. U heeft de software op een andere plaats geïnstalleerd dan in de instructies aangegeven. Ga in JALedit naar "environment opties" in het menu "compile", kies de tab "programmer" en vul de juiste gegevens in. Let op: de directory namen mogen geen spaties bevatten. 1. Lees de foutmelding en los het genoemde probleem op. Meestal zijn de meldingen duidelijk, anders kan een van de volgende punten ook de oorzaak zijn. 2. De seriële poort klopt niet (de Piccolino zit aan een andere poort). Pas het nummer aan volgens de instructies eerder in deze sectie. 3. De stroom is niet ingeschakeld, doe dat alsnog. 4. Een ander programma maakt gebruik van de seriële poort waar ook de Piccolino op zit, en houdt deze bezet (bijvoorbeeld een terminal programma). Sluit dit programma af en probeer het opnieuw. Herstart eventueel de computer indien het andere programma de poort niet correct vrijgeeft. 5. Uw voeding is niet stabiel genoeg. Zorg er voor dat de ingangsspanning voor de Piccolino hoog genoeg is (bij voorkeur zeven volt of meer). 6. De auto-reset jumper is niet geplaatst. Plaats de jumper en probeer het opnieuw.

23 Het programma is gedownload maar de LEDs knipperen niet. In het zwarte venster blijft de tekst "Establishing contact etc" staan. Het is u eerder wèl gelukt de Piccolino te programmeren. De LED knippert wel maar supersnel, controleer of u (een van) de delay opdracht(en) wellicht vergeten bent. Een Piccolino programma dat gegevens stuurt naar de PC kan het onmogelijk maken dat de Piccolino geprogrammeerd wordt. In het zwarte venster blijft de tekst "Establishing contact etc" staan totdat het PC programma het uiteindelijk op geeft. De oplossing hiervoor is eenvoudig: wanneer de melding in het zwarte venster blijft staan drukt u op de reset toets van de Piccolino, telt rustig tot drie, en laat de reset toets los. Op dat moment gaat het programmeren alsnog van start. Mocht dat ook niet werken: zet dan de Piccolino uit. Programmeer de Piccolino opnieuw maar zet de Piccolino pas aan wanneer het zwarte scherm met "Establishing contact etc" er staat. Nu lukt het programmeren wel. 20 Tabel 4. Overzicht mogelijke problemen, met oplossing Als het ondanks de bovenstaande instructies niet wil lukken controleer alles dan nogmaals, desnoods een dag later; een frisse blik doet wonderen. Bent u er van overtuigd alles goed gedaan te hebben kom dan naar de JAL gebruikersgroep op Yahoo (zie de support pagina voor actuele adressen) en stel uw vraag. De voertaal in deze groep is Engels, de deelnemers bevinden zich overal in de wereld, zij zullen u graag verder helpen. Programmeren lukt niet Een Piccolino programma dat gegevens stuurt naar de PC kan het onmogelijk maken dat de Piccolino geprogrammeerd wordt. In het zwarte venster blijft de tekst "Establishing contact etc" staan totdat het PC programma het uiteindelijk op geeft. Dit probleem ontstaat wanneer het Piccolino programma ongevraagd gegevens naar de PC stuurt. Bijvoorbeeld met zo'n lus: forever loop serial_hw_write(data) end loop 20 Zie ook de volgende sectie: "Programmeren lukt niet". 23

24 Wanneer die niet luistert, bijvoorbeeld omdat u aan het herprogrammeren bent, loopt de buffer van de PC vol. Wanneer u dan het programma in de Piccolino wilt zetten krijgt het programmeerprogramma in plaats van antwoord van de Piccolino de oude gegevens die nog in de buffer staan. En dus lukt het programmeren niet. De oplossing hiervoor is eenvoudig: wanneer de melding in het zwarte venster blijft staan drukt u op de reset toets van de Piccolino, telt rustig tot drie, en laat de reset toets los. Op dat moment gaat het programmeren alsnog van start. Werkt dat ook niet zet dan de Piccolino uit. Probeer de Piccolino opnieuw te programmeren, maar zet de Piccolino pas aan wanneer het zwarte scherm met "Establishing contact etc" er staat. U kunt dit probleem gemakkelijk voorkomen door de Piccolino alleen gegevens naar de PC te laten sturen wanneer die daarom vraagt. Bijvoorbeeld op deze manier: forever loop serial_hw_wait(something) serial_hw_write(data) end loop Gebruik Piccolino met Small Basic De Piccolino, in combinatie met Small Basic stelt u in staat razendsnel applicaties te maken waarbij de PC de Piccolino aanstuurt, of via de Piccolino metingen verzameld en op de PC laat zien. Piccolino include 16f887_bert_piccolino forever loop if pbutton then serial_hw_write(adc_read_low_res(pan)) delay_10ms(1) end if end loop Let op: het Piccolino programma gaat uit van COM poort 5. Wanneer u een andere COM poort gebruikt moet u dit in het programma aanpassen (de betreffende opdracht is vetgedrukt).

25 PC GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.PenColor = "LightGreen" GraphicsWindow.Width = 505 GraphicsWindow.Height = 280 GraphicsWindow.BrushColor = "LightGreen" GraphicsWindow.FontBold = "no" GraphicsWindow.DrawBoundText(30, 0, GraphicsWindow.Width, "Piccolino Variable resistor") GraphicsWindow.BrushColor = "Black" if ComPort.OpenPort("com5",115200)= "true" then While("True") lasty=y y=255-comport.rxbyte() 'TextWindow.Write(y) x=x+1 If x>500 Then 'GraphicsWindow.Clear() x=0 endif 'wis een stukje van de grafiek GraphicsWindow.FillRectangle(x,20,4,GraphicsWindow.Height-20) If x>1 then 'zet de gegevens +20 om de tekst te vermijden GraphicsWindow.DrawLine(x-1, lasty+20, x, y+20) EndIf Endwhile comport.closeport() else TextWindow.WriteLine("This comport doesn't exist") endif Deze set voorbeeld programma's meet de stand van de potmeter op de Piccolino en laat die op de PC in een eenvoudige grafiek zien. 21 De gegevens worden alleen doorgestuurd 21 Wilt u meer weten over Small Basic raadpleeg dan de boeken "PC Programmeren in XX lessen" en "Supersnel Interfacen". 25

26 zolang de knop op de Piccolino ingedrukt is. Wanneer het scherm vol is begint de grafiek opnieuw en veegt de oude grafiek langzaam uit. Figuur 16. Resultaat van de programma's. U heeft voor dit projectje alleen de Piccolino nodig, uiteraard aangesloten op een PC. Gebruik Piccolino met JAL boeken U kunt de Piccolino ook gebruiken in combinatie met de JAL boeken. 22 Het enige dat u hoeft te doen is de broncodes uit de boeken om te zetten naar de 16f887, de microcontroller op de Piccolino. Normaal gesproken is dat een hele operatie, maar door het gebruik van de _bert libraries valt het in de praktijk enorm mee. Het kan zijn dat de microcontroller mogelijkheden heeft die de 16f887 niet heeft, in dat geval is het overzetten van de software uiteraard onmogelijk. Bij de JAL boeken komt dat zelden voor. In een enkel geval moet u in het programma ook een poort wijzigen omdat deze in de Piccolino niet bestaat, of voor iets anders gebruikt wordt. Bovendien kunt u natuurlijk gebruik maken van de componenten die reeds op de Piccolino aanwezig zijn. Component Rode LED Schakelaar Potmeter Naam pled pbutton ppot Op analoog kanaal pan Tabel 5.Standaard componenten van de Piccolino. 22 Zie de sectie "Hoe nu verder" over de namen van deze JAL boeken.

27 Als voorbeeld nemen we het tutorial project, uit het boek 'PIC Microcontrollers". Op de microcontroller zijn twee LEDs aangesloten die om de beurt aan een uit gaan. De hardware ziet er als volgt uit: LED 330 c4 330 d3 LED GND Figuur 17. Aansluiting LEDs op de Piccolino. Figuur 18. De complete opstelling. De pinnen die het tutorial project voor de 16f877A gebruikt zijn ook beschikbaar op de Piccolino. Het enige dat we moeten doen is de include veranderen van "16f877A_bert" in "16f887_bert_piccolino" en het programma werkt. Een beetje flauw voorbeeld wellicht, maar in de meeste gevallen is het inderdaad zo eenvoudig! 27

28 Tutorial programma 16f877A include 16f877A_bert -- definities pin_c4_direction = Output pin_d3_direction = Output forever loop -- LEDs in stand 1 pin_d3 = high pin_c4 = low delay_1s(1) -- LEDs omgewisseld pin_d3 = low pin_c4 = high delay_1s(1) end loop Tutorial programma Piccolino include 16f887_bert_piccolino -- definities pin_c4_direction = Output pin_d3_direction = Output forever loop -- LEDs in stand 1 pin_d3 = high pin_c4 = low delay_1s(1) -- LEDs omgewisseld pin_d3 = low pin_c4 = high delay_1s(1) end loop Tabel 6. Tutorial programma in de Piccolino. Let op: een aantal communicatie pakketten maakt gebruik van software flowcontrol die niet uitgezet kan worden, bijvoorbeeld Hyper Terminal. Deze software flowcrontrol gebruikt dezelfde pin die de Piccolino gebruikt voor de auto-reset. Wilt u van een dergelijk pakket gebruik maken dan moet u de Piccolino jumper eerst verwijderen. Gebruik Piccolino met Hyper Terminal of pyserial Een aantal communicatie pakketten maakt gebruik van software flow control die niet uitgezet kan worden, bijvoorbeeld Hyper Terminal en de pyserial module van Python. Wilt u van een dergelijk pakket gebruik maken dan moet u de jumper na het programmeren verwijderen. Doet u dat niet dan wordt de Piccolino door deze pakketten tijdens de communicatie continu gereset, en kan dus niet reageren. U merkt dit doordat de Piccolino nergens op lijkt te antwoorden, en ook niets lijkt te verzenden.

29 Hoe nu verder Wilt u meer weten over programmeren in JAL, over het aansluiten van verschillende soorten hardware? Er zijn van dezelfde schrijver nog vier interessante Nederlandstalige boeken over JAL verschenen, boordevol leuke en spannende projecten. Deze boeken maken geen gebruik van de Piccolino, maar de conversie is inde meeste gevallen eenvoudig. Figuur 19. "PIC Microcontrollers programmeren - in 10 boeiende lessen" Met het boek "PIC Microcontrollers programmeren - in 10 boeiende lessen" leert u hoe u zelf een microcontroller kunt programmeren. Het boek start aan het absolute begin, en bouwt vandaar de kennis op. U heeft dus geen voorkennis nodig: iedereen kan met dit boek aan de slag. Wanneer u alle lessen volgt (dat wil zeggen: de oefeningen ook daadwerkelijk maakt) dan kunt u wanneer u het boek uit heeft zelf PIC microcontroller programma's schrijven, en programma's van anderen lezen. U leert de functie van JAL opdrachten zoals include, pin, delay, forever loop, while loop, case, exit loop, repeat until, if then, en het gebruik van functies, procedures en timer- en poortinterrupts. U laat een LED knipperen, maakt een tijdschakelaar, meet de stand van een potmeter, maakt geluiden, voorkomt contactdender en regelt de helderheid van een LED. En uiteraard leert u debuggen: hoe u in uw programma's fouten kunt vinden en oplossen. U leert verschillende onderdelen zoals PIC microcontroller, potmeter en kristal herkennen, en hoe u een PIC microcontroller aan moet sluiten en met uw PC moet verbinden. U maakt hierbij gebruik van een steekbord zodat u de opstelling gemakkelijk kunt aanpassen om verder te experimenteren. 29

30 Figuur 20. PIC Microcontrollers - 50 projecten voor beginners en experts. Het boek "PIC Microcontrollers" behandelt 50 spannende en leuke projecten met PIC microcontrollers, zoals een tijdschakelaar, dobbelsteen, codebel, donkerschakelaar, stil alarm, motor aansturing, mensen-sensor, ultrasoon-sensor, plaatjes van licht, nachtzoemer, elektrische kaars. U kunt dit boek gebruiken om de verschillende projecten na te bouwen en daarna in praktijk te brengen. Door de duidelijke uitleg, schema s en zelfs foto s van de opstelling op een steekbord is het nabouwen een erg leuke bezigheid. U kunt dit boek ook als studieboek gebruiken. Per project wordt uitgelegd waarom het project op die manier is uitgevoerd. Ook het gebruik van de datasheet komt regelmatig aan de orde. Al doende leert u veel over het project en de gebruikte microcontroller, en kunt u het project zelf aanpassen en uitbreiden naar uw eigen wensen... ook ideaal voor scholen. Het boek is verder ideaal als naslagwerk. U vindt er de uitleg van alle opdrachten van de programmeertaal JAL in terug. Zelfs als u alle projecten een keer gemaakt heeft, zal dit boek nog lang een plekje naast uw PC behouden.

31 Figuur PIC microcontroller projecten - voor beginners en experts. Het boek "50 PIC microcontroller projecten" boek bevat eveneens 50 leuke en spannende projecten met PIC microcontrollers zoals een laser alarm, USB plaagmuis, eierwekker, jongerenverjager, geluidsschakelaar, capacitieve vloeistofniveau meting, "vinger in het water" sensor, bewaking van een ruimte met een camera, 220 volt lichtdimmer, pratende microcontroller en nog veel meer. Er komen talloze technieken aan de orde zoals relais, wisselstroomregeling (ook 220 volt), I 2 C, SPI, RS232, USB, pulsbreedte modulatie, rotary encoder, interrupts, infrarood, analoog-digitaal conversie (en andersom), 7-segment display en zelfs CAN bus. U kunt dit boek gebruiken om de verschillende projecten na te bouwen en daarna in de praktijk te brengen. Door de duidelijke uitleg, schema's en zelfs foto's van de opstelling is het nabouwen een leuke bezigheid. Bij ieder project wordt uitgelegd waarom het juist op die manier is uitgevoerd, en wordt kort de theorie behandeld. U kunt dit boek dus gebruiken als studieboek, of als basis voor grotere en ingewikkeldere projecten. Alle schakelingen zijn op een steekbord uitgevoerd zodat uitbreiden en aanpassen gemakkelijk is. De drie PIC microcontrollers die in dit boek gebruikt worden zijn de 16f877A, 18f4455 en 18f4685. Daarnaast komt aan de orde hoe u de programma's van de ene naar de andere microcontroller kunt overzetten (er worden 15 types ondersteund) inclusief twee praktijkvoorbeelden. Dit boek is geen vervolg, maar wel een aanvulling op het "PIC Microcontrollers" boek van dezelfde schrijver. Heeft u beide boeken dan heeft u maar liefst 100 projecten voor zes verschillende microcontrollers! 31

32 Figuur 22. Kunstmatige Intelligentie - Breng uw microcontroller tot leven! Het boek "Kunstmatige Intelligentie" bevat 23 zeer bijzondere en spannende projecten over kunstmatige intelligentie en lerende machines, voor PIC microcontroller en PC. U leert hoe u een neuraal netwerk in een microcontroller opzet, en hoe u het netwerk zelflerend kunt maken. U ontdekt hoe u robots kunt kweken, en hoe u door verandering van een fitness functie een totaal ander gedrag krijgt. U merkt hoe een PC programma uw zwakke punten vindt en deze in een spelletje meedogenloos uitbuit. Talloze technieken uit de kunstmatige intelligentie komen in de projecten aan de orde zoals expert systeem, neuraal netwerk, subsumptie, emergent gedrag, genetisch algoritme, cellulaire automaat en roulette hersenen. Ieder project bevat duidelijke instructies met schema's en foto's zodat u meteen aan de slag kunt. Overal vindt u ideeën en veel literatuur verwijzingen om nog veel meer projecten te kunnen maken. Zelfs als u alle projecten uit dit boek gemaakt heeft zal het zodoende nog lang als ideeënboek en naslagwerk naast uw PC blijven staan. Een uniek boek vol informatie die u nergens anders kunt vinden, in eenvoudige en duidelijke taal. Een schitterend boek voor iedereen met interesse in kunstmatige intelligentie en lerende machines. Piccolino (JAL) taal instructies JAL (Just Another Language) is een niet aan indeling gebonden taal. De opdrachten kunnen over de regels verspreid worden naar keuze. Tab, spatie, nieuwe regel wordt allemaal als spatie gelezen. Er is geen scheidingsteken tussen opdrachten. In theorie kunnen alle opdrachten dus op een regel achter elkaar gezet worden, in de praktijk leidt deze vrijheid er toe dat programma's juist zeer leesbaar geschreven worden.

33 Het is de enige geavanceerde gratis taal, en kent een grote en internationale actieve gebruikersgroep. JAL is configureerbaar en uitbreidbaar door middel van bibliotheken en kan gecombineerd worden met assembler. Een typisch JAL programma bestaat uit het aanroepen van een library die tenminste de gegevens van de PIC bevat waarvoor het programma bedoeld is. Gebruikt u bijvoorbeeld de Piccolino met de 16f887 microcontroller dan roept u die library aan. include 16f887_bert_piccolino Daarna worden de variabelen en constanten gedeclareerd: var byte a Waarna de opdrachten volgen: forever loop a = a + 1 end loop Het is een goed gebruik in het programma door middel van commentaar regels aan te geven wat het programma precies doet, en aan te geven voor welke JAL versie het geschreven is. Het totale programma zou er dus als volgt uit zien: Variabelen --JAL 2.4j include 16f887_bert_piccolino var byte a --demo programma forever loop a = a + 1 end loop Hier wordt meteen de kracht van JAL zichtbaar; zowel unsigned (alleen positief) als signed (positief en negatief) variabelen kunnen gebruikt worden tot 32 bits aan toe Voor variabelen met meer dan 16 bits moeten microcontrollers beschikken over zogeheten shared memory. Van de microcontrollers waarvoor een _bert bibliotheek beschikbaar is bevatten 33

34 naam omschrijving range bit 1 bit unsigned boolean 0 of 1 byte 8 bit unsigned 0 t/m255 sbyte 8 bit signed -128 t/m127 word 16 bit unsigned 0 t/m sword 16 bit signed t/m dword 32 bit unsigned 0 t/m sdword 32 bit signed t/m Tabel 7. Verschillende typen variabelen die JAL kent. Bovendien is het mogelijk een variabele op maat te definiëren. Bijvoorbeeld: var bit*2 demo Deze opdracht zorgt ervoor dat variabele demo nu 2 bits lang is (en dus de waarden 0,1,2 en 3 kan bevatten). Wanneer een waarde aan demo wordt toegekend hoeft de waarde niet persé twee bits te zijn, echter alleen de laagste twee bits worden in demo gezet (de rest past immers niet). 24 Dus: demo = 99 maakt van demo in werkelijkheid 3 (99 is binair, de laagste twee bits zijn 1, en dat is decimaal 3). Behalve decimale waarden kunnen ook andere basisstelsels gebruikt worden. Hiervoor wordt een prefix aan het getal toegevoegd. Toegestane stelsels zijn: 23 decimaal 0x1F hexadecimaal 0b01 binair de 10f200 en de 12f675 dit soort geheugenplaatsen niet. Bij deze microcontrollers bent u dus beperkt tot 16 bits of minder. 24 De compiler ziet dit wel en geeft u een waarschuwing. Als dit uw bedoeling was (zoals in dit voorbeeld) kunt u deze waarschuwing negeren. Gebruikt u het download pakket dan krijgt u deze waarschuwingen overigens niet te zien, want deze staan standaard uit.

35 En uiteraard kunnen er ook letters gebruikt worden: "Hello" string Voor betere leesbaarheid kunnen getallen van underscores worden voorzien op elke gewenste positie. Voor de compiler is 100 dus identiek aan 10_0. Een voorbeeld van een binaire waarde toewijzing met underscores: a = 0b_1001_1110 Het declareren van variabelen moet plaatsvinden voordat ze gebruikt worden. Er zijn een aantal mogelijkheden: opdracht var byte a var byte a = 0x1F omschrijving a is gedeclareerd als byte idem, a krijgt meteen als waarde 1F (hexadecimaal). var byte a at 0x06. a is gedeclareerd als byte op geheugenplaats 0x var byte volatile a var byte a is b a is gedeclareerd als byte en mag door de compiler niet weg geoptimaliseerd 26 worden. a is een synoniem of alias voor b (deze moet dan eerst gedeclareerd worden). Tabel 8. Declareren van variabelen. 25 Normaal moet u erg goed weten wat u doet voor u variabelen op een geheugen plaats dwingt. Het kan echter ook op een handige manier gebruikt worden om een variabele op te splitsen. Dit voorbeeld definieert een array op dezelfde plaatst als het word demo: var word demo var byte dem[2] at demo Demo is een word en dus twee bytes lang. Aangezien de array dem[2] ook twee bytes lang is, en op dezelfde plaats in het geheugen staat is het eerste item in de array dem[0] de lage byte en het tweede item dem[1] de hoge byte van demo. 26 De compiler optimaliseert het programma tijdens compilatie. Zo worden bijvoorbeeld ongebruikte stukken van bibliotheken verwijderd. Ongebruikte variabelen worden dus ook verwijderd. Door een variabele als volatile te definiëren wordt deze verwijdering voorkomen. Dit is vooral van belang als een variabele naar een pin verwijst. De compiler 'weet niet' dat pinnen van buitenaf kunnen veranderen en zal de opdracht dus als 'zinloos' wissen. Overigens is dit vooral van belang in bibliotheken. Wie verwijst naar pin_a4 verwijst in werkelijkheid naar een variabele in een bibliotheek. De normale gebruiker zal volatile zelden of nooit nodig hebben. 35

36 De laatste opdracht kunt u gebruiken om aan pinnen gemakkelijkere namen te geven. Stel dat aan pin c1 een rode led zit, dan kunt u na het geven van deze opdracht: var bit redled is pin_c1 Met bijvoorbeeld redled = 1 de pin c1 hoog maken en dus de led aanzetten. Behalve dat het programma daardoor een stuk leesbaarder wordt is het ook makkelijk bij de eventuele migratie naar een ander type microcontroller. Stel bijvoorbeeld dat deze helemaal geen c1 pin heeft, dan hoeft u alleen de definitieregel te veranderen in bijvoorbeeld var bit redled is pin_a1 waarbij de rest van het programma ongewijzigd kan blijven. Constanten Wanneer u van te voren weet dat een variabele niet van waarde gaat veranderen, dan is het geen variabele maar een constante. U kunt dit aangeven met de opdracht const, bijvoorbeeld: const byte demo = 5 Het grote voordeel hiervan is dat een variabele RAM geheugen gebruikt - in de meeste microcontrollers een schaars goed - en een constante niet. Deze komt namelijk in het programma geheugen, waar veel meer van beschikbaar is. Het loont dus de moeite waar mogelijk constanten te gebruiken. Forever loop Deze opdrachten set zorgt ervoor dat een bepaald programmadeel eindeloos herhaald wordt. Veel microcontroller programma's maken van deze set gebruik omdat dit een handige manier is om ervoor te zorgen dat het programma nooit stopt. forever loop [opdrachten] end loop Met de opdracht Exit Loop kunt u de eindeloze lus desgewenst verlaten.

37 While loop Deze opdrachten set zorgt ervoor dat een serie opdrachten herhaald wordt zolang aan een bepaalde conditie is voldaan. In het onderstaande voorbeeld worden de opdrachten herhaald zolang aan de conditie voldaan is (true). Is aan de conditie niet meer voldaan (false) dan verlaat het programma de lus. while [conditie] loop [opdrachten als aan de conditie voldaan is ] end loop Met de opdracht Exit Loop kunt u de lus verlaten ook als de conditie nog steeds waar is. Repeat until Met deze opdracht kunt u een serie opdrachten herhalen totdat aan een bepaalde voorwaarde is voldaan. repeat [opdrachten als aan conditie voldaan wordt ] until [conditie] In het volgende voorbeeld wordt geteld totdat de teller waarde 8 heeft bereikt: repeat teller = teller + 1 until teller == 8 Let op het dubbele is-gelijk teken, het betreft hier immers een conditie en geen som. In feite lijkt deze opdracht op een while-loop met de test aan het einde, dus die minimaal 1 maal doorlopen wordt. Met de opdracht Exit Loop kunt u de lus verlaten ook als nog niet aan de conditie is voldaan. For loop Deze opdrachten set zorgt ervoor dat een serie opdrachten een vast aantal keren uitgevoerd wordt. 37

38 In het onderstaande voorbeeld worden de opdrachten een aantal keer herhaald. for [aantal keer] loop [opdrachten ] end loop Normaal telt de compiler "voor zichzelf", maar u kunt hem ook dwingen een bepaalde variabele voor het tellen te gebruiken met behulp van de opdracht using. Dat kan handig zijn wanneer u bijvoorbeeld met deze teller de positie in een array wilt bepalen for 10 using teller loop [ opdrachten ] waarde = demo[teller] end loop Omdat microcontrollers bij 0 beginnen met tellen krijgt teller dus de waarden 0 tot en met 9. Met de opdracht Exit Loop kunt u de lus verlaten ook wanneer deze nog niet vaak genoeg uitgevoerd is. Procedure Een procedure is een stukje programma dat op meerdere plaatsen gebruikt wordt. Dit stukje programma kan apart gezet worden in een soort apart programma, procedure genaamd. Zo hoeft het niet telkens opnieuw ingetypt te worden. Bovendien komt het de leesbaarheid van een programma zeer ten goede. In het onderstaande voorbeeld staat de procedure demo procedure demo is [opdrachten] end procedure Deze procedure wordt aangeroepen met de opdracht demo U kunt in een procedure ook variabelen gebruiken. Wanneer u deze binnen de procedure declareert gelden ze alleen in die procedure. In dit voorbeeld:

39 procedure demo is var byte a [opdrachten] end procedure is de variabele a buiten de procedure niet bekend. Wilt u een waarde aan een variabele geven van buiten de procedure, dan moet u deze in de aanroep doorgeven. Daarmee wordt hij automatisch gedeclareerd. De procedure zelf ziet er dan zo uit: procedure demo (byte in a) is [opdrachten waarin a gebruikt wordt] end procedure Binnen deze procedure kunt u nu dus variabele a gebruiken, die bij de aanroep meteen een waarde krijgt. De aanroep gaat als volgt wanneer u bijvoorbeeld waarde 6 wilt doorgeven naar variabele a: demo (6) Op dezelfde manier kunt u ook variabelen weer uit de procedure doorgeven, maar dan met "byte out" in plaats van "byte in". Als voorbeeld een echte procedure: procedure serial_hw_write ( byte in data ) is -- wacht totdat TXREG leeg is while! TXIF loop end loop -- stop dan de variabele data in TXREG ter verzending TXREG = data end procedure Wanneer deze procedure met bijvoorbeeld serial_hw_write(6) aangeroepen wordt krijgt data waarde 6, en wordt in de regel TXREG=data gebruikt. Zo kunt u dus nieuwe opdrachten maken en die aan JAL toevoegen. Wanneer u bijzondere procedures heeft gemaakt, bijvoorbeeld voor de aansturing van een bepaalde chip of functie, dan kunt u deze ook in een apart bestand zetten. Dit bestand wordt dan een bibliotheek die met de opdracht include gebruikt kan worden. Het voordeel hiervan is dat het programma leesbaarder wordt, maar ook dat u bij een volgend programma dat van dezelfde chip of functie gebruik moet maken alle relevante opdrachten meteen bij de hand heeft. 39

40 Interrupt Een interrupt routine is een procedure die onder bepaalde voorwaarden wordt aangeroepen, bijvoorbeeld doordat een pin van status verandert of doordat een systeemteller afloopt. Het normale programma wordt onderbroken en in plaats daarvan wordt de interrupt procedure uitgevoerd. Na afloop gaat het gewone programma weer verder waar het gebleven was. procedure demo is pragma interrupt [opdrachten] end procedure De eerste regel van een interrupt routine moet altijd het commando pragma interrupt bevatten. Aangezien bij een interrupt, ongeacht de reden, alle interruptprocedures aangeroepen worden moet u zelf controleren of het wel de interrupt betreft waarin u geïnteresseerd bent. U kunt net zoveel interrupt procedures maken als u maar wilt: de compiler plakt ze voor u achter elkaar. In het algemeen is het echter het best om het gebruik van interrupts te vermijden tenzij het absoluut nodig is. Interrupt routines mogen niet aangeroepen worden vanuit het hoofdprogramma of andere procedures of functies. Functie Een functie is eigenlijk hetzelfde als een procedure, met als verschil dat een functie altijd een antwoord moet geven. Welk antwoord dat is moet in de functie aangegeven worden met de return statement. In het onderstaande voorbeeld wordt variabele a in de functie met 1 vermeerderd: function demo (byte in a) return byte is var byte b b = a + 1 return b end function

41 In de definitie van de functie wordt aangegeven dat een input verwacht wordt (byte in) en dat het antwoord dat de functie gaat geven een byte is. In de procedure zelf wordt met "return b" aangegeven dat dit de waarde is die teruggegeven wordt. De aanroep van deze functie kan als volgt gebeuren: x = demo(4) waarbij x dan de waarde 5 krijgt (immers 4 + 1). Functies worden vooral veel gebruikt om als antwoord geen getal te geven maar een status indicatie true of false, of een getal én een status indicatie. Dit is een mooi praktijk voorbeeld: function serial_hw_read ( byte out data ) return bit is -- kijk of er wat in de buffer zit en zo ja haal het eruit if RCIF then data = RCREG else return false end if return true end function Deze functie kijkt of RCIF true is, wat wil zeggen: er zijn gegevens in de buffer van de seriële hardware poort. Als dat zo is worden deze gegevens in de variabele data gezet. De functie krijgt als antwoord true. Zijn er geen gegevens dan krijgt de functie als antwoord false. In dat laatste geval weet u dus dat er geen gegevens ontvangen zijn en dat variabele data dus niets nieuws bevat. Wilt u in uw programma wachten totdat er iets ontvangen is dan kan dat zo: while!serial_hw_read(data) loop end loop Zolang de functie false is (not true) wordt de while-loop herhaald. Pas als de functie true is, en er dus een gegeven ontvangen is, wordt de lus verlaten. In-line assembler In JAL programma's kan ook gebruik gemaakt worden van assembler. Normaal komt dat niet zo vaak voor, maar wellicht bent u een interessant stukje programma op internet tegen gekomen of wilt u een voorbeeld uit de datasheet gebruiken. Individuele assembler opdrachten kunnen gebruikt worden door er asm voor te zetten, zoals hier: 41

42 asm movlw 0xFF Betreft het meerdere opdrachten dan is het handiger de assembler statement te gebruiken: assembler movlw 0xFF bsf 5 movwf pr2 bcf 5 end assembler 27 Interessant wellicht is dat de compiler behalve de HEX file die naar de microcontroller gaat ook een assembler file aanmaakt. U kunt deze gebruiken om programma's uit te wisselen met assembler gebruikers, of om de tools van Microchip te gebruiken. Alle assembler opdrachten ("mnemonics") die u in de datasheet vindt zijn bruikbaar. Daarnaast zijn een paar extra opdrachten opgenomen die u in programma's op internet nogal eens als macro tegenkomt (en dus ook gewoon kunt gebruiken), bijvoorbeeld: opdracht omschrijving OPTION k Kopieer literal k naar het OPTION register. 28 TRIS {5,6,7} Kopieer W naar het TRIS {5,6,7} register. MOVFW f Kopieer f naar W (een synoniem voor MOVF f, W). 29 SKPC SKPNC SKPZ SKPNZ Een synoniem voor BTFSS _status, _c. Een synoniem voor BTFSC _status, _c. Een synoniem voor BTFSS _status, _z. Een synoniem voor BTFSC _status, _z. Tabel 9. Voorbeelden van in JAL bruikbare ASM macro's. 27 Een heel gedoe om in assembler de waarde 0xFF aan pr2 toe te kennen omdat het programma in geheugen bank 0 staat, en pr2 in geheugen bank 1. In JAL hoeft u daar geen rekening mee te houden (u hoeft niet eens te weten wat geheugenbanken zijn) en kunt u gewoon pr2 = 0xFF gebruiken. 28 In het Engels wordt het woord move gebruikt, dat 'verplaats' betekent. De originele waarde blijft echter behouden, dus feitelijk is het geen verplaatsen maar kopiëren. 29 W is het werkregister, f het register file adres. MOVFW myvar zet de waarde van myvar in W, MOVLW myvar zet het adres van myvar in w.

43 Gebruikt u in uw assembler blok variabelen uit het JAL deel van uw programma dan kunt u niet zeker weten waar deze staan, omdat JAL de variabelen in een willekeurige geheugenbank opbergt. Het gevolg daarvan is dat u op het moment dat het JAL programma onderbroken wordt ook niet weet waar de bank pointers op dat moment naar toe wijzen. Omdat u niet weet waar de bank pointers naar wijzen kunt u ook niet zomaar bij registers, ook al weet u wel waar die staan. De oplossing hiervoor is de compiler te vragen de bank verwijzingen in orde te maken. U doet dat door in elke regel waarin u JAL data of registers aanspreekt het keyword bank op te nemen. procedure register_write( byte in Address, byte in data ) is assembler bank movf address,w ; zet address in werk variabele w movwf FSR ; verplaats address naar het file select register bcf irp ; maak irp nul zodat we bank 0 en1 gebruiken ; (indirect register bank selectie), 0 = bank 0/1 bank movf data,w movwf indf end assembler end procedure ; verplaats data naar w ; verplaats data naar indirect file register zoals ; aangeduidt door fsr In het bovenstaande fragment afkomstig uit de door mij geschreven library regedit ziet u dat het bank keyword gebruikt wordt bij regels waar address en data in voorkomen. 30 Van deze JAL gegevens is immers niet bekend waar ze staan. De regels die naar de registers FSR, IRP en INDF wijzen hebben geen bank keyword omdat deze registers in alle banken staan. Task Hoewel een PIC maar één ding tegelijk kan doen kan er (net als op een PC) aan multitasking gedaan worden. Met de task opdracht kunnen de verschillende taken gedefinieerd worden. Telkens wanneer het programma een suspend opdracht tegenkomt wordt de huidige taak onderbroken en kijkt de scheduler welke taak het langst staat te wachten. Deze "oude" taak krijgt dan de controle. Dit systeem werkt dus alleen als alle taken eerlijk zijn, en met enige regelmaat de suspend opdracht gebruiken. 30 Een library waarmee u in een lopend programma registers kunt uitlezen en aanpassen vanaf uw PC. De nieuwste versie van deze library (die in het downloadpakket dus) is overigens volledig in JAL geschreven, dus daar komt u deze constructie niet meer tegen. 43

44 Binnen een taak kunnen, net als bij een procedure, parameters gedeclareerd en meegegeven worden. Omdat een taak in feite een soort programma is moet een foreverloop gebruikt worden wanneer het de bedoeling is dat de taak altijd blijft draaien. task naam1 (parameters) is [ opdrachten ] suspend [ opdrachten ] end task task naam2 (parameters) is [ opdrachten ] suspend [ opdrachten ] end task start naam1(parameterwaarden) start naam2(parameterwaarden) forever loop suspend end loop Voordat een taak daadwerkelijk begint moet hij gestart worden met de opdracht "start [naam]". U kunt dit doen vanuit een andere taak of vanuit het hoofdprogramma. Merk op dat het hoofdprogramma altijd start (net als normaal) maar een taak alleen wanneer u daar expliciet opdracht toe geeft. U kunt een taak permanent stoppen met de opdracht return of door het programma de opdracht end task tegen te laten komen. U kunt een taak dus alleen stoppen vanuit de taak zelf, niet vanuit een ander taak. Een task die gestopt is wordt niet meer aangeroepen, tenzij u hem expliciet weer start. Let op: Indien een programma met taken gecompileerd wordt moet aan de compiler medegedeeld worden hoeveel taken er zijn. Het hoofdprogramma wordt ook als taak geteld! Het voorgaande programma telt dus 3 taken. U kunt hiervoor de opdracht: Pragma task 3

45 gebruiken. U plaats deze opdracht aan het begin van het programma net onder de include van de _bert library. In oude JAL versies moet u het aantal taken op de commando regel meegeven, in dat geval dus met -task Vergeet niet binnen elke taak een forever-loop opdracht of iets dergelijks te gebruiken anders wordt uw taak slechts eenmaal uitgevoerd. If then else Deze opdracht wordt gebruikt om een keuze te kunnen maken uit een tweetal situaties. Als (if) de ene situatie zich voordoet dan (then) moet een bepaalde actie uitgevoerd worden, anders (else) moet iets anders gebeuren. In het onderstaande voorbeeld krijgt b als waarde 2 wanneer a gelijk is aan 1, in alle andere gevallen krijgt b waarde 3. if a == 1 then b = 2 else b = 3 end if Deze opdracht kan genest worden, dat wil zeggen dat er meerdere statements in elkaar grijpen zoals in het onderstaande voorbeeld. if a == 1 then b = 2 else if a == 2 then b = 3 else b = 4 end if end if Merk op dat else if twee woorden zijn. De bovenstaande constructie levert het volgende resultaat op: 31 Maakt u gebruik van JALedit dan kunt u dit bij Compile - Environment Option - Additional Commandline Parameters opgeven. 45

46 if then a = 1 b = 2 a = 2 b = 3 a = iets anders b = 4 In plaats van else if kunt u ook de opdracht elsif gebruiken. De syntax ziet er als volgt uit: if a == 1 then b = 2 elsif a == 2 then b = 3 elsif a == 3 then b = 4 else b = 5 end if In de praktijk komt u elsif zelden tegen. Case Geneste if-then else opdrachten komen de leesbaarheid van een programma niet ten goede. In zulke gevallen is het beter de CASE opdracht te gebruiken. Het onderstaande voorbeeld wordt afhankelijk van de waarde van a een waarde aan b gegeven. Heeft a waarde 3 dan wordt b 4. Heeft a waarde 4 of 5 dan wordt b 59. Staat de waarde van a niet aangegeven dan (otherwise) wordt b 6. case a of 1: b = 20 2: b = 13 3: b = 4 4,5: b = 59 otherwise b = 6 end case In tegenstelling tot if-then else mag hier slechts één opdracht per keuze gegeven worden. Wilt u indien a de waarde 1 heeft b een waarde geven maar bijvoorbeeld ook c dan gaat dat niet. U zult in dat geval een procedure moeten gebruiken, of de block opdracht.

47 Block Met de block opdracht kan een aantal opdrachten gegroepeerd worden. Variabelen die binnen een blok gedeclareerd zijn kunnen alleen binnen dat blok gebruikt worden. Een blok staat gewoon in het programma en kan niet "aangeroepen" worden zoals een procedure. block [ opdrachten ] end block Dit is vooral handig in combinatie met de case opdracht of wanneer u variabelen heel lokaal in maar een klein stuk van uw programma wilt houden. Dat kan voorkomen wanneer u delen van verschillende programma's wilt gebruiken, die echter wel dezelfde variabelen bezitten. Array case a of 1: b = 20 2: block b = 13 c = 188 end block 3: b = 4 4: b = 59 otherwise b = 6 end case Normaal heeft een variabele maar één waarde. Met een array kan aan een variabele een hele rij waarden worden gegeven. In het onderstaande voorbeeld wordt aan de array "demo" een rij van vijf waarden toegekend. var byte demo[5] = {11,12,13,14,15} Om een van de waarden in deze array te lezen moet tussen vierkante haakjes de positie van dat getal in de reeks aangegeven worden. Let op: zoals voor computers gebruikelijk begint de telling bij 0. Het eerste getal uit deze reeks heeft dus als nummer 0!! Dus demo[0] heeft als waarde 11 en demo[4] heeft als waarde 15. Demo[5] bestaat niet. De onderstaande opdracht geeft aan a de waarde van het vierde getal uit de array, dus

48 a = demo[3] Een andere waarde in de array stoppen gaat op soortgelijke wijze. In het voorbeeld krijgt het vierde getal uit de array waarde a. demo[3]= a Overigens kan het programma middels de opdracht count nagaan hoe lang een array is. Bijvoorbeeld: a = count(demo) Dus count is een "reserved" woord (kan niet als variabele gedeclareerd worden). Een array moet binnen een RAM geheugenbank passen. Een bit array is niet mogelijk. Long table (ook wel: Lookup table of LUT) Heeft u meer ruimte nodig dan in een array past dan kan vanaf JAL versie een long table gebruikt worden. Deze array mag alleen constante waarden bevatten. U kunt hem dus eenmalig definiëren en mag er daarna niets meer in wijzigen. Dat komt omdat dit weliswaar ook een soort array is, maar in plaats van in het RAM geheugen zit deze array in het programma (flash) geheugen. De long table kan dus zeer lang zijn (in de 18f4455 maximaal zo'n bytes!), maar de totale lengte kan niet meer zijn dan er aan vrij programmageheugen beschikbaar is. U kunt hier zelf op letten bij het gebruik, door eerst het programma met een long table van bijvoorbeeld 1 te compileren. Aan de hand van de resulterende programmalengte kan de maximale lengte van de long table bepaald worden. Wanneer de long table niet in het geheugen past kan het programma niet in de microcontroller gezet worden, u krijgt hier vanzelf een foutmelding van. De syntax van de long table is: const byte long_table[2049] = { 1, 2, 3, 4, 5,...} var word x var byte y y = long_table[x] waarbij de lengte 2049 en de inhoud 1,2,3 uiteraard als voorbeeld gelden.

49 Operators JAL kent een grote hoeveelheid operators. De onderstaande tabel geeft de belangrijkste met uitleg en waar nodig een eenvoudig voorbeeld. Operator Uitleg!!! Logische operator, geeft aan of een variabele 0 is of niet. Bijvoorbeeld!!5 = 1, en!!0 = 0 Not, maakt op bit niveau van elke 0 een 1 en omgekeerd. Dus!5 = 250 want!0b_0000_0101 = 0b_1111_1010 * Vermenigvuldiging / % Deling zonder rest. Dus 9/2 = 4 Restdeling (ook wel MOD of modulo genoemd) Dus 9%2 = 1 + Optellen. - Aftrekken. < Left shift, schuift alle bits 1 naar links op. Let op: het extra plekje is niet altijd een 0. Wanneer het een variabele is met een teken wordt dit teken bewaard en niet mee geschoven. >> Right shift, idem maar dan de andere kant op. < Minder dan. <= Minder dan of gelijk aan. == Gelijk aan, merk op dat dit twee is-gelijk tekens achter elkaar zijn. Maar één is-gelijk teken gebruiken is een vaak voorkomende fout (dit mag u rustig als understatement lezen!).!= Ongelijk aan (of anders gezegd: niet gelijk aan). >= Groter dan of gelijk aan. > Groter dan. 49

50 AND op bitniveau, waarbij per bit geldt: & ^ 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 OR op bitniveau, waarbij per bit geldt: 1 1 = = = = 0 XOR (exclusive OR) op bitniveau, waarbij per bit geldt: 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0 Tabel 10. Operatoren. Pragma Pragma is een opdracht voor de compiler. Het is een krachtige maar helaas daardoor ook complexe opdracht. Een detail uitleg voert een beetje te ver voor dit boek, bovendien zult u de meeste pragma's in de praktijk zelden of nooit nodig hebben. De onderstaande tabel geeft de belangrijkste pragma's met uitleg: opdracht pragma eedata omschrijving Met deze opdracht worden gegevens opgeslagen in het eeprom geheugen van de PIC. Bijvoorbeeld pragma eedata "O","K" slaat de letters O en K op.

51 pragma interrupt pragma clear yes Pragma task Deze opdracht mag alleen in procedures gebruikt worden. Het resultaat is dat deze procedure aan de interrupt keten wordt toegevoegd. Er is geen grens aan het aantal procedures in een interrupt keten, echter de volgorde waarin ze afgehandeld worden is niet gedefinieerd. Interrupt procedures mogen niet door het programma aangeroepen worden, of door andere procedures of functies. Maak alle variabelen 0 aan het begin van het programma. Dit geldt niet voor volatile variabelen, en variabelen die de gebruiker expliciet een waarde heeft gegeven. Geeft aan hoeveel taken er tegelijk moeten draaien. Gebruikt u taken dan telt het hoofdprogramma ook voor een taak! Het is handiger deze pragma te gebruiken dan het aantal taken op de commandoregel in te vullen (want daar vergeet u het gegarandeerd). Het kan echter wel, omdat oudere JAL versies deze pragma opdracht niet kennen. Tabel 11. Meest relevante pragma's. Commentaar Een commentaar regel wordt vooraf gegaan door twee liggende streepjes of een puntkomma. U moet dat per regel doen. ; dit is een commentaar regel -- en dit ook Commentaar regels worden gebruikt om opmerkingen in het programma te plaatsen. Voor uzelf, zodat u later nog weet wat ook al weer de bedoeling was, of voor anderen wanneer u uw programma's via internet met anderen deelt. Het is een goed gebruik om op de eerste regel aan te geven voor welke JAL versie uw programma geschreven is. Dat voorkomt een hoop vragen! Goed commentaar gaat niet over wat een opdracht doet want dat weet de lezer al, maar vooral over waarom u die opdracht gebruikt. Maakt u zelf bibliotheken dan is het gebruikelijk daarin uitgebreid uit te leggen hoe de library gebruikt wordt, en waarvoor. Een library zonder deze informatie is voor anderen compleet waardeloos. 51

52 De _bert_piccolino bibliotheek Bibliotheken (libraries) worden gebruikt om gegevens die bij een microcontroller horen gemakkelijk toegankelijk te houden, en vooral om extra opdrachten te kunnen definiëren. Omdat iedereen naar eigen goeddunken bibliotheken kan schrijven en publiceren werken niet alle bibliotheken goed samen. Bij dit boek hoort een pakket bibliotheken die samengevoegd zijn tot één grote bibliotheek: 18f4455_bert_piccolino. 32 Hiermee wordt een fikse hoeveelheid extra opdrachten aan JAL toegevoegd. Bovendien zijn alle eventuele compatibiliteitsproblemen opgelost. De eer voor de inhoud van deze bibliotheken gaat naar de schrijvers. Deze combinatie library voegt een hele reeks opdrachten toe aan JAL die u in de JAL boeken zult tegenkomen, voor bijvoorbeeld analoge conversie, seriële communicatie, lezen en schrijven naar het geheugen en nog veel meer. De belangrijkste komen in deze paragraaf aan de orde. Uiteraard zijn ze alleen van toepassing wanneer de betreffende microcontroller deze functionaliteit bezit. Deze bibliotheek wordt hier niet besproken maar komt aan de orde in mijn JAL projecten boeken. Zie sectie 5, "Klaar, en wat nu", voor meer informatie over deze boeken. Overige bibliotheken In de download bevinden zich nog veel meer bibliotheken, voor bijvoorbeeld USB, gebruik van een camera etc. Deze bibliotheken worden hier niet besproken, zij komen aan de orde in mijn JAL projecten boeken. Zie sectie 5, "Klaar, en wat nu", voor meer informatie over deze boeken. 32 De _bert_piccolino bibliotheek is speciaal voorde Piccolino gemaakt. Er zijn ook samengestelde bibliotheken voor "losse" microcontrollers die met een aparte programmer geprogrammeerd moeten worden. Deze bibliotheken hebben als achtervoegsel _bert. Deze bibliotheken zijn maar voor een beperkte groep microcontrollers beschikbaar. Wilt u een microcontroller kopen controleer dan eerst of er een _bert bibliotheek van is. U vindt een lijst met ondersteunde microcontrollers op volg de links naar de Starterpack.

53 Index!... 49!! % & ^ _bert bibliotheek << f877A f f887_bert_piccolino f ANx... 4 array asm assembler auto-reset jumper Baud rate binair bit bit at bit is blauw tabje block byte byte in byte is byte out case CCP CCp Code Explorer COM poort instellingen commentaar compile compile results compileren const Constante...36 Data bits...14 delay_100ms...8 delay_1s(1)...17 dword...34 else...45 elsif...46 end loop...8 end task...44 Errors. JALedit...19 Establishing contact...23 Establishing contact exit loop...36 Flowcontrol...14 for loop...37 forever loop... 8, 36 functie...40 GND...5 headers...4 iclude...16 if then...45 include...8 in-line assembler...41 interrupt...40 JAL...8 JALedit...8 JALEdit...12 jumper, Piccolino...21 Left shift...49 long table...48 lookup table...48 LUT...48 NC...5 Nieuw...13 Openen...13 operator...49 Opslaan...13 otherwise

54 pan... 17, 26 Parity pbutton... 17, 26 Piccolino... 1 Piccolino Sidekick... 6 Piccolino, kan niet programmeren pled... 17, 26 ppot... 17, 26 pragma pragma clear pragma eedata pragma interrupt... 40, 51 pragma task... 44, 51 procedure programmeren, leren projecten... 30, 31, 32 repeat until return... 40, 44 Right shift sbyte SCL... 5 SDA... 5 SDO... 5 sdword start stop bits suspend sword task variabele op maat Vin... 5 virtuele seriële poort volatile werkblad while loop word... 34

55 55

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT Geschreven door: Tom Vocke Datum: 28-09-2010 Inleiding: Dit document bevat alle hardware informatie betreffende de AVR-Doper mini. Het eerste deel zal zich

Nadere informatie

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken Handleiding JCreator Inhoud Een Workspace en een eerste project maken Een tweede project maken De editor van JCreator Aanpassen van de basis-directory Documentatie over klassen en methoden van de JDK Bestand

Nadere informatie

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore Handleiding ISaGRAF C Handleiding ISaGRAF Deze handleiding beoogt een korte samenvatting te geven van handelingen die verricht moeten worden om met behulp van ISaGRAF een PLC-programma te schrijven en

Nadere informatie

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Handleiding bij het gebruik van een microcontroller in het Accelerometerproject (Project II) Er zijn speciaal voor het Accelerometerproject

Nadere informatie

Locobuffer Handleiding

Locobuffer Handleiding Locobuffer Handleiding HDM09 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.

Nadere informatie

TAB10-201 XENTA 10ic 10 TABLET FIRMWARE UPGRADE INSTRUCTIES

TAB10-201 XENTA 10ic 10 TABLET FIRMWARE UPGRADE INSTRUCTIES TAB10-201 XENTA 10ic 10 TABLET FIRMWARE UPGRADE INSTRUCTIES Page 1 of 10 VOORDAT U BEGINT: BACKUP BELANGRIJKE GEGEVENS! Bij het upgraden van uw Yarvik tablet naar Android 4.1.1 zullen alle gebruikersinstellingen,

Nadere informatie

Netwerk Interfacing Data Logging.

Netwerk Interfacing Data Logging. Handleiding Netwerk Interfacing Data Logging. EduTechSoft.nl 2009-2010 H.O.Boorsma. Pagina - 2 - Netwerk Interfacing Data Logging Pagina - 3 - Inhoud Inleiding.... 4 Beschrijving van het programma....

Nadere informatie

Handleiding software USB PIC DEV. BOARD

Handleiding software USB PIC DEV. BOARD Handleiding software USB PIC DEV. BOARD V2.0 M.F. van Lieshout & J.G.W. Carpaij 21-03-2006 Handleiding software USB PIC DEV. BOARD Algemene informatie Hier volgt eerst wat algemene informatie over het

Nadere informatie

TAB13-201 XENTA 13c 13,3 TABLET FIRMWARE UPGRADE INSTRUCTIES

TAB13-201 XENTA 13c 13,3 TABLET FIRMWARE UPGRADE INSTRUCTIES TAB13-201 XENTA 13c 13,3 TABLET FIRMWARE UPGRADE INSTRUCTIES Page 1 of 9 VOORDAT U BEGINT: BACKUP BELANGRIJKE GEGEVENS! Bij het upgraden van uw Yarvik tablet naar Android 4.1.1 zullen alle gebruikersinstellingen,

Nadere informatie

Handleiding voor installatie en gebruik van

Handleiding voor installatie en gebruik van Handleiding voor installatie en gebruik van Opticon OPN-2001 Data Collector Inhoud pakket: - OPN-2001 - USB Communicatie kabel - Neckstrap Voordat u kunt communiceren met de OPN-2001 dient u de volgende

Nadere informatie

A Quick Start Guide: AVR programmeren

A Quick Start Guide: AVR programmeren A Quick Start Guide: AVR programmeren In deze guide wordt uitgelegd hoe men kan beginnnen met het programeren van een ATMEL AVR microcontroller. Er zal een testprogramma uit de software library AVRlib

Nadere informatie

Mappen en bestanden. In dit hoofdstuk leert u het volgende:

Mappen en bestanden. In dit hoofdstuk leert u het volgende: Mappen en bestanden 1 Mappen en bestanden Een bestand is een verzamelnaam voor teksten, tekeningen of programma s. Alles wat op de vaste schijf van uw computer staat, is een bestand. Op een vaste schijf

Nadere informatie

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is Arduino? Arduino = microprocessor (Atmel) Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,

Nadere informatie

1. Introductie 2. Omschrijving 2 Omschrijving van de onderdelen (voorzijde) 2. 2. Algemeen 3

1. Introductie 2. Omschrijving 2 Omschrijving van de onderdelen (voorzijde) 2. 2. Algemeen 3 HANDLEIDING Digitale Harddisk Recorder DVR DigitAll CCTV Doornseweg 2a Tel.: 0183-4016346 1. Introductie 2 Omschrijving 2 Omschrijving van de onderdelen (voorzijde) 2 2. Algemeen 3 Opstarten systeem 3

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (6)

De Arduino-microcontroller in de motorvoertuigentechniek (6) De Arduino-microcontroller in de motorvoertuigentechniek (6) E. Gernaat (ISBN 978-90-79302-11-6) 1 De Arduino Programmeeromgeving (IDE) 1.1 Inleiding Als we naar de Arduino site gaan kunnen we daar de

Nadere informatie

2. Uw digitale fotocamera en de computer

2. Uw digitale fotocamera en de computer 67 2. Uw digitale fotocamera en de computer Fotograferen met een digitale fotocamera is vandaag de dag erg populair. Het voordeel van een digitale camera is dat u de foto s direct kunt bekijken op uw camera.

Nadere informatie

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) Vereiste voorkennis Voldoende kennis van het besturingssysteem (in deze handleiding wordt uitgegaan van Windows) De basisprincipes van programmeren Vereiste

Nadere informatie

10. Mijn eerste programma

10. Mijn eerste programma 10. Mijn eerste programma Een korte handleiding voor het invoeren en editten van programmatekst voor een pseudotaal programma. In dit hoofdstuk wordt beschreven hoe je je allereerste pseudotaal programma

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

TAB09-410 NOBLE 97ic FIRMWARE UPGRADE INSTRUCTIES

TAB09-410 NOBLE 97ic FIRMWARE UPGRADE INSTRUCTIES TAB09-410 NOBLE 97ic FIRMWARE UPGRADE INSTRUCTIES Pagina 1 van 9 VOORDAT U BEGINT: BACKUP BELANGRIJKE GEGEVENS! Bij het upgraden van uw Yarvik tablet zullen alle gebruikersinstellingen, door de gebruiker

Nadere informatie

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Module 3: Scratch programmeren: is het logisch of is het niet logisch? Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2

Nadere informatie

Zelf PIC's programmeren. Deel-1 KnipperLED (flashing LED)

Zelf PIC's programmeren. Deel-1 KnipperLED (flashing LED) Zelf PIC's programmeren Deel-1 KnipperLED (flashing LED) Het eerste project is het programmeren van een knipperende LED. Bij dit project gaat het vooral om ervaring op te doen met PIC-programmeren. We

Nadere informatie

SMP50-200/201 INGENIA HORIZON 5 SMARTPHONE PARTITIE FIX INSTRUCTIES

SMP50-200/201 INGENIA HORIZON 5 SMARTPHONE PARTITIE FIX INSTRUCTIES SMP50-200/201 INGENIA HORIZON 5 SMARTPHONE PARTITIE FIX INSTRUCTIES Page 1 of 8 VOORDAT U BEGINT: BACKUP BELANGRIJKE GEGEVENS! Bij het upgraden van uw Yarvik Smartphone kunnen alle gebruikersinstellingen,

Nadere informatie

RTC Opleidingen Beckhoff TwinCAT. Voorbereiding

RTC Opleidingen Beckhoff TwinCAT. Voorbereiding Voorbereiding Beckhoff Automation bvba Belgium Rudi Grouset v3.3-10/11/2014 Voorbereiding voor het volgen van de Beckhoff training Om de opleidingsdagen bij Beckhoff succesvol te laten doorgaan vragen

Nadere informatie

RS Digidown. Digitale Tachograaf Download Tool. Handleiding

RS Digidown. Digitale Tachograaf Download Tool. Handleiding Page 1 of 6 RS Digidown Digitale Tachograaf Download Tool Handleiding Page 2 of 6 Introductie De RS Digidown is compatibel met elk type digitale tachograaf. Hieronder ziet u de verschillende types. Op

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 1: Installeren en verifiëren van de SDE Door Hugo Arends, augustus 2012 Microcontrollers Een microcontroller is een elektronische component dat gebruikt wordt om (complexe)

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 2: Architectuur ATmega32 en STK500 Door Hugo Arends, september 2012 Architectuur ATmega32 Een uitgebreide en gedetailleerde beschrijving van de ATmega32 microcontroller

Nadere informatie

Internet Veiligheidspakket van KPN Handleiding Windows XP, Vista, 7,8 Versie 13.04.19

Internet Veiligheidspakket van KPN Handleiding Windows XP, Vista, 7,8 Versie 13.04.19 Internet Veiligheidspakket van KPN Handleiding Windows XP, Vista, 7,8 Versie 13.04.19 Inhoudsopgave 1 Inleiding... 3 2 Systeemeisen... 4 3 Installatie... 5 4 Gebruik en instellingen... 12 4.1 Algemeen...

Nadere informatie

Handleiding muziek spelen van een tablet.

Handleiding muziek spelen van een tablet. Handleiding muziek spelen van een tablet. Wat heb je nodig: een tablet minimum 8.4 groot (8.4, 9.7, 10.1, 105, 11.6, 12.2 13.3 zijn geschikt) Wanneer je die nog moet aanschaffen kan ik wel raad geven na

Nadere informatie

Besturing van de Miniatuurwereld RM-U. Gebruik van de Bootloader

Besturing van de Miniatuurwereld RM-U. Gebruik van de Bootloader Besturing van de Miniatuurwereld RM-U Gebruik van de Bootloader Auteur: Leon J.A. van Perlo Versie: 1.0 Datum: 24 december 2012 Release beheer Deze handleiding is van toepassing op Print o RM-U Rev 00

Nadere informatie

Hanwell temperatuur / vocht logger handleiding

Hanwell temperatuur / vocht logger handleiding Hanwell temperatuur / vocht logger handleiding De Hanwell temperatuur / vochtigheid datalogger Hanwell Hanlog32USB software (W200) USB set up communicatie kabel Y055 Verschillende mogelijkheden: -starten

Nadere informatie

Test Joomla op je PC 1

Test Joomla op je PC 1 1 Disclaimer Bij de samenstelling van dit ebook is de grootst mogelijke zorg besteed aan de juistheid en correctheid van de informatie die in dit ebook wordt verstrekt. De auteur van dit ebook kan op geen

Nadere informatie

Besturingspaneel v Raam E-systeem functie omschrijving v109

Besturingspaneel v Raam E-systeem functie omschrijving v109 Besturingspaneel v Raam E-systeem functie omschrijving v109 Aantal druktoetsen: 4 stuks met de volgende functies: On/off toets voor in- en uitschakelen, toets 1 laagste vermogen, 2 midden stand, 3 max.

Nadere informatie

Snel op weg met e.dentifier2

Snel op weg met e.dentifier2 Snel op weg met e.dentifier2 U kunt uw e.dentifier2 gekoppeld of los gebruiken. De verschillen tussen beide methoden leggen we hier uit. Ook vindt u hier antwoord op de veelgestelde vragen. Gekoppeld gebruik

Nadere informatie

Fuel. Handleiding voor installatie en gebruik

Fuel. Handleiding voor installatie en gebruik Fuel Handleiding voor installatie en gebruik Inhoudsopgave 1. Installatie 2. Gebruik - Windows - Linux / Apple / andere systemen - Een nieuw voertuig aanmaken - Uitgaven 3. Onderhoud - Waarschuwingen -

Nadere informatie

HANDLEIDING. Dit document beschrijft de installatie, configuratie en gebruik van de Netduino Plus 2 monitoring oplossing

HANDLEIDING. Dit document beschrijft de installatie, configuratie en gebruik van de Netduino Plus 2 monitoring oplossing 1 HANDLEIDING V2.0.2.0-2013 Dit document beschrijft de installatie, configuratie en gebruik van de Netduino Plus 2 monitoring oplossing Inhoudsopgave 2 Inhoudsopgave... 2 Inleiding... 3 Software installatie...

Nadere informatie

Handleiding: CitrixReceiver installeren voor thuisgebruik.

Handleiding: CitrixReceiver installeren voor thuisgebruik. Handleiding: CitrixReceiver installeren voor thuisgebruik. Deze handleiding is gemaakt om een privé pc geschikt te maken om op het netwerk van MEE te kunnen werken. Zodra het met de onderstaande stappen

Nadere informatie

Meervoudige Smart-Card Duplicator. Gebruiksaanwijzing

Meervoudige Smart-Card Duplicator. Gebruiksaanwijzing Meervoudige Smart-Card Duplicator Gebruiksaanwijzing Project Specificaties De Smart Card Duplicating PCB is kan zes verschillende type smartcards lezen en schrijven, die allemaal gebaseerd zijn op de microchip

Nadere informatie

Programmering Tiny45 voor de DCC locdecoder

Programmering Tiny45 voor de DCC locdecoder Programmering Tiny45 voor de DCC locdecoder Dit is een beschrijving voor het programmeren van de Tiny45 van de locdecoder. Voor de eerste programmering is een programmer voor Atmel AVR mikrocontrollers

Nadere informatie

Foto s kopiëren van de camera

Foto s kopiëren van de camera 1 Foto s kopiëren van de camera Er zijn twee manieren om foto s vanaf een digitale fotocamera op uw computer te zetten: met behulp van een kabeltje tussen de camera en de computer of vanaf de geheugenkaart

Nadere informatie

Installatiehandleiding Windows XP / Vista / Windows 7

Installatiehandleiding Windows XP / Vista / Windows 7 Installatiehandleiding Windows XP / Vista / Windows 7 Versie 1.4 Datum 11 januari 2011 Status definitief Inhoud 1 Downloaden installatiebestand 3 2 SafeSign installeren 4 3 Certificaten toevoegen aan de

Nadere informatie

Installatiehandleiding

Installatiehandleiding ICY1801TP Thermostat Programmer Installatiehandleiding en gebruiksaanwijzing I.C.Y. B.V. Introductie De Thermostat Programmer vergemakkelijkt het programmeren van de Timer-Thermostaat, doordat u één keer

Nadere informatie

Het overzetten van WinDigipet data tussen PC (s) of Laptops

Het overzetten van WinDigipet data tussen PC (s) of Laptops Het overzetten van WinDigipet data tussen PC (s) of Laptops (versie ProX.3) Door: Bob vermeulen Versie: 1.1 Datum: 27-03-2009 2009-03-27 1 van 17 INHOUD 1 Inleiding... 3 2 De voorbereiding... 3 2.1 WindigiPet

Nadere informatie

Eenvoudig een backup van je bestanden maken. G.v.Eijndhoven (7-11-2013) www.gerritentiny.nl

Eenvoudig een backup van je bestanden maken. G.v.Eijndhoven (7-11-2013) www.gerritentiny.nl Eenvoudig een backup van je bestanden maken. G.v.Eijndhoven (7-11-2013) www.gerritentiny.nl Voorwoord... 2 Allway Sync... 2 FreeFileSync... 2 Uitleg Allway Sync.... 3 Wat heb je nodig?... 3 De extra harde

Nadere informatie

S88XPressNetLI v1.0. Installatie- en gebruikershandleiding en naslagwerk KDesign Electronics, PCB ontwerp door RoSoft

S88XPressNetLI v1.0. Installatie- en gebruikershandleiding en naslagwerk KDesign Electronics, PCB ontwerp door RoSoft S88XPressNetLI v1.0 Installatie- en gebruikershandleiding en naslagwerk. 2008 KDesign Electronics, PCB ontwerp door RoSoft 3.3 De S88XpressNetLI verbinden met de ROCO versterker Aangezien de S88XpressNetLI

Nadere informatie

Montagevoorschriften

Montagevoorschriften Montagevoorschriften BCU Mont_BCU1_NL.Doc 1/9 Inhoudsopgave 1. Montage van de onderdelen... 3 2. Aansluitingen van de 8 polige stekker... 3 3. Aansluitingen van de 10 polige stekker... 4 4. Opstarten...

Nadere informatie

RegClean Voor Windows 95, 98 en ME. Niet voor Windows XP of Windows 2000.

RegClean Voor Windows 95, 98 en ME. Niet voor Windows XP of Windows 2000. Gebruiksaanwijzing RegClean Voor Windows 95, 98 en ME. Niet voor Windows XP of Windows 2000. Deze handleiding is gemaakt door www.digiklus.com RegClean is een product van Microsoft. Alle merknamen zijn

Nadere informatie

H A N D L E I D I N G D A Z A T O O L S - O N T V A N G E R

H A N D L E I D I N G D A Z A T O O L S - O N T V A N G E R H A N D L E I D I N G D A Z A T O O L S - O N T V A N G E R 2 0 1 6 0 8 2 4 INHOUDSOPGAVE 1. Software in 3 stappen geïnstalleerd...1 Stap 1: Downloaden van de software...1 Stap 2: Starten met de installatie...2

Nadere informatie

Handleiding Icespy MR software

Handleiding Icespy MR software Handleiding Icespy MR software Versie 4.40.04 Wij danken u voor de aanschaf van deze IceSpy producten en adviseren u om deze handleiding goed door te nemen. 2 INHOUDSOPGAVE: 1. Installeren van de software...

Nadere informatie

Handleiding installeren en wijzigen emailhandtekening

Handleiding installeren en wijzigen emailhandtekening Handleiding installeren en wijzigen emailhandtekening Inleiding Met behulp van een script kun je automatisch een handtekening plaatsen onder al je emailberichten. Je bericht komt er dan zo uit te zien:

Nadere informatie

Snel aan de slag met de Mini Squirrel datalogger

Snel aan de slag met de Mini Squirrel datalogger Snel aan de slag met de Mini Squirrel datalogger Datalogger type: MS47 MS47 Mini Squirrel datalogger is een datalogger voor het controleren van het binnenklimaat op de volgende parameters: Relatieve vochtigheid,

Nadere informatie

Installatie Steam. 2 Open Internet Explorer. 3 Typ de volgende link in de navigatiebar : https://naamvancallcenter.steam.eu.com/tmsteam.

Installatie Steam. 2 Open Internet Explorer. 3 Typ de volgende link in de navigatiebar : https://naamvancallcenter.steam.eu.com/tmsteam. Installatie Steam. 1 Sluit uw headset aan op de computer. Deze headset mag van elke kwaliteit zijn; vanzelfsprekend zal het geluid beter zijn naarmate de headset beter is. De enige vereiste is dat de aansluiting

Nadere informatie

RTC Pick & Place Beckhoff TwinCAT. Voorbereiding

RTC Pick & Place Beckhoff TwinCAT. Voorbereiding Voorbereiding Beckhoff Automation bvba Belgium Rudi Grouset v2.1-13/09/2013 Voorbereiding voor het volgen van de Beckhoff training Om de opleidingsdagen bij Beckhoff succesvol te laten doorgaan vragen

Nadere informatie

Standaard Asta Powerproject Client Versie 12 Installatiedocument v1

Standaard Asta Powerproject Client Versie 12 Installatiedocument v1 Standaard Asta Powerproject Client Versie 12 Installatiedocument v1 4 september 2012 Voor vragen of problemen kunt u contact opnemen via telefoonnummer 030-2729976. Of e-mail naar [email protected].

Nadere informatie

Inhoudsopgave PC Software installeren... 2 BlackBerry back-up maken of terugplaatsen... 7 BlackBerry resetten... 9 BlackBerry Activeren...

Inhoudsopgave PC Software installeren... 2 BlackBerry back-up maken of terugplaatsen... 7 BlackBerry resetten... 9 BlackBerry Activeren... Wanneer bepaalde applicaties niet meer naar behoren functioneren of wanneer je BlackBerry erg traag is, dan kun je het toestel terugzetten naar de fabrieksinstellingen. De telefoon wordt daardoor teruggezet

Nadere informatie

Nieuw toegevoegd: Uitleg driver (her) installeren nadat Windows 8 en Windows 8.1 automatisch de driver heeft geüpdatet.

Nieuw toegevoegd: Uitleg driver (her) installeren nadat Windows 8 en Windows 8.1 automatisch de driver heeft geüpdatet. Bij voorkeur de Sweex CD005 gebruiken bij de communicatie tussen Autokon voor Windows en Uw elektronische systeem. Hier komen bijna geen problemen mee voor als U de handleiding goed opvolgt. Nieuw toegevoegd:

Nadere informatie

Installatie- en gebruikershandleiding Arseus barcode scanner

Installatie- en gebruikershandleiding Arseus barcode scanner Installatie- en gebruikershandleiding Arseus barcode scanner Documentversie: 1 Installatiehandleiding Vóór ingebruikname 1. Controleer of u installatierechten heeft op uw Windows-computer. Macintosh wordt

Nadere informatie

PROS1E1 Handleiding ( ) Kf/Dd/Bd

PROS1E1 Handleiding ( ) Kf/Dd/Bd 1 Inleiding De eerste oefening In deze eerste oefening wordt het voorbeeld 2-1 van bladzijde 11 uit het boek De taal C van PSD tot C-programma (enigszins aangepast) ingevoerd in de computer. Tevens wordt

Nadere informatie

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? 1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.

Nadere informatie

6. Tekst verwijderen en verplaatsen

6. Tekst verwijderen en verplaatsen 6. Tekst verwijderen en verplaatsen In deze module leert u: een stuk tekst selecteren een stuk tekst verwijderen; acties ongedaan maken en opnieuw doen; een stuk tekst vervangen; een stuk tekst verplaatsen;

Nadere informatie

HANDLEIDING INFOBOARD SOFTWARE

HANDLEIDING INFOBOARD SOFTWARE HANDLEIDING INFOBOARD SOFTWARE Versie 2.14 / oktober 2006 INHOUDSOPGAVE 1. INLEIDING... pag. 3 2. SYSTEEM VEREISTEN... pag. 3 3. INSTALLEREN VAN DE SOFTWARE... pag. 4 4. OPSTARTEN VAN DE SOFTWARE... pag.

Nadere informatie

Informatie gebruik Digi Bord

Informatie gebruik Digi Bord Informatie gebruik Digi Bord Aan de slag Schakel de pc en de beamer aan en het bord is te gebruiken. Het bord hoeft u niet apart aan te zetten. De pen is nu alleen te gebruiken als muis. Beamer De beamer

Nadere informatie

GETEST EN WERKEND BEVONDEN VOOR ALLE NIEUWE EURO BILJETTEN!

GETEST EN WERKEND BEVONDEN VOOR ALLE NIEUWE EURO BILJETTEN! Wanneer een nieuw bankbiljet wordt uitgegeven, is het noodzakelijk dat u een update van de AT100 uitvoert. Gelieve de volgende instructies stap voor stap te volgen. GETEST EN WERKEND BEVONDEN VOOR ALLE

Nadere informatie

Uitleg van de Systeeminstellingen in Ubuntu.

Uitleg van de Systeeminstellingen in Ubuntu. Uitleg van de Systeeminstellingen in Ubuntu. In Windows kun u in het configuratiescherm de computer aanpassen naar uw wensen. In Ubuntu heet dit Systeeminstellingen. Ik zal in deze handleiding de meest

Nadere informatie

Gebruik van een draadloze barcodescanner

Gebruik van een draadloze barcodescanner INHOUDSOPGAVE 1. INLEIDING 5 2. SLUIT DE BARCODESCANNER AAN OP EEN WERKSTATION 5 3. INSTALLEER DE SCANNERSOFTWARE 6 4. ZOEK DE COM-POORT OP WAARMEE HET WERKSTATION MET DE CRADLE IS VERBONDEN 6 5. LEG DE

Nadere informatie

Tweede workshop Arduino

Tweede workshop Arduino Tweede workshop Arduino In deze workshop zal veel gewerkt worden met voorbeelden die meegeleverd worden met de Arduino IDE. Deze zijn te vinden onder het menu File >Examples. Oefening 1 - Seriële communicatie

Nadere informatie

Voor alle versies: firmware 4.0e, firmware 4.1e, firmware 4.2e, Firmware 4.3e

Voor alle versies: firmware 4.0e, firmware 4.1e, firmware 4.2e, Firmware 4.3e Voor alle versies: firmware 4.0e, firmware 4.1e, firmware 4.2e, Firmware 4.3e Je kan een Wii via twee verschillende manieren ombouwen. Hardmod: Je kan een chip in je Wii monteren. Een hele klus met de

Nadere informatie

Rabo CORPORATE CONNECT. Certificaatvernieuwing

Rabo CORPORATE CONNECT. Certificaatvernieuwing Rabo CORPORATE CONNECT Certificaatvernieuwing Inhoud 1 INLEIDING... 3 2 SYSTEEMVEREISTEN... 4 3 CERTIFICAAT VERNIEUWEN... 6 4 TROUBLESHOOTING... 8 5 ONDERSTEUNING EN SERVICE... 9 BIJLAGE 1 INSTALLATIE

Nadere informatie

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho.

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho. Automatisering voor Financiële Dienstverleners Werken met Queries en Merge Documenten For more information visit our website at www.pyrrho.com Date: Document Nr: 30 maart, 2007 UBizzMerge, Versie 4.0 Status:

Nadere informatie

1 van 8 22-2-2012 20:43

1 van 8 22-2-2012 20:43 1 van 8 22-2-2012 20:43 Garmin Basecamp is een gratis software programma van Garmin. Het vergelijkbaar met mapsource, echter met de nieuwe toestellen (oregon, dakota en gpsmap 62) heeft het een aantal

Nadere informatie

SMP53-210 INGENIA X1 5.3 SMARTPHONE FIRMWARE UPGRADE INSTRUCTIES

SMP53-210 INGENIA X1 5.3 SMARTPHONE FIRMWARE UPGRADE INSTRUCTIES SMP53-210 INGENIA X1 5.3 SMARTPHONE FIRMWARE UPGRADE INSTRUCTIES Page 1 of 11 VOORDAT U BEGINT: BACKUP BELANGRIJKE GEGEVENS! Bij het upgraden van uw Yarvik smartphone naar Android 4.0.4 zullen alle gebruikersinstellingen,

Nadere informatie

In deze mannual zal ik het voorbeeld van de Led cube gebruiken maar de principes zijn op alles toepasbaar.

In deze mannual zal ik het voorbeeld van de Led cube gebruiken maar de principes zijn op alles toepasbaar. Parallelle poort interface met Visual basic Waarom dit naslagwerk: Ik was zelf een beginner op dit vlak en heb dagen lopen zoeken naar correcte en up to date info inzake de aansturing van pc naar elektronica

Nadere informatie

Handleiding bij de Booktest Generator

Handleiding bij de Booktest Generator Handleiding bij de Booktest Generator Het programma voor het maken van toetsen bij boeken. (c) 2005/2009 Visiria Uitgeversmaatschappij Twisk Inleiding Onze dank voor het aanvragen van de Booktest Generator.

Nadere informatie

Workshop IOT. Handleiding V5 Vincent Verheggen 6 november Taal: Nederlands.

Workshop IOT. Handleiding V5 Vincent Verheggen 6 november Taal: Nederlands. Workshop IOT Handleiding V5 Vincent Verheggen 6 november 2017 Taal: Nederlands Meer informatie: Contact: www.vincentverheggen.nl/workshop [email protected] Woord vooraf Voor je ligt de handleiding

Nadere informatie

Toegang tot uw e-mailberichten via internet

Toegang tot uw e-mailberichten via internet Basishandleiding Multrix Outlook Web App 2010 Versie: 24 februari 2011 Toegang tot uw e-mailberichten via internet Handleiding Multrix Outlook Web Access 2010 Voorblad Inhoudsopgave 1 Inloggen...3 2 Veelgebruikte

Nadere informatie

Zelf een Afsluitknop maken in Windows 10 ( of 7 of 8.x )

Zelf een Afsluitknop maken in Windows 10 ( of 7 of 8.x ) Windows 10 W017 Zelf een Afsluitknop maken in Windows 10 ( of 7 of 8.x ) ( De snelste manier om een computer netjes af te sluiten via de software! ) In dit document wordt uitgelegd hoe U zelf eenvoudig

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

1103/2 Sinthesi lezermodule Proximity

1103/2 Sinthesi lezermodule Proximity 1103/2 Sinthesi lezermodule Proximity Installatiehandleiding Versie 1.2 - januari 2007 Aan deze uitgave kunnen geen rechten worden ontleend. Wijzigingen voorbehouden. Inhoudsopgave 1. Inleiding 3 2. Technische

Nadere informatie

(2) Handleiding Computer Configuratie voor USB ADSL modem

(2) Handleiding Computer Configuratie voor USB ADSL modem (2) Handleiding Computer Configuratie voor USB ADSL modem Raadpleeg eerst de Quick-Start Guide voor het installeren van uw DSL-aansluiting voordat u deze handleiding leest. Versie 30-08-02 Handleiding

Nadere informatie

Werking van de Office Connector, en het oplossen van fouten.

Werking van de Office Connector, en het oplossen van fouten. Werking van de Office Connector, en het oplossen van fouten. De Office Connector zorgt ervoor dat de Microsoft Officeomgeving gebruikt kan worden als ontwerp en genereeromgeving voor documenten waarbij

Nadere informatie

Besturing van de Miniatuurwereld TM-H. Gebruik van de Bootloader

Besturing van de Miniatuurwereld TM-H. Gebruik van de Bootloader Besturing van de Miniatuurwereld TM-H Gebruik van de Bootloader Auteur: Leon J.A. van Perlo Versie: 0.9 Datum: 6 januari 2013 Release beheer Deze handleiding is van toepassing op Print o TM51 Rev 00 o

Nadere informatie

Deel 1 Stap 1: Klik op de downloadlink om uw persoonlijke versie van de software te downloaden.

Deel 1 Stap 1: Klik op de downloadlink om uw persoonlijke versie van de software te downloaden. GfK Internet Monitor installatie en inschakelen op Windows XP, Vista, 7 & 8 Voor deelname aan de GfK Internet Monitor is het volgende nodig: - Computer: Desktop (PC) of laptop - Besturingssysteem: Windows

Nadere informatie

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen;

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen; 15. Tabellen Misschien heeft u al eens geprobeerd om gegevens in een aantal kolommen te plaatsen door gebruik te maken van spaties, kolommen of tabs. Dat verloopt goed totdat u gegevens wilt wijzigen of

Nadere informatie

Besturing van de Miniatuurwereld UCCI. Gebruik van de Bootloader

Besturing van de Miniatuurwereld UCCI. Gebruik van de Bootloader Besturing van de Miniatuurwereld UCCI Gebruik van de Bootloader Auteur: Leon J.A. van Perlo Versie: 1.01 Datum: 6 januari 2013 Release beheer Deze handleiding is van toepassing op Print o UCCI / UCCI-s

Nadere informatie

Installeren driver M-1023Q voor firmware update.

Installeren driver M-1023Q voor firmware update. Installeren driver M-1023Q voor firmware update. 1. Zet vóór de firmware update de USB Foutopsporing mode in de Tablet aan. 2. Pak het update zip pakket uit in een aparte map en ga vanuit die map werken.

Nadere informatie

Schakel in Windows 10 automatische driver update uit : Uitleg driver (her) installeren nadat Windows 10 automatisch de driver heeft geüpdatet.

Schakel in Windows 10 automatische driver update uit : Uitleg driver (her) installeren nadat Windows 10 automatisch de driver heeft geüpdatet. Bij voorkeur de Sweex CD005 gebruiken bij de communicatie tussen Autokon voor Windows en Uw elektronische systeem. Hier komen bijna geen problemen mee voor als U de handleiding goed opvolgt. Schakel in

Nadere informatie

Installatie van Linux Mint 13

Installatie van Linux Mint 13 Installatie van Linux Mint 13 De installatie van Linux Mint 13 is zeer eenvoudig. Download de Mint 13 DVD ISO image van http://www.linuxmint.com/download.php en brand deze op een dvd en start uw computer

Nadere informatie

Arduino CURSUS. door Willy - 09-juni-2017

Arduino CURSUS. door Willy - 09-juni-2017 Arduino CURSUS door Willy - [email protected], 09-juni-2017 OVERZICHT (1) OVERZICHT (2) Historiek Microcontroller (1) Microcontroller (2) Specificaties - Arduino UNO bord Specificaties - ATmega328P chip LET

Nadere informatie

Snel op weg met de PepperPlayer.

Snel op weg met de PepperPlayer. Snel op weg met de PepperPlayer. Dit is een korte leidraad voor de installatie van de PepperPlayer. Hierin wordt zo simpel mogelijk beschreven hoe u de PepperPlayer kunt instaleren. Kijk voor uitgebreide

Nadere informatie

Oefening 1 - Seriële communicatie via USB

Oefening 1 - Seriële communicatie via USB Werkbladen voor Arduino workshop 2 In deze workshop zal gewerkt worden met de voorbeelden die meegeleverd worden met de Arduino IDE. Deze zijn te vinden onder het menu Bestand->Voorbeelden. Oefening 1

Nadere informatie

HET BESTURINGSSYSTEEM

HET BESTURINGSSYSTEEM HET BESTURINGSSYSTEEM Een besturingssysteem (ook wel: bedrijfssysteem, in het Engels operating system of afgekort OS) is een programma (meestal een geheel van samenwerkende programma's) dat na het opstarten

Nadere informatie

Bronboek ISBN conversie naar EAN

Bronboek ISBN conversie naar EAN Bronboek ISBN conversie naar EAN Onderstaande procedure beschrijft hoe u in een aantal stappen uw artikelgegevens in Bronboek kunt converteren van ISBN naar EAN (ISBN13). Het is belangrijk dat u deze stappen

Nadere informatie

Handleiding snelbestellen via barcodescanner

Handleiding snelbestellen via barcodescanner Online uw bestelling plaatsen met de Opticon OPN 2001 1 INHOUD Hoofdstuk Pagina Installatie 3 Installatie 2 6 De scanner 8 Het programma 9 Afronden op de website 14 Tip: meerdere scanners in één keer uitlezen

Nadere informatie

www.gpscenter.be Installeren van een software update in je Garmin GPS

www.gpscenter.be Installeren van een software update in je Garmin GPS www.gpscenter.be Installeren van een software update in je Garmin GPS Indien nodig stelt garmin een nieuwe software versie ter beschikking voor je GPS. Deze verbeterde versie bevat doorgaands een aantal

Nadere informatie

Installatiehandleiding bij overzetten op nieuwe computer

Installatiehandleiding bij overzetten op nieuwe computer Installatiehandleiding bij overzetten op nieuwe computer Dit stappenplan kunt u gebruiken als u een nieuwe computer heeft aangeschaft om een oude computer te vervangen. Er is een ander document voor de

Nadere informatie

Palmtop - Aqua-Max Servicehandleiding

Palmtop - Aqua-Max Servicehandleiding Palmtop - Aqua-Max Servicehandleiding Inleiding Deze handleiding geeft een beschrijving van de Aqua-Max Palmtop en de Terminal software die nodig is om software op de Aqua-Max en de Palmtop te installeren.

Nadere informatie

Elektor Uno R4 Installatie & Test

Elektor Uno R4 Installatie & Test Elektor Uno R4 Installatie & Test Vereisten Elektor Uno R4 Kabel USB-A naar micro-b Computer met Windows (XP of later), Linux of OSX (10.7 of later) Arduino IDE 1.6.7 of recenter (niet 1.6.8) We raden

Nadere informatie

TI-SMARTVIEW. Installeren op Windows PC

TI-SMARTVIEW. Installeren op Windows PC TI SmartView 1 TI-SMARTVIEW Installeren op Windows PC De licentie van de school voor TI-SmartView is tot nader bericht een single-user licentie, hetgeen betekent dat deze op één pc mag geïnstalleerd worden,

Nadere informatie

Van oude naar nieuwe PC 1

Van oude naar nieuwe PC 1 Van oude naar nieuwe PC Dick Grooters Raadhuisstraat 296 5683 GM Best tel: 0499-392579 e-mail: [email protected] Van oude naar nieuwe PC 1 Wat gaan we meenemen naar de nieuwe PC?...1 Voorbereidingen...2

Nadere informatie