Inhoud. 1 De Microcontroller 1. 2 De taal C Declaraties Functies In- en uitvoer Voorwaardelijke opdrachten 41

Vergelijkbare documenten
Inhoud. 1 De Microcontroller 1. 2 De taal C C in het kort Functies 31

Inhoud. 1 De Microcontroller 1. 2 De taal C C in het kort Functies 31

Microcontrollers. en de taal C. Wim Dolman. vierde druk

Arduino CURSUS. door Willy - 09-juni-2017

ES1 Project 1: Microcontrollers

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

, 80, 81, 107, 115, 125

Voorwoord Inleiding tot de microcontrollertechniek Toepassingsgebieden van microcontrollers 14

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/

Java. Basissyllabus. Egon Pas

De Arduino-microcontroller in de motorvoertuigentechniek (4)

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Javascript oefenblad 1

Wat is Arduino? Arduino = microprocessor (Atmel)

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/

Een korte samenvatting van enkele FORTRAN opdrachten

212 Generieke IO De generieke IO als ingang gebruiken

MICPRG 15 januari Toets: Theorie:

Projectwerk microcontrollers:

Inleiding microcontrollers. Week 1 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ }

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

Tentamen Programmeren in C (EE1400)

Arduino. HCC Vlaanderen - Mechelen 7 februari Luc De Cock

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

A Quick Start Guide: AVR programmeren

Debugging in embedded en native systemen met GDB

De Arduino-microcontroller in de motorvoertuigentechniek (3)

Arduino Zuid-Limburg Workshop 2

Vakgroep CW KAHO Sint-Lieven

Microcontrollers. Week 5 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Microcontrollers Week 5 Interrupts, Timer/Counter 0 Jesse op den Brouw INLMIC/

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Toets In2305-ii Embedded Programming Dinsdag 28 November 2006, 15:45-16:30

Microcontrollers. Bart Kardinaal E Verslag microcontrollers Rev 1.0 Status definitief.

ES1 Project 1: Microcontrollers

Programmeren in C++ (deel 1)

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2

Programmeren in Java les 3

Peripheral Interface Controllers. BRAC clubavond PE2WDO

Tentamen Programmeren in C (EE1400)

Zelftest Inleiding Programmeren

Digitale technieken Microprocessoren

Arduino. projecten voor gevorderden. Dr. Günter Spanner. Elektor International Media BV postbus ZG Susteren

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

SYNTRA-WEST. Initiatiecursus JAVA. Deel

15.8 De generieke IO als ingang gebruiken

EmSE presentatie. Starten met de ATtiny2313: Een RGB powerled driver Kees Moerman, 13 juli 2010

Hoofdstuk 19. Embedded systemen

Programma HCC!Forth komende zaterdag

De Arduino-microcontroller in de motorvoertuigentechniek (2)

Vogelaar Electronics DRAFT DelphiStamp VE08201

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3)

ES1 Project 1: Microcontrollers

Arduino Workshop 1 Zuid-Limburg

Lab Webdesign: Javascript 11 februari 2008

Inhoud Inhoud. Inleiding 1 Leerdoelen 1

Seriële bluetooth verbinding ATmega128

Inhoud. VBA Excel 2010

16F877A development board cursus deel 1

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Lab Webdesign: Javascript 3 maart 2008

Draadloos embedded meetsysteem via Bluetooth

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Wat is een busverbinding?

Interface Technieken. Roggemans M. 2012

18 Embedded systemen 1

Hoofdstuk 4. Digitale techniek

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Microcontrollers Labo

9 Meer over datatypen

CTCSS Encoder Super Flexibel Ontwerpen met een Arduino Nano

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

2 Algemene opbouw van een computersysteem

Instructies en blokken

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeren met Arduino-software

Lineaire data structuren. Doorlopen van een lijst

Tweede workshop Arduino

EM2 Microcontroller Project. LED cube

PIC Callgever Door PA1RUM

A.C. Gijssen. 0.3 PHP en MySQL

Pascal uitgediept Data structuren

VAN HET PROGRAMMEREN. Inleiding

Inductiemeter via de parallelle poort

Digitaal is een magisch woord

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

delay(1000); // Eén seconde pauze digitalwrite(pin, LOW); // zet 'pin' uit delay(1000); // Eén seconde pauze }

1 Inleiding Installatie 21. WAMP met Apache Friends 23. XAMPP starten en controleren 26. LAMP 32 De installatie ongedaan maken 33

Studentnummer:... Opleiding:...

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Microcontrollers based microcontroller ADuC832 from Analog Devices. 12/2011 Roggemans M. (MGM)

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

Een LCD controlepaneel voor je Linux server

Transcriptie:

