Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704



Relevanta dokument
General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

A-del motsvarande KS1

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

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

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

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Digital- och datorteknik

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

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

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

#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned char num;

Stack och subrutiner Programmeringskonventionen

Datorteknik 2 (AVR 2)

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Datorteknik. Exempeluppgifter i Laborativ Examination

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Övningsuppgifter i Mikrodatorteknik för U2

Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet

Assemblerprogrammering för ARM del 2

LEU240 Mikrodatorsystem

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

Digitala Projekt(EITF40) - Larm

F5: Högnivåprogrammering

F5: Högnivåprogrammering

Digital- och datorteknik

Digital- och datorteknik

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

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Det finns en hemsida. Adressen är

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Föreläsningsanteckningar till Konstruktionsmetoder

CE_O3. Nios II. Inför lab nios2time

Datorteknik Övningsuppgifter

Assemblerprogrammering del 1

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

CPU. Carry/Borrow IX. Programräknare

Programexempel för FLEX

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

EDA Digital och Datorteknik

F4: Assemblerprogrammering

Lösningar till övning CE_O CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

Laboration 2 i Datorteknik- Assemblerprogrammering II

Lathund. C för inbyggda system

Digital- och datorteknik

Datorteknik ERIK LARSSON

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

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

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

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

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

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

Lathund. C för inbyggda system

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

Övning2 Datorteknik, HH vt12 - Programmering

Assemblerprogrammering, ARM-Cortex M4 del 3

#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET;

CE_O2. Nios II. Subrutiner med mera.

Datorteknik Hyfsa kod

Lösningar till tentamen i EIT070 Datorteknik

Enkla datatyper minne

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Att använda pekare i. C-kod

Datorarkitekturer med operativsystem ERIK LARSSON

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

Arduinokurs. Kurstillfälle 4

Institutionen för datavetenskap 2014/15

Laboration Datorteknik TSIU02 2. I/O-programmering

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Tentamen PC-teknik 5 p

Assemblerprogrammets struktur; exempel

TSEA28 Datorteknik Y (och U)

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

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

Digitala Projekt (EITF11) Hemlarm

Övning 6. Parallellport, timer

The Phenomenal Doorbell Bilaga 2. Källkod

GPIO - General Purpose Input Output

Extra lab. Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination

Maskinorienterad Programmering 2010/11

Effektpedal för elgitarr

Lösningar till tentamen i EIT070 Datorteknik

Laboration nr2 med enchipsdatorn PIC-16F877

Data, typ, selektion, iteration

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

AVRStudio på tre minuter. Micke Josefsson, 2005

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

Övning 7. Timer, serieport

Lösningar till tentamen i EIT070 Datorteknik

Assemblerprogrammering del 3

Assemblerprogrammering för HCS12

Transkript:

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 ger 1 bonuspoäng 11-15 poäng ger 2 bonuspoäng 16-20 poäng ger 3 bonuspoäng 21-25 poäng ger 4 bonuspoäng 26-30 poäng ger 5 bonuspoäng. Bonuspoäng gäller endast vid tentamenstillfället 2007-10-26 Uppgift 1. LDI temp, 0b10101110 Vilket hexadecimalt tal kommer att tilldelas variabeln temp? 0xAE ( =174 10 ) Uppgift 2. Skriv det decimala talet 7 som ett binärt tal med 8 bitar i tvåkomplementform. 0b 1111 1001 Uppgift 3. Vad är en label? En symbolisk adress Uppgift 4. Microcontrollern innehåller tre olika minnestyper. Vilka. SRAM, FLASH EEPROM Vilken minnestyp används för programminne? FLASH Uppgift 5. Du vill att ett program för ATmega16 skall börja på minnesadress 0x0080 Hur skall programmet börja?.cseg.org 0x0080 Uppgift 6. ATmega16 har 32 generella register och 64 s.k. I/O-register ( portar) Vad är det för skillnad mellan dessa två grupper? De 32 generella registren är kopplade till ALU. I/O-registren styr microcontrollerns arbete. Uppgift 7. I/O-registret DDRA har värdet 0x33. Hur kommer PORTA att fungera? Bit 0,1 4 och 5 blir utgångar, de övriga ingångar 2007-09-20 Kontrollskrivning med svar 1/6

