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 <pic.h> #include <sys.h> 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

Ö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

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

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

Microprocessor / Microcontroller

Microprocessor / Microcontroller Microprocessor / Microcontroller Varför? Industrial Electrical Engineering and Automation Billiga Innehåller bara det nödvändigaste Kräver få kringkomponenter Enkla att programmera PIC16F887 PIC16F887

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

Ö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

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

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

'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-08-17 Tid: 10:00-15:00 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Datablad: MC60705 och PIC16F84 (Utdelas

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

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

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

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

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

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

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

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

Hantering av textsträngar och talsträngar. William Sandqvist

Hantering av textsträngar och talsträngar. William Sandqvist Hantering av textsträngar och talsträngar Strängen Hello world! PIC-processorerna lagrar strängkonstanter med bokstäverna inbakade i en följd av instruktioner (en tabell). Man hämtar en bokstav genom att

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

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

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

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

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

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

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

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

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) 1. Motivation ROM. 8kbyte 2 3 2 10 byte 13 Adressbitar [A12,A0] direkt till ROM-kapsel. RWM. 32kbyte 2 5 2 10 byte 15 Adressbitar

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

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

Maskinorienterad programmering

Maskinorienterad programmering Externa avbrott Anslutning av extern avbrottsvippa, programmering med konfigurering och hantering av externa avbrott. Introduktion till time-sharing, enkel task-switch. Ur innehållet: NVIC och EXTI (SYSCFG)

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

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

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

Agenda (obs! halvdag)

Agenda (obs! halvdag) Objektorienterad programmering Föreläsning 3 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (obs! halvdag) Do-satsen Break-satsen Continue-satsen Goto-satsen Switch-satsen Villkorsoperatorn

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

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

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

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

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

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

(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

AVR 5. Styrning av trafikljus. Digitala system 15 p

AVR 5. Styrning av trafikljus. Digitala system 15 p Namn: Laborationen godkänd: Digitala system 15 p AVR 5 LTH Ingenjörshögskolan vid Campus Helsingborg Styrning av trafikljus. Syftet med laborationen är att styra en trafikkorsning med hjälp av en mikroprocessor.

Läs mer

Laboration D164. ELEKTRONIK Digitalteknik. Digitalteknik med enchipsdatorer

Laboration D164. ELEKTRONIK Digitalteknik. Digitalteknik med enchipsdatorer UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Björne Lindberg 21-1-4 v 1.1 ELEKTRONIK Digitalteknik Laboration D164 Digitalteknik med enchipsdatorer Namn... Personnummer... Studieprogram...

Läs mer

#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> 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

Juniorallsvenskan 2006 division 1

Juniorallsvenskan 2006 division 1 Juniorallsvenskan 2006 division 1 Stockholm 24-26 november 2006 Domare: Jonas Sandbom Betänketid: 40 drag på 2 timmar därefter 30 minuter för resten av partiet. 1 2 3 4 5 Parti- Match- PLATS Juniorallsvenskans

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

LEU240 Mikrodatorsystem

LEU240 Mikrodatorsystem Institutionen för data- och informationsteknik 2011-10-11 LEU240 Mikrodatorsystem Vi har tidigare i olika sammanhang sett att det är önskvärt att kunna använda ett högnivåspråk som C för att skriva program

Läs mer

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

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

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

Tentamen med lösningsförslag

Tentamen med lösningsförslag Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D

Läs mer

Tentamen med lösningsförslag

Tentamen med lösningsförslag Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Tentamen med lösningsförslag DAT017 (DAT016) Maskinorienterad programmering IT EDA482 (EDA481) Maskinorienterad programmering D

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

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

Ö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

Maskinorienterad programmering

Maskinorienterad programmering Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok

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

EDI022. Digitala Projekt. Rapport. Björn Åkesson 5/20/2011

EDI022. Digitala Projekt. Rapport. Björn Åkesson 5/20/2011 EDI022 Digitala Projekt Rapport Björn Åkesson 5/20/2011 A synthesizer is built consisting of a bit-counter and phased-locked-loop to create various tones. The construction can be controlled via an external

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

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

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

GPIO - General Purpose Input Output

GPIO - General Purpose Input Output GPIO - General Purpose Input Output Ur innehållet: Digital IO Ideala och verkliga signaler Bitvis in- och utmatning Anslutning - fysiskt gränssnitt F407 - GPIO-modul tillämpningar Programmering av enkelt

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 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

Juniorallsvenskan 2008 division 1

Juniorallsvenskan 2008 division 1 Juniorallsvenskan 2008 division 1 Stockholm 21-23 november 2008 Domare: Jonas Sandbom Betänketid: 40 drag på 2 timmar därefter 30 minuter för resten av partiet. 1 2 3 4 5 Parti- Match- PLATS Juniorallsvenskans

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 7 mars 2012, klockan 14:00 19:00 i Vic 2, 3. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

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

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

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

Maskinorienterad programmering

Maskinorienterad programmering Maskinorienterad programmering Sammanfattning Ur innehållet: Vi rekapitulerar kursens syften Vi repeterar kursens lärandemål Vi belyser hur den skriftliga delen av examinationen genomförs. Sammanfattning

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

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

Mekanismer. (implementation)

Mekanismer. (implementation) Mekanismer (implementation) Repetition Semafor Räknar tillgängliga resurser Initieras med startvärde Vid förbrukning: väntar tills resurs finns Användning: invänta händelse Lås Markerar att en variabel/datastruktur

Läs mer

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

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6 Realtidssystem - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial

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

Seriekommunikation. Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets

Seriekommunikation. Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets Seriekommunikation Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets Läsanvisningar: Arbetsbok kapitel 7 Seriekommunikation 1 Parallell

Läs mer

PROJEKT STAFFAN STALLEDRÄNG

PROJEKT STAFFAN STALLEDRÄNG PROJEKT STAFFAN STALLEDRÄNG PROJEKT STAFFAN STALLEDRÄNG s 1 I det här projektet ska du koppla en krets som innehåller en högtalare och en lysdiod, samt skriva ett program som får högtalaren att spela en

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

F4: Assemblerprogrammering

F4: Assemblerprogrammering F4: Assemblerprogrammering Hoppinstruktioner Branch Jump Med vilkor IF satser Loopar while-loopar do-while- loopar for-loopar Stackhantering Underprogram 1 BRA rel_adr Branch Always Relativadressering

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI

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

AVRStudio på tre minuter. Micke Josefsson, 2005

AVRStudio på tre minuter. Micke Josefsson, 2005 AVRStudio på tre minuter Micke Josefsson, 2005 Mycket kort intro till AVRStudio Utvecklingsmiljön AVRStudio innehåller en editor för att mata in programmet, en simulator för att under kontrollerade former

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

Maskinorienterad programmering

Maskinorienterad programmering Undantagshantering och interna avbrott ARM Cortex-M4 exceptions, programmering av undantagshantering Ur innehållet: Faults Software traps Avbrott från interna enheter, Systick Läsanvisningar: Arbetsbok

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

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

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

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