INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

Relevanta dokument
Föreläsningsanteckningar till Konstruktionsmetoder

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

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

Lathund. C för inbyggda system

Lathund. C för inbyggda system

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

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Realtidsprogrammering

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Microprocessor / Microcontroller

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

LABORATION PIC-PROGRAMMERARE

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

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer

Laboration nr2 med enchipsdatorn PIC-16F877

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

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

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

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

7HQWDPHQLNRQVWUXNWLRQVPHWRGHU 'HOWHQWDPHQ / VQLQJDURFKNRPPHQWDUHU

Grundläggande datavetenskap, 4p

PROTOTYPUTVECKLING AV DIGITALT

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Tentamen PC-teknik 5 p Lösningar och kommentarer

Det finns en hemsida. Adressen är

Maskinorienterad programmering

Kontrollskrivning Mikrodatorteknik CDT S2-704

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Programexempel 1 AND-funktionen

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

A-del motsvarande KS1

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

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

Lathund. Pacific C för MS-DOS

Enchipsdatorer med tillämpningar LABORATION 6, ROBOT

Maskinorienterad Programmering LP3-2017/2018

Övningsuppgifter i Mikrodatorteknik för U2

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

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

Thunder s Truck projektrapport

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Construction of a laboration card with the PIC-processor

Att använda pekare i. C-kod

Maskinorienterad Programmering IT2, LP2-2016/2017

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

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Effektpedal för elgitarr

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

Arduinokurs. Kurstillfälle 4

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

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

Kursplanering för Mikrodatorteknik 4p/5p

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

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

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

PIC-programmeringsuppgift (PROA)

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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

Maskinorienterad programmering

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

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

K8048 PIC PROGRAMMER BOARD

Introduktion C-programmering

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Digitala Projekt(EITF40) - Larm

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

Enkla datatyper minne

Maskinorienterad Programmering LP2-2017/2018

Digitala Projekt(EITF40) - Larm

Styrprojektet (LEU075) Process 4

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

Tentamen PC-teknik 5 p

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Programmering av inbyggda system 2014/2015

Planering Programmering grundkurs HI1024 HT 2014

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Växtviskaren EITF11 Digitala projekt VT15, I12

EITF11 - Digitala projekt. Hastighetsmätare. Hugo Backmyr Mattias Karlsson

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

Systemkonstruktion SERIEKOMMUNIKATION

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

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

Repetition C-programmering

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

Kursplan för ENK Mikroprocessorteknik A

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

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

GPIO - General Purpose Input Output

LEU240 Mikrodatorsystem

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Maskinorienterad programmering

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

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

Transkript:

Dagens föreläsning Inbyggnadsprocessorer - och programmering ❾ Översikt PIC-processorn ❿ Familj ❿ Flash / EPROM ❿ Introduktion: 16F84 ❾ ❿ Harvard / von Neumann ❿ CISC / RISC ❿ Pipelining ❾ Programmering ❿ PIC-assembler ❿ ANSI-C ❿ C för inbyggda system 1 2 Nästa vecka ❾ Strukturerad programmering ❾ Timing ❾ Realtid ❾ Interrupt Programmeringsprojekt LED-matris ❾Mål ❿ Träna projektform ❿ Färdigheter i C ❿ Färdigheter i realtid ❿ Träna databladsökning ❾Metoder ❿ Blod ❿ Svett ❿ Tårar 3 4 PIC-processorn Hämta information PIC-processorn Koncept Datablad, programexempel, utvecklingsverktyg, applikationsnötter www.microchip.com C-kompilator, FAQ, programexempel www.htsoft.com 5 6 1

