Emne: IRE12011 / Programmering og mikrokontrollere Lærer: Åge T Johansen

Like dokumenter
Emne: IRE12011 / Programmering og mikrokontrollere Lærer: Åge T Johansen / Vedlegg 1: 20 flervalgspørsmål Vedlegg 2: MBED oversikt

Del 1 En oversikt over C-programmering

Høgskoleni østfold EKSAMEN. Oppgavesettet består av 8 sider inklusiv denne forsiden og vedlegg.

Kapittel 1 En oversikt over C-språket

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærere: Robert Roppestad. Hele oppgavesettet består av 8 oppgaver, samt 1 vedlegg.

består av 7 sider inklusiv denne forsiden og vedlegg. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Løsningsforslag til EKSAMEN

ARDUINO STUDIELABEN PROGRAMMERING DIGITALE/ANALOGE INNDATA/UTDATA LYSDIODER FRITZING. Roger Antonsen INF januar 2012

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Emne: IRE35115 / Kraftelektronikk og mikrokontrollere Lærer: Even Arntsen / Åge T Johansen / Antall vedleggsider: 19

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

EKSAMEN. Informasjon om eksamen. Emnekode og -navn: ITD13012 Datateknikk. Dato og tid: timer. Fagansvarlig: Robert Roppestad

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 IT Grunnkurs Høst 2015

Eksamensoppgaven: Hele oppgavesettet består av 8 oppgaver. Hver oppgave har en %-angivelse som angir hvor mye den teller ved sensurering.

Del 4 Noen spesielle C-elementer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Programmeringsspråket C

WORKSHOP BRUK AV SENSORTEKNOLOGI

INF 1000 høsten 2011 Uke september

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 4) Mer om forgreninger, While-løkker

INF1000 oppgaver til uke 38 (17 sep 23 sep)

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

INF1000 undervisningen INF 1000 høsten 2011 Uke september

UNIVERSITETET I OSLO

Litt mer om Arduino. Roger Antonsen Sten Solli INF januar 2011

UNIVERSITETET I OSLO

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

Programmering Høst 2017

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Rekker (eng: series, summations)

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

Oppsummering fra sist

Antall vedlegg O Tillatte hjelpemidler:

Høgskoleni østfold EKSAMEN. Emnekode: Emne: ITD13012 Datateknikk (deleksamen 1, høstsemesteret) Dato: Eksamenstid: kl til kl.

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

GJØVIK INGENIØRHØGSKOLE

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

DM6814/DM5814 User s Manual

Del 3: Evaluere uttrykk

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Løsningsforslag til slutteksamen i SESM3401 Styring av mekatroniske systemer

INF1000 : Forelesning 4

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Rekker (eng: series, summations)

super:bit-oppdraget Lærerveiledning Versjon 1, august 19.

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING

Grunnleggende datakunnskap og programmering. EKSAMENSDATO: 16. desember 1997

Løsningsforslag til 2. del av Del - EKSAMEN

Kanter, kanter, mange mangekanter

Bruk av interrupt og Timer i Arduino-program.

TDT4102 Prosedyreog objektorientert programmering Vår 2016

HONSEL process monitoring

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Del 2 Tabeller, arrays, strenger

TDT4110 IT Grunnkurs Høst 2016

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Blokker og metoder INF1000 (Uke 6) Metoder

MAT-INF 1100: Obligatorisk oppgave 1

K O N T I N U A S J O N S E K S A M E N

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

INF1000 : Forelesning 3

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

UNIVERSITETET I OSLO

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

MAT-INF 1100: Obligatorisk oppgave 1

IN 147 Program og maskinvare

Algoritmer og Datastrukturer

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

LabVIEW seriekommunikasjon med mikrokontroller

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Del 3. Pekere RR 2016

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

UNIVERSITETET I OSLO

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærer: Robert Roppestad. består av 5 sider inklusiv denne forsiden, samt 1 vedleggside.

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

BRUKERVEILEDNING FOR MC50.

Læringsmål og pensum. Oversikt

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

UNIVERSITETET I OSLO

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

Transkript:

