Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State.

Slides:



Advertisements
Verwante presentaties
Doublet deel 1 – de basis.
Advertisements

Programmeren van een humanoid robot
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.

Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Inleiding computersystemen en netwerken deel 3 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Inleiding computersystemen en netwerken deel 3 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6.1.
Ronde (Sport & Spel) Quiz Night !
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Backtracking: –Permutaties –Koninginnen.
Basisgeheugenschakelingen
Datastructuren Analyse van Algoritmen en O
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
WISKUNDIGE FORMULES.


1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
Probeer te begrijpen wat de Midzomernacht zon betekent
GESPRG Les 8 Gestructureerd programmeren in C. 101 Array Meerdere variabelen van hetzelfde type kun je samennemen in één array variabele. Stel in een.
GESPRG Les 12 Gestructureerd programmeren in C. 152 Huiswerk Uitwerking void reverse(int a[], int n) { int first = 0, last = n - 1; while (first < last)
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Werken aan Intergenerationele Samenwerking en Expertise.
CLICK THE END EINDE THE END May peace be with you EINDE Moge de vrede met jou zijn Next time I’ll present you the alphabet Volgende keer bied ik je het.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen Herhaling instructieset en.
Computerarchitectuur
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  D3EEMS1  programmed I/O: de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : LEDs en displays.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : LEDs en displays.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  basis files: ram-rom.zip.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Security Technology PICT les 1
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen seriele interface (UART -
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 5 - onderwerpen Errata.
A H M F K EB C x 85 Korte zijde bij C 2 e secties volte 14 m en op afstand komen ( 0,5 rijbaan)
ZijActief Koningslust 10 jaar Truusje Trap
1 Syntax JavaLogo. 2 Hoofdstuk 1 Tekenen in Java.
Voorrangsregels bij rekenen (1)
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen Code paging Switch bounce.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
De financiële functie: Integrale bedrijfsanalyse©
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
Strijd tegen de zonde?.
ZijActief Koningslust
4 Sport en verkeer Eigenschappen van een kracht Een kracht heeft:
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  een MIDI track interpreteren, laten zien en afspelen.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Finite State Machine (Eindige.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag User-defined characters op de.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
Transcript van de presentatie:

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State Machine (Eindige Toestands Machine)

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2 Lijst operaties 1.Voeg toe achteraan (enqueue) 2.Haal weg vooraan (dequeue, pop) 3.Voeg toe vooraan (push) 4.Haal weg achteraan (?) 5.Voeg toe in ‘t midden 6.Haal weg in ‘t midden

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 Singly linked, double linked

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 Ending, circular

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 Insert, delete (singly linked)

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 Insert, delete (double linked)

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 Sentinels Sentinel ( ~ wachter ): dummy queue element dat er altijd is. 1 bij circulaire lijsten, 2 bij ‘eindigende’ lijsten. Voordeel: geen apart geval meer in de code voor begin of einde van de lijst. Nadeel: extra geheugen nodig voor de sentinel. Sentinel == zelfde type als lijst elementen, dus als een lijstelement ‘groot’ is kan dit kostbaar zijn.

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 lijsten LinkVormSentinels EnkelEindigNeeEenvoudig concept EnkelEindigJaCode voor lege lijst en laatste element eenvoudiger EnkelCirculairNeeGeen aparte ‘first’ en ‘last’ pointers nodig EnkelCirculairja DubbelEindigNeeDelete kan met alleen pointer naar het element DubbelEindigJa DubbelCirculairNee DubbelCirculairjaIngewikkeld concept, maar de eenvoudigste code, zonder if’s

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 9 Finite State Machine (= Eindige Toestands Machine) states (toestanden) events (gebeurtenissen, boodschappen, triggers) actions (wat je programma doet) Diverse notaties in gebruik, schrik niet als je een iets andere notatie tegenkomt.

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10 FSM voorbeeld : knipper LED op 1/2 Hz States : –LED is aan –LED is uit Events : –1 seconde timer tick Actions : –LED aanzetten –LED uitzetten

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 11 knipper LED op 1/2 Hz : FSM diagram LED is uitLED is aan init LED uitzetten 1s timer tick LED aanzetten 1s timer tick LED uitzetten

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 12 knipper LED op 1/2 Hz : State-Transistion diagram Event State 1s timer tick LED is uitLED aanzetten LED is aan LED uitzetten LED is uit

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 13 FSM voorbeeld : knipper LED op 1/2 Hz // states #define knipper_state_init 0 #define knipper_state_uit 1 #define knipper_state_aan 2 // events #define knipper_event_tick 100 // current state int knipper_state = knipper_state_init; // acties void Zet_LED( int led, int x ){... } void fsm_knipper( int & state, int led, int event ){ if( *state == knipper_state_init ){ Zet_LED( led, 0 ); *state = knipper_state_uit; } if( *state == knipper_state_uit ){ if( event == knipper_event_tick ){ Zet_LED( led, 1 ); *state = knipper_state_aan; return; } if( *state == knipper_state_aan ){ if( event == knipper_event_tick ){ Zet_LED( led, 0 ); *state = knipper_state_uit; return; }

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 14 FSM voorbeeld : Toegangspoort 1

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 15 FSM voorbeeld : Toegangspoort 2

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 16 FSM voorbeeld : Toegangspoort 3

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 17 FSM voorbeeld : Toegangspoort 3 Event State CoinPassResetReady LockedUnlock() Unlocked Alarm() ViolationLocked UnlockedThankyou() Unlocked Lock() LockedUnlocked Violation ResetAlarm() Violation Lock() ResetAlarm() Locked

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 18 // states #define poort_state_init 0 #define poort_state_locked 1 #define poort_state_unlocked 2 #define poort_state_violation 3 // events #define poort_event_coin 100 #define poort_event_pass 100 #define poort_event_reset 100 // current state int poort_state = poort_state_init; // actions void poort_thankyou( void ); void poort_lock( void ); void poort_unlock( void ); void poort_start_alarm( void ); void poort_stop_alarm( void ); void fms_poort( int event ){ if( state == poort_state_init ){ poort_lock(); state = poort_state_locked; } if( state == poort_state_locked ){ if( event == poort_event_coin ){ poort_unlock(); state = poort_state_unlocked(); } if( event == poort_event_pass ){ poort_alarm(); state = poort_state_violation(); } return; }... }

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 19 knipper LED op X Hz : State-Transistion diagram Event State 1ms timer tick LED is uit n++; if( n == 500/x ){ LED aanzetten n = 0; state = LED is aan } LED is aan n++; if( n == 500/x ){ LED uitzetten n = 0; state = LED is uit }

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 20 FSM voorbeeld : knipper LED op X Hz void fsm_knipper( int & state, int led, int X, int *n, int event ){ if( *state == knipper_state_init ){ Zet_LED( led, 0 ); *state = knipper_state_uit; *n == 0; return; } if( *state == knipper_state_uit ){ if( event == knipper_event_tick ){ *n++; if( *n == 500/x ){ Zet_LED( led, 1 ); *n = 0; *state = knipper_state_aan; } return; } if( *state == knipper_state_aan ){ if( event == knipper_event_tick ){ *n++; if( *n == 500/x ){ Zet_LED( led, 0 ); *n = 0; *state = knipper_state_uit; } return; }

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 21 FSM voorbeeld : knipper diverse LEDs while( 1 ){ wait_1ms(); fsm_knipper( &state1, l, 10, &n1, knipper_event_tick ); fsm_knipper( &state2, 2, 12, &n2, knipper_event_tick ); fsm_knipper( &state3, 3, 300, &n3, knipper_event_tick ); fsm_knipper( &state4, 4, 5, &n4, knipper_event_tick );... }

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 22 Rotary encoder (quadrature encoder) Sensor voor het bijhouden van de draaiing van een as. Toegepassingen: –user interface (afstemknop) –computermuis –motorsturing

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 23

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 24 Opdracht ”rotary encoder” Een rotary encoder FSM moet in de stand van een rotary encoder bijhouden. Bij een click naar rechts +1, bij een klick naar links -1. Er moet rekening gehouden worden met denderen en ‘halve bewegingen’ (= effect is hetzelfde als denderen).

vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 25 Opdracht ”rotary encoder” Stel de lijst van states (4), events (4) en acties (2), op voor een rotary encoder FSM -Maak het State Transition Diagram (er zijn ‘fysiek-logisch onmogelijke’ events, die hoef je niet te laten zien) -Vertaal je STD naar C code