PIC-familjen Flash vs EPROM t ex PIC16F84 ❾ Flash ❾ Low-end, 12Cxxx ❿ 15:- 8 18 pin Periferi: t ex A/D, EEPROM ❿ 0,5 1 k programminne ❾ Mid-range, 16Cxxx, 16Fxxx ❿ 30:- 18 40 pin Periferi: t ex A/D, PWM, USART ❿ 1 8 k programminne ❾ High-end, 17Cxxx, 18Cxxx ❿ 60:- 40 84 pin Kärnan innefattar 8*8 multiplikator ❿ 2 32 k programminne ❿ Omprogrammerbar 100 10 000 ggr ❿ Billigare än fönsterkrets ❿ Programmerbar på kortet ❿ Vissa kan skriva i eget programminne ❾ EPROM ❿ Fönsterversion omprogrammerbar ❿ OTP (One time programable) billigare än Flash 7 8 Harvard / von Neumann CISC / RISC ❾ von Neumann (Motorola 705) ❿ Spar transistorer på chippet ❿ Ett minne för program och data ❾ CISC (Motorola 705, 61 instruktioner) ❿ Complex Instruction Set Computer ❿ En instruktion utför flera saker ❿ Instruktioner har olika längd ❾ Harvard (PIC) ❿ Snabbare ❿ Möjliggör pipelining ❿ Möjliggör olika instruktionsbredd ❾ RISC (PIC, 35 instruktioner) ❿ Reduced Instruction Set Computer ❿ Fler rader kod för samma funktion ❿ Långa instruktioner (Harvard) 9 10 Pipelining PIC-specifik maskinvara ❾ Möjligt vid Harvardarkitektur ❾ Ökar hastighet ❾ Möjlig fortsättning: Superskalär ❾ ❾ Watchdog ❾ EEPROM 11 12 2

Tidmätning ❾ ❿ 8 bitar, räknar ständigt upp ❾ Kan slöas ner av prescaler ❿ max 256 ggr => upp till 65536 cykler ❾ Använder intern klocka eller extern pinne ❿ Kan fungera som räknare Se option_reg (option, i C) för konfigurering 13 14 Exempelkod Felhantering Watchdog 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; void wait_timer(void) // Väntar på att timer räknar ut while(!t0if) ❿ Räknar ständigt upp (med egen oscillator) Resettar processorn när timern räknat ut ❿ Total återstart och initiering Såvida programmet inte resettar watchdogen först ❿ #define WatchDogClear() asm("clrwdt") ❿ Görs ej vid evig loop eller urspårning 15 16 Watchdog EEPROM Räknar ut på ca 18 ms (min 7) * 2 PS 17 18 3

Programmering av inbyggda system Assembler Vad är det? 19 20 Varför assembler? Varför C? P16F84: MOVF LEFT,W ; Flytta LEFT till W-registret 1 cykel 1 word XORWF RIGHT,W ; Jämför LEFT med RIGHT 1 cykel 1 word BTFSC STATUS,Z ; Om LEFT=RIGHT blir Z=1 1(2) cykel 1 word GOTO PLATTAN 2 cykler 1 word CLRF MOTORHASTIGHET 1 cykel 1 word GOTO SLUT 2 cykler 1 word PLATTAN: MOVLW 0xFF 1 cykel 1 word MOVWF MOTORHASTIGHET 1 cykel 1 word SLUT: GOTO SLUT 2 cykler 1 word void main(void) if (LEFT == RIGHT) MOTORHASTIGHET = 0xFF; else MOTORHASTIGHET = 0; while(1) 21 22 Vårt val: Kombinera! HI-TECH C ANSI-C void main(void) PORTA = 0; TRISA = 0; // Port A, ingång #asm BCF _STATUS,5 // Garantera bank 0 BSF _PORTA,0 // 4 µs puls BCF _PORTA,0 #endasm while(1) 23 24 4

MPLAB Anpassa MPLAB till HI-TECH 25 26 Torsdagens laboration: Programstruktur Initiering Tips från coachen ❾ Ju simplare, desto enklare ❿ Vänj er vid en skrivstil (indrag, måsvingar mm) ❿ Lär er få skrivsätt bra (C kryllar av varianter) ❿ Den som använder pekare får skylla sig själv Huvudprogram ISR ❾ Tänk på RAM-minnet ❿ Använd Char ❿ Små arrayer i RAM, hellre stora konstanter i ROM 27 28 5