Høgskolen i Østfold - Avdeling for Ingentørfag EKSAMENSOPPGAVE(Deleksamen 1) Emne: IRE12011 / Programmering og mikrokontrollere Lærer: Åge T Johansen Grupper: Alle i 1. årskurs Elektro Dato: 16.12.2015 Tid: 09.00 12.00 Antall oppgavesider: 5 (forsiden inkludert) Antall vedleggsider: 7 Vedlegg 1: 12 flervalgspørsmål (3 sider) Vedlegg 2: MBED oversikt (4 sider) Sensurfrist: 15.01.2015 Hjelpemidler: Lærebøker: "Mike McGrath: C Programming", "Mike McGrath: C++ Programming" PC med blant annet Code::Blocks finnes tilgjengelig på eksamensrommet. Kalkulator KANDIDATEN MÅ SELVKONTROLLEREAT OPPGAVESETTETER FULLSTENDIG Alle deloppgaver teller likt ved bedømming, bortsett fra i flervalgoppgaven, der 3 spørsmål teller som 1 deloppgave. PC uten nettilknytning kan benyttes som hjelp for å løse oppgavene. Alle besvarelser skal leveres på papir (utleverte eksamensark med gule og blå kopier). Ønsker du å levere programmer du har laget på utlevert minnepenn, kan du gjøre dette i en konvolutt der du påfører eksamensnummeret. Ved tvil/klage er det papirkopien som gjelder. Oppgave 1 Vedlegg 1 inneholder en flervalgoppgave med 12 spørsmål. Du skal kun velge ett svaralternativ på hvert spørsmål. Velg alternativet du mener passer best. Presenter svarene med samme referanser som i vedlegget, med nummer på spørsmålet og bokstav på svaralternativet. Ordne besvarelsen i en tabell som vist nedenfor. (NB! Svaralternativene som er skrevet inn, er kun eksempler.) Spørsmål Svar Spørsmål Svar S ørsmål Svar 1 C 5 9 2 A 6 10 3 E 7 11 4 8 12

Høgskolen i Østfold - Avdeling for Ingeniøtfag 2 Oppgave 2 Figuren nedenfor viser en MBED-modul med tilkoblinger. Modulen er også forbundet med en PCvia en USB-kabel, men dette er ikke vist i figuren. Alle deloppgaver i oppgave 2 er relatert til denne figuren. MBED LPC 1768 Vcc I Vout (3.3V) BryterBR1 p12 p28 p27 R4 R3 150-200 ohm Bryler 8R2p26 R2 Vec p13 p25 p24 R1 G4 p23 G3 10k -20.cern patensorneter p18 P22 p21 G2 GI LED1 IK)4 LE,D3 cf,134 111111 11111, ME, a) Hvilken diode / eventuelt hvilke dioder lyser etter at dette programmet er kjørt, og hvilken verdi skrives til en tilkoblet PC med Tera Term? Forklar kort hvordan programmet virker og navngi dioden(e) som lyser i henhold til figuren. mairixpp x #include "mbed.h" Serial pc(usbtx, USBRX); BusOnt led3(p21, p22, p23, p25, p26, p27, p28); int main() int n; for (n = 5; n < 17; n++) leds = n; pc.printf("d\n", return 0; n);