Inhoud 1 De Microcontroller 1 1.1 Embedded Systemen............................ 1 1.2 De architectuur van de microprocessor en de microcontroller. 4 1.3 Geheugens en geheugenstructuur................... 6 1.4 Harvard-architectuur........................... 7 1.5 RISC en CISC................................ 8 1.6 De keuze voor een microcontroller.................. 9 2 De taal C 11 2.1 Hello World................................. 12 2.2 Het compilatietraject........................... 14 2.3 Compilers.................................. 15 3 Declaraties 19 4 Functies 25 4.1 Formele en actuele parameters..................... 28 4.2 De scope van functies en variabelen.................. 29 4.3 Call by reference.............................. 31 5 In- en uitvoer 33 5.1 Geformatteerde in- en uitvoer...................... 34 5.2 Ongeformatteerde in- en uitvoer.................... 36 5.3 Argumenten doorgeven aan een programma............ 37 6 Voorwaardelijke opdrachten 41 6.1 Het if-statement: de if-vorm....................... 42 6.2 De bloktoewijzing............................. 43 6.3 Het if-statement: de if-else vorm.................... 44 6.4 Het nesten van if-statements....................... 44 6.5 Het if-statement: de if-else-if vorm................... 46 6.6 Het switch-statement........................... 46 6.7 De conditionele operator......................... 51

vi 7 Herhalingsopdrachten 53 7.1 De for-lus................................... 53 7.2 De komma-operator............................ 56 7.3 De while-lus................................. 56 7.4 De do-while-lus of do-lus......................... 57 7.5 Het break-statement en het continue-statement.......... 58 8 Structuur en Opmaak 61 8.1 Commentaar................................. 62 8.2 Opmaak.................................... 63 8.3 Naamgeving................................. 65 9 Datatypen en Operatoren 67 9.1 Gehele getallen............................... 68 9.2 Typecasting bij gehele getallen..................... 68 9.3 Gebroken getallen............................. 71 9.4 Typecasting bij gebroken getallen................... 73 9.5 Constanten bij gebroken getallen................... 76 9.6 Hexadecimaal, octaal en binair..................... 76 9.7 Rekenkundige operatoren........................ 78 9.8 Boolean.................................... 80 9.9 De relationele bewerkingen....................... 80 9.10 Logische operatoren............................ 80 9.11 Bitbewerkingen............................... 81 9.12 Verkorte schrijfwijze bij toekenningen................ 82 9.13 Bewerkingsvolgorde operatoren.................... 83 10 De ATmega32 85 10.1 De opbouw van de ATmega32..................... 87 10.2 De geheugenorganisatie bij de ATmega32.............. 88 10.3 De systeemklok en klokopties..................... 90 10.4 Het programmeren van de ATmega32................ 91 10.5 De ontwikkelomgeving voor de ATmega32............. 92 11 Led Blink 95 11.1 De schakeling voor Led Blink...................... 96 11.2 De software voor Led Blink....................... 97 11.3 Led Blink met _delay_loop2....................... 100 11.4 Led Blink met _delay_ms......................... 102 11.5 Aansturing leds............................... 103 11.6 Een led-array of dotmatrix........................ 105 11.7 Cijfers afbeelden op een dotmatrix.................. 106 11.8 Cijfers afbeelden op een dotmatrix met interrupt en timer... 108 11.9 Cijfers afbeelden op een dotmatrix met de gegevens in flash.. 110 11.10 Een 4-digit 7-segmentdisplay aansturen................ 112 11.11 In- en uitlezen van informatie vanaf verschillende poorten... 114

vii 12 Interrupts 117 12.1 Het interruptmechanisme........................ 118 12.2 De schakeling voor de demonstratie van externe interrupt 0.. 118 12.3 De software voor de externe interrupt 0............... 119 12.4 De software voor interrupt 0 met bitnotatie............ 123 12.5 Bitbewerkingen voor set, clear, toggle en test............ 124 12.6 Contactdender............................... 126 12.7 Hardwarematige antidendermaatregelen............... 127 12.8 Softwarematige antidendermaatregelen................ 128 12.9 Het uitlezen van acht drukknoppen met polling.......... 130 12.10 Het uitlezen van acht knoppen met externe interrupt 2..... 132 13 Timers 135 13.1 Timer 0.................................... 136 13.2 De schakeling voor het testen van de timer/counter....... 138 13.3 Berekening parameters voor exacte tijdvertraging......... 139 13.4 Software voor testen timer 0....................... 140 13.5 Real time clock met timer 2....................... 141 13.6 Een antidenderalgoritme met timer 0................. 142 14 Arrays 145 14.1 De getallen van Fibonacci en de Gulden Snede........... 145 14.2 Berekenen getallen van Fibonacci en de Gulden Snede...... 147 14.3 Declaraties van arrays........................... 148 14.4 Toewijzingen bij arrays.......................... 149 14.5 Lezen buiten het bereik van een array................ 149 14.6 Schrijven buiten het bereik van een array.............. 150 14.7 Meerdimensionale arrays......................... 150 14.8 De declaratie van een multidimensionaal array........... 151 14.9 Toewijzingen bij een multidimensionaal array........... 151 14.10 De driehoek van Pascal.......................... 153 14.11 Berekening driehoek van Pascal en getallen van Fibonacci... 153 15 Pointers 157 15.1 Declaraties van pointers......................... 158 15.2 Toewijzingen met pointers........................ 158 15.3 Rekenen met pointers........................... 159 15.4 Fouten met pointers............................ 160 15.5 Getallen van Fibonacci en Gulden Snede met pointers...... 161 15.6 Toepassingen pointers........................... 164 15.7 Voorbeelden met pointers........................ 165 16 Strings 167 16.1 Declaratie van en toekenningen aan strings............. 168 16.2 Op veilige wijze strings gebruiken................... 170 16.3 Stringfuncties................................ 171 16.4 Array van strings.............................. 173