Uppgift 8. Vilka register är direkt kopplade till ALU? R0 till R31, samt SREG Uppgift 9. Vilka register bildar y-registret? R28 och R29 Uppgift 10. Vad behövs för att en subrutin skall fungera? En stack måste finnas Uppgift 11. Vad är ett assemblerdirektiv? En instruktion som styr assemblatorns arbete Uppgift 12. En assemblerinstruktion är EOR. I databladet finns bl.a. följande information: Operation: Rd Rd Rr Syntax: Operands: Program Counter: EOR Rd,Rr 0 Rd 31, 0 Rr 31 PC PC +1 16-bit Opcode: 0010 01rd dddd rrrr Ange maskinkoden för EOR R17, R17 Vad blir innehållet i R17 efter operationen? 0x2711 noll Uppgift 13. Instruktionsuppsättningen för ATmega16 innehåller ett antal Bransch instructions. En del avser villkorliga hopp. Vad styr om ett villkorligt hopp skall utföras eller ej? En eller flera bitar i SREG Uppgift 14. Skriv en rutin i assembler som använder stacken för att byta värdet i register R5 med värdet i register R8. PUSH R5 PUSH R8 POP R5 POP R8 Uppgift 15. Antag stackpekaren innehåller talet 0x400. Vad innehåller stackpekaren efter det att instruktionen PUSH R18 utförts? 0x03FF Uppgift 16. Vad är fördelen med att använda ett SRAM jämfört med ett Dynamiskt RAM? SRAM behöver ej uppdateras med jämna mellanrum. Behåller inläst värde så länge som matningsspänning finns 2007-09-20 Kontrollskrivning med svar 2/6

Uppgift 17. Hur anropas en subrutin i ett assemblerprogram. RCALL label eller CALL label Uppgift 18. Ett datasegment placeras på adressen 0xA5 på följande sätt:.dseg.org 0xA5 uppgift: Ange assemblerinstruktioner som laddar x-registret med startadressen till uppgift. LDI LDI XL, low(uppgift) XH, high(uppgift) Uppgift 19. Följande rader i assembler ger en fördröjning. ldi R18, 0xff yttre: ldi R17, 0xff Back: dec R17 brne Back dec R18 brne yttre Skriv om funktionen så att den kan användas som en subrutin. tid: ldi yttre: ldi R18, 0xff R17, 0xff Back: dec brne dec brne ret Back yttre R17 R18 Uppgift 20. En del av ett assemblerprogram ser ut så här:.include m16def.inc.cseg.org 0.def temp = R17 rjmp Start 2007-09-20 Kontrollskrivning med svar 3/6

Start: LDI temp, 255 OUT DDRB, temp LDI temp, 0x35 OUT PORTB, temp Stop: rjmp Stop Skriv ett C-program som har motsvarande funktion. #include<avr/io.h> void main( ) { DDRB = 255; PORTB = 0x35; stop: goto stop; } Uppgift 21. Skriv en funktion i C som ger en tidsfördröjning. void tid( ) { unsigned int x; for( x=0; x< 65000; x++) ; } Uppgift 22. Hur anropas en egendefinierad funktion i C? Funktionen måste deklareras innan den används. void tid( ) ; Anropas sedan i main med tid( ); Uppgift 23. Hela PORTB har definierats som en inport. Det är endast bitarna 3 och 4 som skall användas i ett program. Övriga bitar skall nollställas (maskning). Skriv en assemblerrutin som utför åtgärden. IN temp, PINB ANDI temp, 0x18 Uppgift 24. Samma uppgift som föregående. Skriv ett C-kommando som gör samma sak. unsigned char temp; temp = PINB & 0x18; 2007-09-20 Kontrollskrivning med svar 4/6

Uppgift 25. Skriv en for-loop i C som har samma funktion som while(1) { } for( ; ; ) { } Uppgift 26. Flödesschemat är givet. Skriv ett C-program som ger funktionen. Start B-port UT D-port IN Jämför med 0x10 Inläst tal < 0x10? Ja mindre: Läs ut 0xF0 Läs ut 0x07 Stanna unsigned char temp; DDRB = 0xFF; DDRD = 0; temp = PIND; if( temp < 0x10) PORTB = 0x07; else PORTB = 0xF0; stop: goto stop Uppgift 27. Vad får b för värde efter det att while-satsen utförts? unsigned b=0; unsigned arr[]= {1,3,5,7,11,13,17}; unsigned i=0 ; while(i<=3) { b = b + arr[i]; i = i +1; } 1 + 3 + 5 +7 = 16 2007-09-20 Kontrollskrivning med svar 5/6

Uppgift 28. Vilken assembler instruktion motsvarar C-statsen katt: goto katt;? katt: rjmp katt Uppgift 29. Variabeln PELLE är av typen unsigned char PELLE har det hexadecimala värdet 0x91. Vad innehåller PELLE efter det att följande tilldelningssats utförts? PELLE = PELLE 0x60; PELLE har värdet 0xF1 Uppgift 30. PELLE har det hexadecimala värdet 0x91. Vad innehåller PELLE efter det att följande tilldelningssats utförts? PELLE = PELLE B&& 0x60; PELLE har värdet 0x01 2007-09-20 Kontrollskrivning med svar 6/6