Høgskolen i Østfold - Avdeling for Ingeniørfag 3 b) Samme spørsmål som i deloppgave a), men med følgende program: main.cpp x "mbed.h" Serial pc(usbtx, USBRX); BusOut leds(p2i, p22, p23, p24, p25, p26, p27, p26); int main() for (int n = -31: n < ; n++) if (n > 127) { leds = n; pc.printf("%d\n", (n / 20) * 20 ; break; return Skriv et fullstendig program som skal utføre følgende oppgave: [=1 Diode R4 skal alltid lyse. Li Diodene G1 og LED1 skal begge blinke med en hastighet på 1/2Hz, men slik at G1 vil lyse i 1/2sekund og LED1 i 1 sekund per blink. Skriv et nytt program: C=1 Diodene G1, G2, G3, G4, R1, R2, R3, R4 skal lyse i sekvens slik at bare en diode lyser om gangen. (Løpelys.) Li Hver diode skal lyse 1 sekund om gangen hvis bryter 1 er trykket, hvis ikke skal diodene lyse 2 sekunder om gangen. Li Når sekvensen er ferdig, starter den på nytt igjen. Skriv et nytt program. Potensiometeret kan kobles mot en analog inngang og leses da av som en flyttallsverdi mellom 0.0 og 1.0. ti LED1 skal lyse når spenningen inn mindre enn 1V. IJ G1 skal lyse når spenningen er mellom 1 og 2V. Li R1 skal lyse når spenningen er størren enn 2V.

Høgskolen i Østfold - Avdeling for lngeniørfag 4 Oppgave 3 a) Funksjonen vist nedenfor er ment å beregne arealet av et trapes, der a og b er de parallelle sidene og h er avstanden mellom dem. Dessverre har det sneket seg inn noen syntaksfeil. Finn og beskriv feilene. Referer til linjenumrene. 43 float trapez(float a, float b, float h) 44 float area; 45 area = [a b] k h; 46 area = area : 2.0; 47 return area; 48 I den videre delen av denne oppgaven gjelder figuren nedenfor, som viser en trekant med sider og vinkler. Sammenhengen mellom sider og vinkler er gitt av følgende formel: e2,a 2+,2 2ab cos( y ) Det forutsettes at Tera Term, putty eller et lignende program kjører på en PCsom er koblet til MBED via USB-forbindelsen. b) Skriv et program med main() der brukeren blir bedt om å taste inn lengdene til alle 3 sidene i en trekant - a, b, og c. Programmet skal beregne vinkelen - y - mellom de 2 første sidene som er skrevet inn - dvs. a og b i figuren. Til slutt skal den beregnede vinkelen skrives ut. b For å beregne vinkelen, skal du i denne deloppgaven benytte en ferdigskrevet funksjon, vinkel. Funksjonen vinkel har en funksjonsprototype og en spesifikasjon som vist nedenfor: float vinkel(float aa, float bb, float cc); aa, bb, c: Kjente side:r Returve - Den berennede verk. 1,L,en til vrnkelen mellom sidene aa oq bb i radianer. NB! Du skal ikke utvikle funksjonen i denne deloppgaven, bare benytte den i programmet. c) Skriv koden for funksjonen vinkel som ble beskrevet i deloppgave b). Som en forenkling kan du anta at vinkelen ligger i 1. kvadrant. NB! Den matematiske standardfunksjonen - acos() - vil være aktuell å benytte i denne oppgaven. NB! Husk ingen innlesning fra tastatur eller utskrift til skjerm fra funksjonen. Nødvendige verdier for beregningene fås gjennom funksjonsargumentene.

Høgskolen i Østfold - Avdeling for Ingentørfag 5 Oppgave 4 Figuren til høyre viser en skisse (sett ovenfra) av et lite robot-kjøretøy med 2 motorer (MV og MH) med hvert sitt hjul og en MBED-modul til å styre bevegelsene. En fritt opplagret trinse foran gjør at kjøretøyet holder balansen. Motorens driverkretser er tilpasset de digitale utgangene til MBED og kalles henholdsvis mvp, mvq, mhp og mhq. Se figur for tilkoblinger. Se tabellen nedenfor for sammenhengen mellom bevegelse og motorpådrag. Det er i oppsettet ingen turtallsregulering av motorene (kun av/på). Venstre sensor Høyre sensor Framover sensv Trinse uten styring P19 MBED P20 P12 P11 P14 P13 _ Motorer sensh Venstre hjul Høyre hjul NB! Selv om de ikke er aktuelle i denne oppgaven, er det i figuren også vist to analoge optiske sensorer (sensvog sensh)som er plassert framme på hver side av kjøretøyet. Se bort fra disse her. Forutsett at roboten kan bevege seg framover med en hastighet på 10 cm per sekund, og at den vil kunne dreie med en vinkelhastighet på 10 grader per sekund. STOPP o 0 0 0 FRAMOVER 1 0 1 0 BAKOVER 0 1 0 1 DREIVENSTRE 0 1 1 0 I. DREIHØYRE 1 0 0 1 Skriv et komplett mbed-program med maino som får roboten til å bevege seg 3 meter rett fram for så å dreie 60 grader mot venstre og kjøre 1 meter i denne retningen før den stanser. (Det kan lønne seg å organisere motorstyringen som et BusOut-objekt.) Skriv en generell funksjon, robotkontroll, for å styre roboten i en gitt retning i en valgt tid. (Funksjonen er tiltenkt å kunne benyttes i deloppgave a) for å få en enklere løsning her.) Funksjonsprototypen til denne funksjonen er: void robotkontroll(int bevegelse, float tid); bevegelse :styrer bevegelsen etter følgende regler: 0 - stopp, 1 - framover, 2 - bakover, 3 drei venstre, 4 - drei høyre. Tallene representerer verdien til parameteren bevegelse. tid : bestemmer hvor lenge aktiviteten skal pågå (i antall sekunder).