viii 17 Advanced C 175 17.1 Lezen en schrijven naar bestanden................... 175 17.2 Recursie.................................... 184 17.3 Datastructuren............................... 192 18 Analog-to-Digital Converter 197 18.1 Analoog-digitaalconversie........................ 198 18.2 De ADC van de ATmega32....................... 200 18.3 Toepassing single conversion mode zonder interrupt....... 207 18.4 Toepassing single conversion mode met interrupt......... 209 18.5 Toepassing automatic trigger mode met timer 0.......... 210 18.6 Toepassing met free running mode.................. 212 19 Liquid Crystal Display 213 19.1 Het karaktergeoriënteerde display op basis van HD44780.... 215 19.2 Toepassing LCD in 8-bit mode en met tijdvertraging....... 222 19.3 Toepassing met bewegende tekst.................... 224 19.4 Toepassing in de 4-bits mode en met de busy flag......... 226 19.5 Toepassing met de bibliotheek van Peter Fleury.......... 229 19.6 Geformatteerd afdrukken op een LCD................ 230 19.7 Het weergeven van gebroken getallen op een LCD........ 232 20 UART 235 20.1 Opbouw USART en instellen baud rate............... 237 20.2 Instelling protocol............................. 238 20.3 Ontvangen en verzenden van data................... 239 20.4 Het versturen van karakters via de UART.............. 240 20.5 Het ontvangen, converteren en versturen van karakters..... 242 20.6 Toepassing met gebruik van een interrupt.............. 243 20.7 Het gebruik van een circulaire buffer................. 245 20.8 Circulaire buffers bij de communicatie met een UART..... 247 20.9 De UART-bibliotheek van Peter Fleury............... 250 20.10 Het creëren van een stream voor printf en scanf.......... 251 21 EEPROM en seriële communicatie 255 21.1 EEPROM van de ATmega32...................... 256 21.2 SPI....................................... 260 21.3 I 2 C....................................... 266 22 Pulsbreedtemodulatie 277 22.1 De timers van de ATmega32....................... 279 22.2 De beschrijving van de modi van timers............... 280 22.3 Fast-PWM: een regeling voor intensiteit led............. 287 22.4 Phase-correct-PWM: een robotwagen met DC-motoren..... 291 22.5 Phase-and-frequentie-correct-PWM: aansturing servomotor.. 294 22.6 CTC-modus: het afspelen van muziek................ 296

ix 23 Nog meer ATmega32 305 23.1 Analoge comparator............................ 306 23.2 Input capture................................ 310 23.3 De slaapstanden............................... 314 23.4 De mogelijkheden om de ATmega32 te herstarten........ 319 23.5 Watchdog................................... 319 23.6 Brownoutdetectie.............................. 322 Bijlagen A RS232 323 B JTAG 329 C Digital-to-Analog Converter 333 C.1 Een 4-bits DAC op basis van gewogen sommatie.......... 333 C.2 Een 4-bits DAC op basis van een laddernetwerk.......... 334 C.3 Een n-bits DAC op basis van een laddernetwerk.......... 335 C.4 Uitleg laddernetwerk........................... 335 D CMOS 337 D.1 De MOS-transistor als schakelaar................... 337 D.2 De CMOS-inverter............................. 338 D.3 CMOS-logica................................ 339 D.4 De D-latch.................................. 340 D.5 De D-flipflop................................. 342 D.6 De tristatebuffer en de tristate-inverter................ 344 D.7 De transmissiepoort............................ 346 D.8 De pulluptransistor en de pulldowntransistor........... 348 D.9 De schmitttrigger.............................. 349 E RTTTL 351 E.1 Specificatie RTTTL............................ 351 E.2 Bibliotheekroutines voor het lezen van RTTTL.......... 353 E.3 Een pc-applicatie met RTTTL-bibliotheek............. 358 F Headerbestanden 361 G Timer instellingen PWM 369 G.1 De bits uit register TCCR0 van timer 0............... 369 G.2 De bits uit de registers TCCR1A en TCCR1B van timer 1... 370 G.3 De bits uit register TCCR2 van timer 2............... 372

x H Compilers voor AVR 373 H.1 C bij andere compilers voor AVR................... 373 H.2 Verouderde notatie bij GNU C-compiler.............. 376 I Make 377 I.1 De Makefile................................. 377 I.2 De Makefile bij AVRstudio....................... 379 J ASCII 383 Index 385