Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

Storlek: px
Starta visningen från sidan:

Download "Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)"

Transkript

1 Realtidsprogrammering En introduktion Implementering (med exempel från PIC)

2 Utan timing Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt mintid ( Best case). För garanterad mintid kan en funktion utgöras av en fördröjningsloop. Realtidsprog. implementering - Anders Arvidsson 2

3 Utan timing while(1){ PWM = knapptest(); PORTB = BinBCD(PWM); RA2 = PWM_styr(PWM); delay(); // Evig loop // Läs och behandla indata // Presentera // Agera // Eventuell fördröjningsloop Anm: Exekvering får ej stanna i någon funktion, se nästa sida. Realtidsprog. implementering - Anders Arvidsson 3

4 Kodstruktur Vilken kod fungerar i realtid? while(1) { while (knapp==0) // Väntar tills knapp är tryckt continue; while(1) { if (knapp ==1 && knappold ==0) // Detekterar att knappens Knapptryckt = 1; // tillstånd har gått från 0 till 1 Led ^=1; while (knapp==1) continue; // Väntar tills knapp är släppt Knappold = knapp; if (Knapptryckt == 1) { Led ^=1; Knapptryckt = 0; Realtidsprog. implementering - Anders Arvidsson 4

5 Med timing start Vid hård realtid får Worst case aldrig överstiga tiden från start av timer tills timern räknat ut. Periodtiden blir då konstant. Vid mjuk realtid kan timern startas med en kortare tid nästa varv om det förra varvet tog lite för lång tid. (Ladda om timern genom subtraktion istället för att ladda med en konstant). wait Realtidsprog. implementering - Anders Arvidsson 5

6 Med timing while(1){ start_timer(periodtid); PWM = knapptest(); PORTB = BinBCD(PWM); RA2 = PWM_styr(PWM); // Evig loop // Starta timern // Läs och behandla indata // Presentera // Agera idle(); // Vänta på att timern räknat ut // Parallellt med det kan en // bakgrundstask utföras Anm: Funktionerna får tillsammans inte ta längre tid än periodtid Realtidsprog. implementering - Anders Arvidsson 6

7 Tidmätning Timer 0 Timer 8 bitar, räknar ständigt upp Kan slöas ner av prescaler max 256 ggr => upp till cykler Använder intern klocka eller extern pinne Kan fungera som räknare Realtidsprog. implementering - Anders Arvidsson 7

8 Timer Se option_reg (skriv bara option, i C) för konfigurering. Realtidsprog. implementering - Anders Arvidsson 8

9 Timer Exempelkod void init_timer(void) { PSA = 0; // Koppla prescaler till TMR0 PS0 = 0; // Prescaler satt till PS1 = 1; // dela med 128 PS2 = 1; T0CS = 0; // Väljer intern oscillator till timer void start_timer(void) { TMR0 = timervalue; T0IF = 0; // Laddar om timer // (256-timervalue)*prescaler*1us + omladdningstid void wait_timer(void) { while(!t0if) continue; // Väntar på att timer räknar ut (CPU är idle ) Realtidsprog. implementering - Anders Arvidsson 9

10 Med timing, funktioner med lång exekv. tid start switch() Om en funktion tar för lång tid kan den ibland delas upp i två (eller fler) delar där ena delen körs ena varvet, andra delen nästa. Denna metod används när interrupt inte bör användas men någon funktion har behöver kortare periodtid än den långa funktionen kan möta. wait Realtidsprog. implementering - Anders Arvidsson 10

11 Exekveringstid Kompilatorns och kodens inverkan Tänk på att kompilatorn kan generera helt olika kod vid små förändringar i syntaxen. Studera den genererade assemblerkoden och bedöm om något tar onödigt mycket kod/exekveringstid. Testa då en omskrivning. I MPLAB syns den genererade koden under View Disassembly Listing. Realtidsprog. implementering - Anders Arvidsson 11

12 Exekveringstid Kompilatorns och kodens inverkan ui16duty = ui16duty + ui8ipartoffs - 128; Adress Hexkod Asm 0B BCF 0x3, 0x5 0B3 086B MOVF 0x6b, W 0B4 00FB MOVWF 0x7b 0B5 01FC CLRF 0x7c 0B MOVF 0x54, W 0B7 07FB ADDWF 0x7b, F 0B BTFSC 0x3, 0 0B9 0AFC INCF 0x7c, F 0BA 0855 MOVF 0x55, W 0BB 07FC ADDWF 0x7c, F 0BC 3080 MOVLW 0x80 0BD 077B ADDWF 0x7b, W 0BE 00D4 MOVWF 0x54 0BF 30FF MOVLW 0xff 0C BTFSC 0x3, 0 0C MOVLW 0 0C2 077C ADDWF 0x7c, W 0C3 00D5 MOVWF 0x55 ui16duty = ui16duty + ui8ipartoffs; 0B BCF 0x3, 0x5 0B3 086B MOVF 0x6b, W 0B4 07D4 ADDWF 0x54, F 0B BTFSC 0x3, 0 0B6 0AD5 INCF 0x55, F ui16duty = ui16duty - 128; 0B MOVLW 0x80 0B8 07D4 ADDWF 0x54, F 0B9 1C03 BTFSS 0x3, 0 0BA 03D5 DECF 0x55, F Koden genererar 9 rader asm Koden genererar 18 rader asm (= 18 Word) Realtidsprog. implementering - Anders Arvidsson 12

13 Exekveringstid Kompilatorns och kodens inverkan if ((ui8goalpwmin) > (ui8pwmin + 1)) 1DE 00FB MOVWF 0x7b 1DF 01FC CLRF 0x7c 1E MOVF 0x43, W 1E1 00FD MOVWF 0x7d 1E2 01FE CLRF 0x7e 1E MOVLW 0x1 1E4 07FD ADDWF 0x7d, F 1E BTFSC 0x3, 0 1E6 0AFE INCF 0x7e, F 1E7 087E MOVF 0x7e, W 1E8 3A80 XORLW 0x80 1E9 00FF MOVWF 0x7f 1EA 087C MOVF 0x7c, W 1EB 3A80 XORLW 0x80 1EC 027F SUBWF 0x7f, W 1ED 1D03 BTFSS 0x3, 0x2 1EE 29F1 GOTO 0x1f1 1EF 087B MOVF 0x7b, W 1F0 027D SUBWF 0x7d, W 1F1 1C03 BTFSS 0x3, 0 1F2 2A09 GOTO 0x209 if ((ui8goalpwmin) > (INT8U)(ui8PwmIn + 1)) 1DE 0A43 INCF 0x43, W 1DF 00FD MOVWF 0x7d 1E MOVF 0x44, W 1E1 027D SUBWF 0x7d, W 1E2 1C03 BTFSS 0x3, 0 1E3 29E8 GOTO 0x1e8 Koden genererar 6 rader asm INT8U är genom typedef satt till en unsigned char typedef unsigned char INT8U; (ui8pwmin + 1) betraktas nu inte längre av kompilatorn som en signed i jämförelsen. Koden genererar 21 rader asm Realtidsprog. implementering - Anders Arvidsson 13

14 Med timing, verifiera marginal (alternativ 1) start switch() Debug = 1; Använd en ledig pinne (Debug) för att verifiera exekveringstiden. Sätt t ex pinnen vid loopens början, nollställ i vänterutinen. Trigga på stigande flank och mät på oscilloskop med persist (ej radering av föregående svep). Kontrollera att det alltid finns marginal oavsett vad programmet gör. Debug = 0; wait Realtidsprog. implementering - Anders Arvidsson 14

15 Med timing, verifiera marginal (alternativ 2) start switch() I program med små marginaler kan det vara enklare att mäta tiden programmet vistas i vänterutinen. Kom ihåg att subtrahera minsta tiden vänterutinen själv tar vid beräkning av tidsmarginal. Debug = 1; Kontrollera också frekvensen på debugpinnen. Ändras denna tar exekveringen för lång tid. Ge felindikering (t ex tänd en LED) om timern redan räknat ut när programmet går in i wait. wait Debug = 0; Realtidsprog. implementering - Anders Arvidsson 15

16 Interrupt Avbrott = preemptive schemaläggning Realtidsprog. implementering - Anders Arvidsson 16

17 Med Avbrott ISR Större delen av programmet körs som en bakgrundstask. Avbrottsrutinen (ISR) kör med viss periodicitet (triggad av timern) och/eller vid vissa händelser. Övriga programmet kan köras med timing som i tidigare exempel, synkronisera med en flagga från ISR eller använd en andra timer. Realtidsprog. implementering - Anders Arvidsson 17

18 Avbrott Exempelkod void interrupt timer(void){ // timer = funktionens namn // interrupt = lägg funktionen på int_handling(); // adress 4 something_hard(); i main() while(1){ // Evig loop something_soft(); idle(); // Vänta på nästa interrupt // = Synk Realtidsprog. implementering - Anders Arvidsson 18

19 Interrupt Källor Flaggor IE = Interrupt Enable IF = Interrupt Flag Realtidsprog. implementering - Anders Arvidsson 19

20 Konfigurera Interrupt Exempelkod void interrupt timer(void) { Flag = 1; TMR0 = timervalue; T0IF = 0; // Visa att int skett // Sätt timervalue med #define void init(void) { PSA = 0; // Använd prescaler till TMR0 PS0 = 1; // Prescaler satt till dela med 64 PS1 = 0; PS2 = 1; T0CS = 0; // Väljer intern oscillator T0IE = 1; // Timer0 Interrupt Enable GIE = 1; // Global Interrupt Enable Realtidsprog. implementering - Anders Arvidsson 20

21 Implementera schemaläggning Robot från föreläsning om realtidsprinciper. Realtidsprog. implementering - Anders Arvidsson 21

22 Struktur Switch switch (CykCnt) { // Var 10:e ms case 0:{ // 0 ms K(); // Krocksensor S(); // Styr robot H(); // Hjulräknare break; case 1: case 5: { // 10, 50 ms K(); break; case 2: case 4: { // 20, 40 ms K(); S(); break; case 3: { // 30 ms K(); H(); break; default: { CykCnt=0; CykCnt=CykCnt++; If (CykCnt == 6) CykCnt=0; Realtidsprog. implementering - Anders Arvidsson 22

23 Utan timing Realtidsprogrammering Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt mintid ( Best case). För garanterad mintid kan en funktion utgöras av en fördröjningsloop. En introduktion Implementering (med exempel från PIC) Realtidsprog. implementering - Anders Arvidsson 2 Utan timing while(1){ // Evig loop Kodstruktur Vilken kod fungerar i realtid? PWM = knapptest(); // Läs och behandla indata while(1) { while(1) { PORTB = BinBCD(PWM); // Presentera while (knapp==0) // Väntar tills knapp är tryckt continue; if (knapp ==1 && knappold ==0) // Detekterar att knappens Knapptryckt = 1; // tillstånd har gått från 0 till 1 RA2 = PWM_styr(PWM); delay(); // Agera // Eventuell fördröjningsloop Led ^=1; while (knapp==1) // Väntar tills knapp är släppt continue; Knappold = knapp; if (Knapptryckt == 1) { Led ^=1; Knapptryckt = 0; Anm: Exekvering får ej stanna i någon funktion, se nästa sida. Realtidsprog. implementering - Anders Arvidsson 3 Realtidsprog. implementering - Anders Arvidsson 4 Med timing start wait Vid hård realtid får Worst case aldrig överstiga tiden från start av timer tills timern räknat ut. Periodtiden blir då konstant. Vid mjuk realtid kan timern startas med en kortare tid nästa varv om det förra varvet tog lite för lång tid. (Ladda om timern genom subtraktion istället för att ladda med en konstant). Med timing while(1){ start_timer(periodtid); PWM = knapptest(); PORTB = BinBCD(PWM); RA2 = PWM_styr(PWM); // Evig loop // Starta timern // Läs och behandla indata // Presentera // Agera idle(); // Vänta på att timern räknat ut // Parallellt med det kan en // bakgrundstask utföras Anm: Funktionerna får tillsammans inte ta längre tid än periodtid Realtidsprog. implementering - Anders Arvidsson 5 Realtidsprog. implementering - Anders Arvidsson 6 1

24 Tidmätning Timer 0 Timer Timer 8 bitar, räknar ständigt upp Kan slöas ner av prescaler max 256 ggr => upp till cykler Använder intern klocka eller extern pinne Kan fungera som räknare Se option_reg (skriv bara option, i C) för konfigurering. Realtidsprog. implementering - Anders Arvidsson 7 Realtidsprog. implementering - Anders Arvidsson 8 Timer Exempelkod Med timing, funktioner med lång exekv. tid void init_timer(void) { PSA = 0; // Koppla prescaler till TMR0 PS0 = 0; // Prescaler satt till PS1 = 1; // dela med 128 PS2 = 1; T0CS = 0; // Väljer intern oscillator till timer void start_timer(void) // Laddar om timer { TMR0 = timervalue; // (256-timervalue)*prescaler*1us + omladdningstid T0IF = 0; start switch() Om en funktion tar för lång tid kan den ibland delas upp i två (eller fler) delar där ena delen körs ena varvet, andra delen nästa. Denna metod används när interrupt inte bör användas men någon funktion har behöver kortare periodtid än den långa funktionen kan möta. void wait_timer(void) { while(!t0if) continue; // Väntar på att timer räknar ut (CPU är idle ) wait Realtidsprog. implementering - Anders Arvidsson 9 Realtidsprog. implementering - Anders Arvidsson 10 Exekveringstid Kompilatorns och kodens inverkan Tänk på att kompilatorn kan generera helt olika kod vid små förändringar i syntaxen. Studera den genererade assemblerkoden och bedöm om något tar onödigt mycket kod/exekveringstid. Testa då en omskrivning. I MPLAB syns den genererade koden under View Disassembly Listing. Exekveringstid Kompilatorns och kodens inverkan ui16duty = ui16duty + ui8ipartoffs - 128; Adress Hexkod Asm 0B BCF 0x3, 0x5 0B3 086B MOVF 0x6b, W 0B4 00FB MOVWF 0x7b 0B5 01FC CLRF 0x7c 0B MOVF 0x54, W 0B7 07FB ADDWF 0x7b, F 0B BTFSC 0x3, 0 0B9 0AFC INCF 0x7c, F 0BA 0855 MOVF 0x55, W 0BB 07FC ADDWF 0x7c, F 0BC 3080 MOVLW 0x80 0BD 077B ADDWF 0x7b, W 0BE 00D4 MOVWF 0x54 0BF 30FF MOVLW 0xff 0C BTFSC 0x3, 0 0C MOVLW 0 0C2 077C ADDWF 0x7c, W 0C3 00D5 MOVWF 0x55 Koden genererar 18 rader asm (= 18 Word) ui16duty = ui16duty + ui8ipartoffs; 0B BCF 0x3, 0x5 0B3 086B MOVF 0x6b, W 0B4 07D4 ADDWF 0x54, F 0B BTFSC 0x3, 0 0B6 0AD5 INCF 0x55, F ui16duty = ui16duty - 128; 0B MOVLW 0x80 0B8 07D4 ADDWF 0x54, F 0B9 1C03 BTFSS 0x3, 0 0BA 03D5 DECF 0x55, F Koden genererar 9 rader asm Realtidsprog. implementering - Anders Arvidsson 11 Realtidsprog. implementering - Anders Arvidsson 12 2

25 Exekveringstid Kompilatorns och kodens inverkan if ((ui8goalpwmin) > (ui8pwmin + 1)) 1DE 00FB MOVWF 0x7b 1DF 01FC CLRF 0x7c 1E MOVF 0x43, W 1E1 00FD MOVWF 0x7d 1E2 01FE CLRF 0x7e 1E MOVLW 0x1 1E4 07FD ADDWF 0x7d, F 1E BTFSC 0x3, 0 1E6 0AFE INCF 0x7e, F 1E7 087E MOVF 0x7e, W 1E8 3A80 XORLW 0x80 1E9 00FF MOVWF 0x7f 1EA 087C MOVF 0x7c, W 1EB 3A80 XORLW 0x80 1EC 027F SUBWF 0x7f, W 1ED 1D03 BTFSS 0x3, 0x2 1EE 29F1 GOTO 0x1f1 1EF 087B MOVF 0x7b, W 1F0 027D SUBWF 0x7d, W 1F1 1C03 BTFSS 0x3, 0 1F2 2A09 GOTO 0x209 Koden genererar 21 rader asm if ((ui8goalpwmin) > (INT8U)(ui8PwmIn + 1)) 1DE 0A43 INCF 0x43, W 1DF 00FD MOVWF 0x7d 1E MOVF 0x44, W 1E1 027D SUBWF 0x7d, W 1E2 1C03 BTFSS 0x3, 0 1E3 29E8 GOTO 0x1e8 Koden genererar 6 rader asm INT8U är genom typedef satt till en unsigned char typedef unsigned char INT8U; (ui8pwmin + 1) betraktas nu inte längre av kompilatorn som en signed i jämförelsen. Realtidsprog. implementering - Anders Arvidsson 13 Med timing, verifiera marginal (alternativ 1) Debug = 1; Använd en ledig pinne (Debug) för start att verifiera exekveringstiden. Sätt t ex pinnen vid loopens början, nollställ i vänterutinen. switch() Trigga på stigande flank och mät på oscilloskop med persist (ej radering av föregående svep). Kontrollera att det alltid finns marginal oavsett vad programmet gör. wait Debug = 0; Realtidsprog. implementering - Anders Arvidsson 14 Med timing, verifiera marginal (alternativ 2) start switch() I program med små marginaler kan det vara enklare att mäta tiden programmet vistas i vänterutinen. Kom ihåg att subtrahera minsta tiden vänterutinen själv tar vid beräkning av tidsmarginal. Kontrollera också frekvensen på debugpinnen. Ändras denna tar exekveringen för lång tid. Ge felindikering (t ex tänd en LED) om timern redan räknat ut när programmet går in i wait. Debug = 1; Interrupt Avbrott = preemptive schemaläggning wait Debug = 0; Realtidsprog. implementering - Anders Arvidsson 15 Realtidsprog. implementering - Anders Arvidsson 16 Med Avbrott Avbrott Exempelkod ISR void interrupt timer(void){ // timer = funktionens namn // interrupt = lägg funktionen på int_handling(); // adress 4 Större delen av programmet körs som en bakgrundstask. Avbrottsrutinen (ISR) kör med viss periodicitet (triggad av timern) och/eller vid vissa händelser. Övriga programmet kan köras med timing som i tidigare exempel, synkronisera med en flagga från ISR eller använd en andra timer. something_hard(); i main() while(1){ something_soft(); idle(); // Evig loop // Vänta på nästa interrupt // = Synk Realtidsprog. implementering - Anders Arvidsson 17 Realtidsprog. implementering - Anders Arvidsson 18 3

26 Interrupt Källor Konfigurera Interrupt Exempelkod void interrupt timer(void) { Flag = 1; TMR0 = timervalue; T0IF = 0; // Visa att int skett // Sätt timervalue med #define Flaggor IE = Interrupt Enable IF = Interrupt Flag void init(void) { PSA = 0; // Använd prescaler till TMR0 PS0 = 1; // Prescaler satt till dela med 64 PS1 = 0; PS2 = 1; T0CS = 0; // Väljer intern oscillator T0IE = 1; // Timer0 Interrupt Enable GIE = 1; // Global Interrupt Enable Realtidsprog. implementering - Anders Arvidsson 19 Realtidsprog. implementering - Anders Arvidsson 20 Implementera schemaläggning Robot från föreläsning om realtidsprinciper. Struktur Switch switch (CykCnt) { // Var 10:e ms case 0:{ // 0 ms K(); // Krocksensor S(); // Styr robot H(); // Hjulräknare break; case 1: case 5: { // 10, 50 ms K(); break; case 2: case 4: { // 20, 40 ms K(); S(); break; case 3: { // 30 ms K(); H(); break; default: { CykCnt=0; CykCnt=CykCnt++; If (CykCnt == 6) CykCnt=0; Realtidsprog. implementering - Anders Arvidsson 21 Realtidsprog. implementering - Anders Arvidsson 22 4

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN Dagens föreläsning Inbyggnadsprocessorer - och programmering ❾ Översikt PIC-processorn ❿ Familj ❿ Flash / EPROM ❿ Introduktion: 16F84 ❾ ❿ Harvard / von Neumann ❿ CISC / RISC ❿ Pipelining ❾ Programmering

Läs mer

Realtidsprogrammering

Realtidsprogrammering Realtidsprogrammering En introduktion - Principer och begrepp Realtidsprog. - Anders Arvidsson 1 Vad är ett realtidssystem? Ett system som reagerar på yttre händelser och ger svar inom en bestämd tid.

Läs mer

#include #include char LEFT,RIGHT,MOTORHASTIGHET;

#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET; Att avlusa en rad Assembler tar lika lång tid som att avlusa en rad C. Att skriva i C gör att man är utlämnad till kompilatorns sätt att göra assembler koden. Assembler ger fullständig kontroll över tider.

Läs mer

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation Microprocessor / Microcontroller Varför? Billiga Innehåller bara det nödvändigaste Kräver få kringkomponenter Enkla att programmera PIC16F887 PIC16F887 In- och utgångar Pinnar på PIC16F887 Exempel: pinne

Läs mer

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010 STYRNING - i Mikrodatorteknik för U2 2010 1. Uppgift M10 (5p) aug-09 Skriv ett program i PIC-assembler som - gör PortB till utport - ettställer bit 0, 3 och 4 i PortB - nollställer bit 5 och 6 i PortB

Läs mer

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen

Läs mer

Lathund. C för inbyggda system

Lathund. C för inbyggda system Lathund C för inbyggda system Revision 1 2000-09-21 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 MPLAB...4

Läs mer

Lathund. C för inbyggda system

Lathund. C för inbyggda system Lathund C för inbyggda system Revision 2 2001-04-13 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion... 3 1.1 Assembler kontra C... 3 1.2 Kodexempel... 3 1.3

Läs mer

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer Program: Elektroteknik Datum: 04-01-09 Tid: 08:00-13:00 Lokal: E103 Hjälpmedel: Linjal, miniräknare, Datablad: MC60705 och PIC16F84 (Utdelas

Läs mer

Övningsuppgifter i Mikrodatorteknik för U2

Övningsuppgifter i Mikrodatorteknik för U2 i Mikrodatorteknik för U2 Skriv instruktioner som utför följande operationer (angivna tal antas givna i hexadecimal form om inget annat anges): 1. (0x20) + 25 (0x30) 2. (0x22) - (0x31) (0x25) 3. (w) +

Läs mer

Föreläsningsanteckningar till Konstruktionsmetoder 981027

Föreläsningsanteckningar till Konstruktionsmetoder 981027 Föreläsningsanteckningar till Konstruktionsmetoder 981027 Jämförelse mellan 68705P3 och 16F84 externt MC68705P3 PIC16F84 I/O 20 13 Kapsling 28-pin DIL 18-pin DIL Drivförmåga på pinnar PortB 10mA Sink,

Läs mer

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer Program: Elektroteknik Datum: 03-08-17 Tid: 10:00-15:00 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Datablad: MC60705 och PIC16F84 (Utdelas

Läs mer

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ 'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ / VQLQJDURFKNRPPHQWDUHU Program: Elektroteknik, mikrodatorsystem Datum: 99-11-02 Tid: 8:00-9:30 Lokal E448 Hjälpmedel: Bilagor: Examinator: Miniräknare, linjal Datablad för

Läs mer

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer Program: Elektroteknik Datum: 04-05-19 Tid: 13:30-18:30 Lokal: E104 Hjälpmedel: Linjal, miniräknare, Datablad: MC60705 och PIC16F84 (Utdelas

Läs mer

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer Program: Elektroteknik Datum: 03-05-19 Tid: 13:30-18:30 Lokal: He303 Hjälpmedel: Linjal, miniräknare, Datablad: MC60705 och PIC16F84

Läs mer

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar. ATMega16 Laborationer av Kjell 2 Rev:5 Datum: 29.09.2010 Page 1 of 7 Laboration 4: Knappstuds Drivrutiner för att eliminera störningar. Inledning: Laborationskortet EasyAVR6 har bland annat tryckknappar

Läs mer

PROTOTYPUTVECKLING AV DIGITALT

PROTOTYPUTVECKLING AV DIGITALT PROTOTYPUTVECKLING AV DIGITALT STYRSYSTEM FÖR TORKSKÅP Examensarbete utfört i Elektroniksystem av Lena Hermansson Christian Pettersson LiTH-ISY-EX-ET-05/0256-SE Linköping 2005 PROTOTYPUTVECKLING AV DIGITALT

Läs mer

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 11-01-12 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar

Läs mer

Lathund. Pacific C för MS-DOS

Lathund. Pacific C för MS-DOS Lathund Pacific C för MS-DOS Revision 2 2003-08-28 Anders Arvidsson Karl-Johan Krantz Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 PACIFIC

Läs mer

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar skall inlämnas.

Läs mer

Effektpedal för elgitarr

Effektpedal för elgitarr EITF11 - Digitala Projekt Effektpedal för elgitarr Handledare: Bertil Lindvall Ivan Rimac (I05) Jimmy Lundberg (I08) 2011-05-10 Contents Bakgrund... 3 Kravspecifikation... 3 Kravspecifikation Effektpedal...

Läs mer

Varför använda en liten 8-bitars processor när det finns billiga kraftfulla 32-bitars? William Sandqvist william@kth.se

Varför använda en liten 8-bitars processor när det finns billiga kraftfulla 32-bitars? William Sandqvist william@kth.se Varför använda en liten 8-bitars processor när det finns billiga kraftfulla 32-bitars? 8-bits-processor nära givaren? En enkel givare har ofta en svag utsignal. Den kan behöva anslutas med en dyr kabel.

Läs mer

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer

Läs mer

Dessa komponenter plus några motstånd, klockkrets, kondensatorer och annat smått och gott har åstadkommit ett fungerande POV-hjul.

Dessa komponenter plus några motstånd, klockkrets, kondensatorer och annat smått och gott har åstadkommit ett fungerande POV-hjul. Om POV, persistence of vision. POV eller persistence of vision är ett fenomen som uppstår på näthinnan i ögat där en efterbild ser ut att finnas kvar i ungefär en tjugofemtedels sekund efter att den flyttat

Läs mer

Laboration 3 i Digital- och Mikrodatorteknik. Utvecklingssystemet MPLAB IDE Grundläggande assemblerprogrammering för PIC

Laboration 3 i Digital- och Mikrodatorteknik. Utvecklingssystemet MPLAB IDE Grundläggande assemblerprogrammering för PIC Laboration 3 i Utvecklingssystemet MPLAB Grundläggande assemblerprogrammering för PIC Målet med laborationen är att få begrepp om Assemblerprogrammering med MPLAB Grundläggande assembler Enkel inmatning

Läs mer

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå.

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå. CT3760 Mikrodatorteknik Föreläsning 12 Torsdag 2006-10-05 Naxos Pollning Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå. En

Läs mer

Digitala Projekt(EITF40) - Larm

Digitala Projekt(EITF40) - Larm Digitala Projekt(EITF40) - Larm Handledare: Bertil Lindvall Kristoffer Sätermark, dt08ks6 Magnus Johansson, dt08mj9 Innehåll 1 Introduktion 1 2 Kravspec 1 3 Hårdvara 2 3.1 knappsats och decoder........................

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Thunder s Truck projektrapport

Thunder s Truck projektrapport LTH Thunder s Truck projektrapport EITF11 Digitala projekt 2012-05-10 Abstract The goal of this project was to build a truck operated by an IP-remote. The robot is built using standard parts such as two

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Digitala Projekt(EITF40) - Larm

Digitala Projekt(EITF40) - Larm Digitala Projekt(EITF40) - Larm Handledare: Bertil Lindvall Erik Oredsson, I-09 Sara Sellin, I-09 2012-05-08 1. SAMMANFATTNING I denna rapport presenteras vårt projekt att bygga ett huslarm från grunden

Läs mer

Programexempel 1 AND-funktionen

Programexempel 1 AND-funktionen Utdrag ur "Logiska funktioner med mikroprocessor" s.10 ff. Reviderat 121105 Håkan Joëlson... Programexempel 1 AND-funktionen Uppgift: Realisera en 2-ingångars AND-grind med PIC16F84A. I detta exempel ska

Läs mer

Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4

Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4 Avbrott Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4 Demonstrationsövning 5 1 Arbetsbok avsnitt 7: Undantag, avbrott - Uppgift 41 + enable_interrupt

Läs mer

Arduinokurs. Del 1 - Vett och etikett. Talsystem. Binärt ettor och nollor

Arduinokurs. Del 1 - Vett och etikett. Talsystem. Binärt ettor och nollor Del 1 - Vett och etikett Talsystem Binärt ettor och nollor Det binära (Bin) talsystemet är grundläggande för alla datorer och logiska system. Ett värde kan endast vara sant eller falskt ett eller noll!

Läs mer

Blandat. Föreläsning 5

Blandat. Föreläsning 5 Blandat Föreläsning 5 Blandat switch break, continue, goto Kommentarer Problemlösning switch int weekday; printf("mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday) { case 1: printf("monday\n");

Läs mer

Nöjd Medarbetar Index 2012

Nöjd Medarbetar Index 2012 Kod: 35015273-4EDD20 Kod: 35015274-3B8D36 Kod: 35015275-0F4A36 Kod: 35015276-1F8B23 Kod: 35015277-860103 Kod: 35015278-BF5703 Kod: 35015279-84AD82 Kod: 35015319-26C3AF Kod: 35015545-8C9D82 Kod: 35015546-91D178

Läs mer

#include #include #include unsigned char num;

#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned char num; #include #include #include unsigned char num; int count = 0; // antal i lokalen char larmtriggered = 0; //om larmet är utlöst char larmactivated = 0; //om larmet

Läs mer

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Svar Svar till uppgifterna lämnas på separat papper. En poäng per uppgift. Max 30 poäng. Bonuspoäng beräknas enligt följande tabell: 6-10 poäng

Läs mer

A-del motsvarande KS1

A-del motsvarande KS1 MÄLARDALENS HÖGSKOLA Institutionen för elektroteknik Tentamen Mikrodatorteknik CT3760 Datum 2005-10-28 Tid 08.30 12.30 Svar till A- och B-del A-del motsvarande KS1 Uppgift A1. Vad blir resultatet då instruktionen

Läs mer

Några småsaker. switch break, continue, goto Kommentarer

Några småsaker. switch break, continue, goto Kommentarer Några småsaker switch break, continue, goto Kommentarer switch int weekday; printf("mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday) case 1: printf("monday\n"); break; case 2: printf("tuesday\n");

Läs mer

Digitala Projekt (EITF11) Hemlarm

Digitala Projekt (EITF11) Hemlarm Digitala Projekt (EITF11) Hemlarm Karl Nordenstorm, I-12, gem12kno 2014-05-16 Handledare: Bertil Lindvall Sammanfattning Den här rapporten beskriver arbetet bakom hur en prototyp för ett hemlarm har utvecklats

Läs mer

C++ Slumptalsfunktioner + switch-satsen

C++ Slumptalsfunktioner + switch-satsen C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.

Läs mer

Avtalsform Förnyad konkurrensutsättning Namn Fordon (köp och långtidshyror)

Avtalsform Förnyad konkurrensutsättning Namn Fordon (köp och långtidshyror) Umeå Kommun Utvärdering Delat anbud Avtalsform Förnyad konkurrensutsättning Namn Fordon (köp och långtidshyror) Diarie 12024 Ansvarig upphandlare Jan Lundberg Inkomna anbud Anbudslämnare Organisationsnr

Läs mer

Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3

Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3 LCD Display och Grafik Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3 Målsättning: Efter lektionen ska alla självständigt kunna slutföra

Läs mer

(Lösningsförslag finns sist i denna fil.)

(Lösningsförslag finns sist i denna fil.) (Lösningsförslag finns sist i denna fil.) Läser externa signaler. Har 64 ingångar (kanaler), från 0 till 63. Kan bara avläsa en ingång i taget. Avlästa värdet positivt 16-bitars tal. Varje läsning tar

Läs mer

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT Enchipsdatorer med tillämpningar LABORATION 7, ROBOT Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-05-14 Laboranter: 1 Syfte Denna laboration syftar till att introducera interrupt och watchdog

Läs mer

PIC-programmeringsuppgift (PROA)

PIC-programmeringsuppgift (PROA) PIC-programmeringsuppgift (PROA) Ugnsklocka digital klocka med en timer-funktion Tillämpad Digitalteknik med PIC-processor IL131V (HT12) Karl-Axel Zander 920208-5594 28-01-2013 underskrift Uppgift & beskrivning

Läs mer

Arduinokurs. Kurstillfälle 4

Arduinokurs. Kurstillfälle 4 Kurstillfälle 4 CW-generering Det här kan ses som överkurs men kan ändå vara roligt för att kunna generera CW på ett enkelt sätt. Det blir en hel del nytt men vi tar det steg för steg Som alla vet gäller

Läs mer

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00.

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00. Mikrodatorteknik Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3 7,5 högskolepoäng Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00 Hjälpmedel: Totalt antal poäng på tentamen:

Läs mer

Programmering av inbyggda system

Programmering av inbyggda system GPIO, In- och utmatning Demonstration och konsultation ST407 GPIO konfigurering och användning Arbetsbokens avsnitt 4 och 5 LCD ASCII-display Keyboard Introduktion till laboration 2 Demonstrationsövning

Läs mer

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström DST 1 Nicholas Wickström IDE, Högskolan i Halmstad 2009 1 Outline 1 Vad är Hårdvara? (Datorsystemmodell; processor m. periferi, IO, Minne) Typiskt för hårdvarunära programmering (datablad, register, datastrukturer,...)

Läs mer

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I Flervalsfrågor. A 2. C 3. B 4. D 5. A 6. B 7. C 8. D 9. C 0. B. B 2. C 3. A 4. C 5. A Problemuppgifter. Uttryckt i decimal form: A=28+32+8

Läs mer

Övning 6. Parallellport, timer

Övning 6. Parallellport, timer Övning 6 Parallellport, timer 6.1 de2_pio_toggles18 Memory-Mapped addresses LEDG8 LEDR17 LEDR16 LEDR15 LEDR14 LEDR13 LEDR12 LEDR11 LEDR10 LEDR9 LEDR8 LEDR7 LEDR6 LEDR5 LEDR4 LEDR3 LEDR2 LEDR1 LEDR0 LEDG7

Läs mer

Växtviskaren EITF11 Digitala projekt VT15, I12

Växtviskaren EITF11 Digitala projekt VT15, I12 Växtviskaren EITF11DigitalaprojektVT15,I12 NathalieLiljebrunn,EbbaRiismark,AnnaNorelius LundsTekniskaHögskola Institutionenförelektro ochinformationsteknik Handledare:BertilLindvall,AndreasJohansson 2015

Läs mer

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Datormodell Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Intel 4004 från 1971 Maximum clock speed is 740 khz Separate program and data

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

Datorteknik 2 (AVR 2)

Datorteknik 2 (AVR 2) Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra

Läs mer

LABORATION. Datorteknik Y

LABORATION. Datorteknik Y LABORATION Datorteknik Y Mikroprogrammering Version 3.3 2012 (AE) 2013 (AE) 2017 (KP) Namn och personnummer Godkänd Uppg. 1-3 1 1 Inledning Syftet med laborationen är att skapa en känsla för vad som händer

Läs mer

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers Avbrott generellt F7.1. Avbrott sköts med hårdvara i processorn, man läser av hårdvarumässigt. Polling är en enklare princip för I/O- hantering.

Läs mer

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen) MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga

Läs mer

Programmering i C, 7,5 hp

Programmering i C, 7,5 hp Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata

Läs mer

K 1 APITEL Åttondelar

K 1 APITEL Åttondelar 1 KAPITEL Åttondelar A V I S TA TEKNIK DEL 1 - RYTMBILDER 1 Åttondelar Som jag sa i inledningen av boken så ska vi läsa noter som bilder (eller ord om du så vill), istället för not för not, (bokstav för

Läs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne Programallokering Att placera program i flashrespektive RAM-minne Program i FLASH-minne Bara lokala variabler Globala oinitierade variabler Globala initierade variabler Program med avbrott Program i RAM-minne

Läs mer

Styrprojektet (LEU075) Process 4

Styrprojektet (LEU075) Process 4 Styrprojektet (LEU075) Process 4 Chalmers Lindholmen Mekatronikprogrammet 2004-12-07 Av Christian Gruffman och Kristinn Sigmundsson 1 1. Sammanfattning Syftet med vårat styrprojekt var att lära oss mer

Läs mer

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

School of Mathematics and Systems Engineering. Kamerasensor. Sensor för att identifiera objekt på bilden från en videokamera.

School of Mathematics and Systems Engineering. Kamerasensor. Sensor för att identifiera objekt på bilden från en videokamera. School of Mathematics and Systems Engineering Reports from MSI - Rapporter från MSI Kamerasensor Sensor för att identifiera objekt på bilden från en videokamera Mikael Söderlund Sep 2006 MSI Report 06128

Läs mer

7HQWDPHQLNRQVWUXNWLRQVPHWRGHU 'HOWHQWDPHQ / VQLQJDURFKNRPPHQWDUHU

7HQWDPHQLNRQVWUXNWLRQVPHWRGHU 'HOWHQWDPHQ / VQLQJDURFKNRPPHQWDUHU Datum: 98 11 18 Tid: 13:00-14:00 Lokal: E348 Hjälpmedel: Miniräknare, linjal Bilagor: Datablad över PIC Timer 0 7HQWDPHQLNRQVWUXNWLRQVPHWRGHU 'HOWHQWDPHQ / VQLQJDURFKNRPPHQWDUHU Examinator: Bengt Magnhagen

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Construction of a laboration card with the PIC-processor

Construction of a laboration card with the PIC-processor Examensarbete LITH-ITN-EX--02/248--SE Construction of a laboration card with the PIC-processor Department of Science and Technology Linköpings Universitet SE-601 74 Norrköping, Sweden Institutionen för

Läs mer

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator 1 2 TSIU50 Mikrodatorprojekt LAB1 AVR-introduktion och logikanalysator Michael Josefsson Januari 2007 Detta häftes syfte är att tjäna som en snabb introduktion till utvecklingsmiljön AVRStudio och den

Läs mer

22/02/16. Arduino Introduktion till Arduino. Arduino. Microcontroller - Embedded systems. Historia Organisation - Ekosystem

22/02/16. Arduino Introduktion till Arduino. Arduino. Microcontroller - Embedded systems. Historia Organisation - Ekosystem 22/02/16 Arduino Introduktion till Arduino Historia Organisation - Ekosystem ANDERS J JOHANSSON Hårdavara Mjukvara Kringkomponenter Tips Demos! Microcontroller - Embedded systems Inbyggda system Processing

Läs mer

IS1500 Lösningar övning CE_O7 2014. CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io.

IS1500 Lösningar övning CE_O7 2014. CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io. IS1500 ösningar övning CE_O7 2014 CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io. 6.1. Vad är seriell kommunikation? a) Vad är skillnaden mellan seriell och parallell kommunikation?

Läs mer

Omtentamen i Realtidsprogrammering för Au3, D3, E3

Omtentamen i Realtidsprogrammering för Au3, D3, E3 Omtentamen i Realtidsprogrammering för Au3, D3, E3 Datum: 2004-01-14 Tid: 0800-1300 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Inga särskilda hjälpmedel är tillåtna. Poäng: Tentamen omfattar 40

Läs mer

Det finns en handledning till kortet på hemsidan. AVR STK500.

Det finns en handledning till kortet på hemsidan. AVR STK500. Laboration 1 (ver 1) Uppgifter: AVR Studio 4.lnk Bli bekant med utvecklingskortet, och AVR studio. Skriva in program för binärräknare. Simulera detta samt ladda ner det till kortet. Förse ovanstående program

Läs mer

Avtalsform Förnyad konkurrensutsättning Namn Fordon (köp och långtidshyror)

Avtalsform Förnyad konkurrensutsättning Namn Fordon (köp och långtidshyror) Umeå Kommun Utvärdering Lägsta pris Delat anbud Avtalsform Förnyad konkurrensutsättning Namn Fordon (köp och långtidshyror) Diarie 12024 Ansvarig upphandlare Jan Lundberg Detta dokument är en kopia på

Läs mer

SORTERING OCH SÖKNING

SORTERING OCH SÖKNING Algoritmer och Datastrukturer Kary FRÄMLING Kap. 9, Sid 1 C-språket 2/Kary Främling v2000 och Göran Pulkkis v2003 SORTERING OCH SÖKNING Sortering är ett av de bästa exemplen på problem där valet av lösningsalgoritm

Läs mer

GPT- föreläsning 10. För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången

GPT- föreläsning 10. För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången GPT- föreläsning 10 För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången poparoramometoterorövoverorfoförorinongog Denna gång Olika typer av fel Felsökning och felsökningsverktyg

Läs mer

Systemkonstruktion SERIEKOMMUNIKATION

Systemkonstruktion SERIEKOMMUNIKATION Systemkonstruktion SERIEKOMMUNIKATION Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-04-26 Syfte Laborationen syftar till att ge studenten tillfälle att närmare bekanta sig med RS-232-protokollet,

Läs mer

CE_O5. Cacheminne. Hemlaboration 2.

CE_O5. Cacheminne. Hemlaboration 2. IS1500 Exempelsamling till övning CE_O5, 2014 CE_O5. Cacheminne. Hemlaboration 2. 5.1. Medeltidshistoria Diskutera förloppet då CPU:n gör en läsreferens i huvudminnet dvs information kopieras från huvudminne

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Övning 4 EITF25 & EITF Protokoll. October 29, 2016

Övning 4 EITF25 & EITF Protokoll. October 29, 2016 - 2016 Protokoll October 29, 2016 1 Uppgift 1. Nedan finns en Ethernet II-ram där Preamble, SFD och CRC är borttagna. Ramen är beskriven i hexadecimalt format. Svara på följande frågor genom att studera

Läs mer

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner GPT föreläsning 8 Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner Denna gång Reflektioner kring OU1 Funktioner Reflektioner

Läs mer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.) Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,

Läs mer

FÖRORD...3 MEMEC SCANDINAVIA AB...3

FÖRORD...3 MEMEC SCANDINAVIA AB...3 FÖRORD...3 MEMEC SCANDINAVIA AB...3 VAD KAN MAN GÖRA MED EN PIC?...3 VANLIGT FÖREKOMMANDE FRÅGOR...4 VAD ÄR SKILLNADEN MELLAN EN MIKROPROCESSOR OCH EN MIKROKONTROLLER?...4 VAD ÄR RISC OCH CISC?...4 VAD

Läs mer

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6

Läs mer

Värmedistribution i plåt

Värmedistribution i plåt Sid 1 (6) Värmedistribution i plåt Introduktion Om vi med konstant temperatur värmer kanterna på en jämntjock plåt så kommer värmen att sprida sig och temperaturen i plåten så småningom stabilisera sig.

Läs mer

Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6 Realtidssystem - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja)

Läs mer

Tentamen Datorteknik D del 2, TSEA49

Tentamen Datorteknik D del 2, TSEA49 Tentamen Datorteknik D del 2, TSEA49 Datum 2012-05-24 Lokal TER2 Tid 8-12 Kurskod TSEA49 Provkod TEN1 Kursnamn Datorteknik D del 2 Institution ISY Antal frågor 6 Antal sidor (inklusive denna 10 sida) Kursansvarig

Läs mer

Det finns många flaggor till g++,

Det finns många flaggor till g++, C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.

Läs mer

LEU240 Mikrodatorsystem Att placera program i FLASHrespektive

LEU240 Mikrodatorsystem Att placera program i FLASHrespektive Institutionen data- och informationsteknik 2011-10-31 Att placera program i FLASHrespektive RAM-minne Följande resonemang gäller för processorn MC9S12DG256B. Vi kommer i görligaste mån att skriva våra

Läs mer

Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment:

Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment: Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volafle, #define Arrayer av pekare, arrayer av arrayer Hemuppgi9er: v2. Föregående

Läs mer

Firmware till en Dyklampa - Utveckling av programvara. Firmware for a dive light - Developing software. Examensarbete inom Mekatronik MIKAEL ISAKSSON

Firmware till en Dyklampa - Utveckling av programvara. Firmware for a dive light - Developing software. Examensarbete inom Mekatronik MIKAEL ISAKSSON Firmware till en Dyklampa - Utveckling av programvara Firmware for a dive light - Developing software Examensarbete inom Mekatronik MIKAEL ISAKSSON MICHAEL GUSTAFSSON Institutionen för Signaler och System

Läs mer

mikroprocessorer Elektronik DIGITALTEKNIK Logiska funktioner med

mikroprocessorer Elektronik DIGITALTEKNIK Logiska funktioner med UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Lars Wållberg Björne Lindberg Håkan Joëlson --6 v. Elektronik DIGITALTEKNIK Logiska funktioner med mikroprocessorer Introduktion till utvecklingsprogamvaran

Läs mer

EXAMENSARBETE. Insamling av och trådlös överföring av patientdata

EXAMENSARBETE. Insamling av och trådlös överföring av patientdata EXAMENSARBETE 2008:129 CIV Insamling av och trådlös överföring av patientdata Johan Nordin Luleå tekniska universitet Civilingenjörsprogrammet Elektroteknik Institutionen för Systemteknik Avdelningen för

Läs mer

Studera databladen för LCD på sid 4, 5, 7, 8, 14, 18, 19, 20 och 23. Datablad finns på kurshemsidan.

Studera databladen för LCD på sid 4, 5, 7, 8, 14, 18, 19, 20 och 23. Datablad finns på kurshemsidan. Namn: Laborationen godkänd: Digitala system 15 p Datorprojekt, del 2 L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Projektlaboration 2, skrivning till LCD. Förberedelser:

Läs mer

Ett enkelt program i C++, hello.cpp. #include int main() { std::cout << "Hello World\n"; return 0; } C++, Övning 1

Ett enkelt program i C++, hello.cpp. #include <iostream> int main() { std::cout << Hello World\n; return 0; } C++, Övning 1 Ett enkelt program i C++, hello.cpp C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel int

Läs mer

CPU. Carry/Borrow IX. Programräknare

CPU. Carry/Borrow IX. Programräknare Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister

Läs mer