Høgskolen i Østfold - Avdeling for Ingeniørfag 6 VEDLEGG 1 Spørsmål 1 Ved programmering i C++ står begrepet vektor (vector) for: 2 I et C/C++-program må man "si i fra" hvor data kan plasseres ved å benytte egendefinerte navn. En slik navngitt datalagringsplass kalles: 3 Overloading er et begrep som i C++ blant annet angir at: 4 I C++ benyttes try-catch konstruksjonen for å: Svaralternativer Alternativt navn på datatypen double Samme som array generelt Array av koordinater C++ utvidelse for å kunne gjøre geometriske beregninger Arrays som inneholder tekst C++ klasse for å danne arraylignende strukturer med utvidet funksjonalitet class adresse konstant funksjon struct Ingen av alternativene ovenfor en beregningen har ført til overflow CPU-en er overopphetet flere ulike funksjoner kan ha samme navn en gammel verdi i en variabel er skrevet over med en ny verdi en divisjon med 0 en regneoperasjon med inkompatible datastørrelser generere et tilfeldig tall med prøving og feiling fange opp runtime-feil i en blokk og behandle disse fange en nøyaktig frekvens fange høyeste verdi i en rekke av beregninger fange syntaksfeil ved kompilering lage grafiske dialogvinduer

Høgskolen i Østfold - Avdeling for Ingeniørfag 7 Spørsmål Svaralternativer 5 Hva skrives ut her? A xxx%6.4xxx B xxx6.4000xxx printf("xxx%6.4fxxx",6.4); xxx 6.4xxx xxx000006.4xxx E 6.4000 6 Følgende deklarasjon er gitt: A -216, +216 7 short int w; Hva er største og miste verdi variabelen w kan ha? (Anta at en short int har 16 bit.) I C++ er en klasse (class): 8 Hvilken verdi har variabelen x etter at A 0 denne programlinjen er utført? B 1 B -215,+215 0, 216 D -215,+(216-1) E -(215-1), +(215-1) en utvidelse av struct der også funksjoner kan legges inn som medlemmer B alternativ til arrays klassifisering av funksjoner som for eksempel int eller void en slags union der første data medlem overstyrer de andre E en måte å skille mellom løkker og tester C 2 int x = (1>0) * 3 + (1<0) ; D 3 E 4

Høgskolen i Østfold - Avdeling for Ingeniørfag 8 Spørsmål 9 En datatype som kan benyttes når en variabel skal kunne inneholde desimaler er: tall med 10 En datatype som kan benyttes når en variabel skal kunne inneholde et heltall med verdier i intervallet [-1000, +10001: 11 Hvilke er de 3 siste tallene som skives ut når programutsnittet nedenfor utføres: int p = 10000; ]while(p >,= 50) printf("%d ", p I 2); p--; Svaralternativer A long int B double C short int char E unsigned char F unsigned long int A int B unsigned long int C char unsigned char E Alle alternativene A- D A 48 49 50 B 26 25 25 C 25 24 25 25 25 25 E 27 24 24 12 Hva blir skrevet ut etter at disse tre setningene er utført i et C++ program? int a = 23; floatb = 3; std::cout<< 2 << " " << b1.25; A a/2 + b*1.25 B 12 + 4 C 11 + 3.75 11 + 3 E 11.5 + 3.75

Høgskolen i Østfold - Avdeling for Ingeniørfag 9 VEDLEGG2 Oversikt over ofte benyttede ressurser for mbed, som beskrevet i "http://mbed.org/handbook". (Den engelske teksten er uforandret, men formatet kan være redigert.) tx rx Serial tx Serial Serial rx rx DigitalOut A digital output, used for setting the state of a pin. Functions DigitalOut Create a DigitalOut connected to the specified pin write Set the output, specified as 0 or 1 (int) read Return the output setting, represented as 0 or 1 (int) operator= A shorthand for write operator int() A shorthand for read Interface The DigitalOut Interface can be used on mbed pins p5-p30, and also on-board LED1-LED4. The DigitalOut Interface can be used to set the state of the output pin, and also read back the current output state. Set the DigitalOut to zero to turn it off, or 1 to turn it on. Details The pin output is Ov and 3.3v (0 and 1), and can source or sink a maximum of 40mA. DigitalIn A digital input, used for reading the state of a pin. Functions Digitalln Create a Digitalln connected to the specified pin read Read the input, represented as 0 or 1 (int) mode Set the input pin mode operator int() An operator shorthand for read()

Høgskolen i Østfold - Avdeling for Ingeniørfag 10 Details The pin input is logic '0' for any voltage on the pin below 0.8v, and '1' for any voltage above 2.0v. By default, the Digitalln is setup with an internal pull-down resistor. BusOut The BusOut interface is used to create a number of DigitalOut pins that can be written as one value. Example. #include "mbed.h" BusOut myleds(led1, LED2, LED3, LED4) int main() { while(1) { for(int i=0; i <;16; i++) { myleds = i; wait(0.25); BusIn The BusIn interface is used to create a number of DigitalIn pins that can be read as one value. Any of the numbered mbed pins can be used as a DigitalIn in the BusIn. Example: #include "mbed.h" BusIn nibble(p5, p6, p18, p11); int main() { while(1) { switch(nibble) { case 0x3: printf("hello!\n"); break; // p5 and p6 are 1 case 0x8: printf("world!\n"); break; // pll is 1

Høgskolen i Østfold - Avdeling for Ingeniørfag 11 AnalogIn An analog input, used for reading the voltage on a pin. Functions AnalogIn Create an Analogln, connected to the specified pin read Read the input voltage, represented as a float in the range [0.0, 1.01 read u16 Read the input voltage, represented as an unsigned short in the range [0x0, OxFFFF] operator float An operator shorthand for read() Details The AnalogIn Interface can be used on mbed pins p15-p20. The 0.0v to 3.3v range of the AnalogIn is represented in software as a normalized floating point number from 0.0 to 1.0. AnalogOut An analog output, used for setting the voltage on a pin Functions AnalogOut Create an AnalogOut connected to the specified pin write Set the output voltage, specified as a percentage (float) write_u16 Set the output voltage, represented as an unsigned short in the range [0x0, OxFFFF] read Return the current output voltage setting, measured as a percentage (float) operator= An operator shorthand for write() operator float() An operator shorthand for read() Details The AnalogOut Interface can be used on mbed pin p18. The AnalogOut Interface can be used to set the voltage on the analog output pin somewhere in the range of 0.0v to 3.3v. The 0.0v to 3.3v range of the AnalogOut can be represented in software as a normalized floating point number from 0.0 to 1.0, or directly as volts or millivolts. wait Generic wait functions. Functions: void wait(float s); Waits for a number of seconds, with microsecond resolution (within the accuracy of single precision floating point). Variables s - number of seconds to wait

Hagskolen i Østfold - Avdeling for Ingeniørfag 12 Timer A general purpose timer Example: // Count the time to toggle a LED #include "mbed.h" Timer timer; DigitalOut led(led1); int begin, end; int main() { timer.start(); begin = timer.read_us(); led =!led; end = timer.read us(); printf("toggle the led takes %d us", end - begin); Functions: vold start0; //Start the timer void stop(); // Stop the timer void reset0; // Reset the timer to 0. If it was already counting, it will continue float read(); // Get the time passed in seconds int read_ms(); // Get the time passed in mili-seconds int read_us(); // Get the time passed in micro-seconds Ticker The Ticker interface is used to setup a recurring interrupt to repeatedly call a function at a specified rate. Any number of Ticker objects can be created, allowing multiple outstanding interrupts at the same time. The function can be a static function, or a member function of a particular object. A Ticker is used to call a function at a recurring interval Functions attach()attach a function to be called by the Ticker, specifying the interval in seconds Arguments: function-name, interval. attach_us() Attach a function to be called by the Ticker, specifying the interval in micro-seconds detach() Detach the function