EDA 480 – Maskinorienterad Programmering

Slides:



Advertisements
Liknande presentationer
EDA 480 – Maskinorienterad Programmering
Advertisements

EDA 480 – Maskinorienterad Programmering
Hastighetens påverkan på koldioxidutsläppen
Här ser ni några sidor som hjälper er att lösa uppgifterna:
Exempel på grekiskt konsthantverk
Joomla © 2009 Stefan Andersson 1. Kontaktformulär  På varje seriös webbplats bör det finnas ett kontaktformulär.  Använd ej maillänkar, risk för spam!
MS Excel 2010 – Dag 2 Mahmud Al Hakim
1 Medarbetarenkät 2011 • 573 svar. 2 Kön 3 Jag är knuten till en klass, undervisningsgrupp eller barngrupp.
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Tillämpning av bolagsstyrningskoden vid årsstämmor 2005 och 2006.
Leif Håkansson’s Square Dancer Rotation
EDA Digital och Datorteknik
MS Excel 2007 Dag 1 Lärare: Mahmud Al Hakim. Agenda 1.Börja arbeta med Excel Hantera arbetsböcker 3.Formler 4.Formatera 5.Diagram Att läsa: sid.
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
V E R S I O N N R 1. 2 T A V E L I D É E R I M I L J Ö.
Inloggning till Landstinget Kronoberg via Citrix
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Sidnummer1 Svensk utgivning 2011 enligt Dewey Hur blev det? Harriet Aagaard Olof Osterman.
Skånedatabasen & Region Skånes tillgänglighetsmodell
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Realtidsprog. - Anders Arvidsson1 Realtidsprogrammering En introduktion – Implementering (med exempel från PIC)
NyföretagarCentrums resultat 2013 NYFÖRETAGARCENTRUM – RESULTAT 2013.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Droger och spel 2006Gymn åk2 1 Elever som röker (dagligen eller ibland)
Droger och spel Elever som röker (dagligen eller ibland)
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
Pekare och speciell programstruktur i inbyggda system
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Postmilen båda banorna
(2) Avvikelse från std. kostnad (5) Andel inv 65+ med insats (4) Andel 80+ i befolkningen (1) Kronor/ invånare (65+) (3) Kronor/ brukare (6) Ytterfall.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Hittarps IK Kartläggningspresentation år 3.
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
ÖVERSLAGSRÄKNING.
TÄNK PÅ ETT HELTAL MELLAN 1-50
Grundskolan år 9 Droger och spel 2008 BILD 1 Elever som röker (dagligen eller ibland)
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Best pictures on the internet 2007 Awards 1http:// Är vänsteralliansen trovärdig i Norrköping.
Enkätresultat för Fritidshem Elever 2014 Skola:Fritidselever, Gillberga skola.
Innehåll, kommunpresentation 3. Rangordning av ordningsstörningar (fråga 1) 4. Problem med nedskräpning (fråga 1a) 5. Problem med skadegörelse (fråga 1b)
1(31) Ett omdiskuterat ämne. Vad är det som händer? 2.
Best pictures on the internet 2007 Awards 1http:// (s), (v), och (mp) i Norrköping, gillar inte att vi använder grundlagarna.
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
Täckningsgrad Dec 2014 – feb 2015 Täckningsgrad Dec 2014 – feb 2015.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Munkedal 2009 Sveriges Kommuner och Landsting Signild Östgren Leif Klingensjö.
Styrteknik 7.5 hp distans: SFC Introduktion SFC_A:1
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Styrteknik 7.5 hp distans: SFC Introduction PLC5A:1 Bilder SFC = Sequential Function Chart Language SFC är ett grafiskt programspråk som används.
Gymnasieskolan år 2 Droger och spel 2008 BILD 1 Elever som röker (dagligen eller ibland)
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
BVForum - en genomgång för revisorer Sören Thuresson.
Bild 1 Prognos för länets arbetsmarknad Stefan Tjb.
Grundskola Elever 2013 Grundskoleenkät - Elever Enhet: Gillberga skola.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
När infaller Julafton och hur ofta?
Robotprogrammering med Arduino Robot
Nytt assembler-projekt, steg-för-steg
Presentationens avskrift:

EDA 480 – Maskinorienterad Programmering 2009/2010 Genomgång av laborationer: ”Programutveckling i assembler” Arbetsbok för MC12, kapitel 4 Genomgång av laborationer

Laborationsmoment 2 - En Borrautomat Tangentbord för borrkommando Operatör Mikrodator Anpassnings-elektronik Borrmaskin Klocka Genomgång av laborationer

Borrmaskin-Robot Borrmotor med ON/OFF knapp Sensor för borr i topp- eller bottenläge Arbetsstycke Sensor för detektering av referensmärke på arbetsstycke Tryckfjäder för höjning av borr (Dolt) Kretskort med effektelektronik och anslutning mot styrkort för borrmaskin. Stegmotor för rotation av arbetsstycke. Solenoid för sänkning av borr Genomgång av laborationer

Simulatorn för borrmaskinen New disc: Här väljer du olika arbetsstycken Indikator för Motor On Control-fönster: Styrord till borrmaskinen Indikator för Alarm Status-fönster: Statussignaler från borrmaskinen Arbetsstycke Borrade hål märks ut Genomgång av laborationer

Specifikation · starta borrmotorn · stoppa borrmotorn · sänk borret · höj borret · vrid (stega) arbetsstycket ett steg · vrid (stega) arbetsstycket till referenspositionen · borra ett hål · borra hål längs cirkeln enligt ett bestämt mönster. Genomgång av laborationer

Genomgång av laborationer

Styrord till borrmaskinen Utport: Drill Control 7 1 2 3 4 5 6 stegpuls borrmotor fram/back solenoid larmsignal Bit 4 = 1: Larm på Bit 3 = 1: Borret sänks Bit 2 = 1: Borrmotorn roterar Bit 1 = 1: Medurs vridning Bit 0: Pos flank Stegpuls Logiknivå: ”Aktiv hög” Att göra ”RESET” på borrmaskinen således: LDAA #0 ; Passiva signaler STAA $400 --- Genomgång av laborationer

Statusord från borrmaskinen Anm: Statusporten ansluts till adress $600 i laborations-systemet Inport: Drill Status 7 1 2 3 4 5 6 referensposition borr uppe Bit 2 = 1: Borr i bottenläge Bit 1 = 1: Borr i toppläge Bit 0 = 1: Referensposition borr nere Logiknivå: ”Aktiv hög” Genomgång av laborationer

Testförfarande Uppgift 74 DSInput EQU $600 ; Dip Switch Input   DSInput EQU $600 ; Dip Switch Input DCtrl EQU $0400 ; Drill Control Output DStatus EQU $0401 ; Drill Status Input Loop LDAA DSInput ; Läs strömbrytare STAA DCtrl ; Ge styrord LDAB DStatus ; Läs status BRA Loop Genomgång av laborationer

Villkorlig assemblering ger korrekta portadresser ; Definiera macro ’SIM’ för test i simulator  #define SIM DSInput EQU $600 ; Dip Switch Input DCtrl EQU $0400 ; Drill Control Output #ifdef SIM DStatus EQU $0401 ; Drill Status Input #else DStatus EQU $0600 ; Drill Status Input #endif Anm: ”Dip Switch Input” och borrmaskin kan inte användas samtidigt i laborationssystemet (MC12). Genomgång av laborationer

Använd USE-direktivet ; DRILLDEFS.S12 DSInput EQU $600 ; Dip Switch Input DCtrl EQU $0400 ; Drill Control Output # ifdef SIM DStatus EQU $0401 ; Drill Status Input # else DStatus EQU $0600 ; Drill Status Input # endif ; DTEST1.s12 #define SIM USE ”DRILLDEFS.S12” Loop LDAA DSInput ; Läs strömbrytare STAA DCtrl ; Ge styrord LDAB DStatus ; Läs status BRA Loop Anm: Både DRILLDEFS och IODEFS förekommer som namn här i arbetsboken, använd endast DRILLDEFS.S12 Genomgång av laborationer

Inledande uppgift med borrmaskinen ; Dtest2 USE DRILLDEFS.S12 ORG $1000 LDAA #0 ; Reset STAA DCtrl JSR TillRefPos JSR Borra JSR Vrid1steg JSR GeLarm Loop: BRA Loop Vrid1steg: RTS TillRefPos: RTS Borra: RTS GeLarm: RTS Arbetsstycket vrids till referensposition. Hål borras Arbetsstycket vrids medurs ett steg Arbetsstycket vrids medurs tre steg En larmsignal ges som indikation på att uppgiften är klar. Genomgång av laborationer

Att vrida arbetsstycket Uppgift 80 b1←0 b0←0 b0←1 Genomgång av laborationer

Att borra ett hål b2←1 b3←1 b2=1 ? b3←0 b2←0 Genomgång av laborationer

Att vrida arbetsstycket till referenspositionen Genomgång av laborationer

Att bara ändra en bit i taget * Läs nuvarande styrord LDAA DCtrl * Nollställ lämplig bit ANDA #xx * Skriv nytt styrord STAA DCtrl ;sekvensen är funktionellt ;likvärdig med: BCLR #~xx,DCtrl Fungerar inte här ty porten är ”icke läsbar” utport… Genomgång av laborationer

Kopia av styrordet Variabel DCCopy ska hela tiden ha samma värde som DCtrl hade haft om porten varit läsbar… För att nollställa en bit används nu: LDAA DCCopy ANDA #Bitmönster STAA DCtrl STAA DCCopy för att ettställa en bit används: ORAA #Bitmönster DCCopy RMB 1 Genomgång av laborationer

Subrutiner för att manipulera styrregistret OUTONE och OUTZERO * Subrutin OUTONE. Läser kopian av * borrmaskinens styrord på adress * DCCopy. Ettställer en av bitarna och * skriver det nya styrordet till * utporten DCTRL samt tillbaka till * kopian DCCopy. * Biten som nollställs ges av innehållet * i B-registret (0-7) vid anrop. * Om (B) > 7 utförs ingenting. * Anrop: LDAB #bitnummer * JSR OUTONE * Utdata: Inga * Registerpåverkan: Ingen * Anropade subrutiner: Inga ”bitnummer” = 0..7 7 6 5 4 3 2 1 Genomgång av laborationer

Realtid - Fördröjningar Simulator STEP RUN RUN FAST Hårdvara Instruktioner/ sekund ? 10 1000 1 000 000 Genomgång av laborationer

Fördröjningar i mekaniska delar Starta borrmotorn (vänta tills den är uppe i varv, c:a 1 sekund) Vrid arbetsstycket ett steg (vänta tills det har vridits till rätt position, ca 200 ms) Lyft borret (vänta tills borret har kommit ovanför arbetsstycket, ca 300ms) etc  Genomgång av laborationer

************************************** * SUBRUTIN – DELAY * Beskrivning: Skapar en fördröjning om * ANTAL x 500 ms. * Anrop: LDAA #6 Fördröj 6*500ms= 3s * JSR DELAY * Indata:Antal intervall,om 500 ms i A * * Utdata: Inga * Register-påverkan: Ingen * Anropad subrutin: Ingen. ************************************** Genomgång av laborationer

Programmerad tidsfördröjning DELAY PSHA PSHX TSTA BEQ DExit ; Fördröjningsvärde noll   ; Konstanten 'Konst' måste ; bestämmas... ALOOP LDX #Konst XLOOP LEAX -1,X NOP CPX #0 BNE XLOOP DECA BNE ALOOP ; Ytterligare fördröjning DExit PULX PULA RTS Programmerad tidsfördröjning Genomgång av laborationer

Använd villkorlig assemblering #ifdef SIM #ifdef RUNFAST * Konstant vid Run Fast Konst EQU XXXX #else * Konstant vid Run Konst EQU YYYY #endif Konst EQU ZZZZ Bestäms experimentellt med simulator Uppgift 90 Bestäms experimentellt vid laboration Genomgång av laborationer

Tangentbord ML15 Bit 7, DAV: Data Valid; Statusbit som anger nedtryckt tangent b7=1: Ingen tangent är för tillfället aktiverad på tangentbordet. b7=0: En tangent är aktiverad   Bit 6-4, 0: Används ej. Bit 3-0, B3-B0: Tangentnummer; Anger aktuell tangentnedtryckning. Genomgång av laborationer

Uppgift 91 Genomgång av laborationer

Borrmaskinrobot Tangent nr Operation subrutin 0 starta borrmotorn START 1 stoppa borrmotorn STOP 2 sänk borret DOWN 3 höj borret UP 4 rotera arbetsstycket medurs ett steg STEP 5 borra ett hål DRILL 6 stega arbetsstycket till referensposition REFPO 7 borra hål längs cirkeln enligt mönster AUTO Genomgång av laborationer

Rutinen COMMAND Uppgift 94 Genomgång av laborationer

********************************** * SUBRUTIN – COMMAND * Beskrivning: Rutinen avgör vilken * kommandosubrutin som skall * utföras och anropar denna. * Anrop: JSR COMMAND * Indata: Kommandonummer i reg A * Utdata: Inga * Reg-påverkan: A,X * Anrop subr: SUB0 - SUB7 ********************************** * Tabell med subrutinadresser JUMPTAB FDB SUB0,SUB1,SUB2,SUB3 FDB SUB4,SUB5,SUB6,SUB7 * subrutiner för test, byts senare * ut mot START, STOP, DOWN etc SUB0 MOVB #0,ParOut RTS SUB1 MOVB #1,ParOut SUB2 MOVB #2,ParOut SUB3 MOVB #3,ParOut SUB4 MOVB #4,ParOut SUB5 MOVB #5,ParOut SUB6 MOVB #6,ParOut SUB7 MOVB #7,ParOut MAX EQU 7 COMMAND: * giltigt värde? CMPA #MAX BHI COMEX * hopptabellens basadress LDX #JUMPTAB * offset är 2 bytes per adress ASLA * hämta subrutinens startadress LDX A,X * utför subrutin JSR ,X * återvänd från kommandorutin COMEX: RTS Genomgång av laborationer

Filen MAIN1.S12 STRUKTUR Inkludera definitionsfil Initiera systemet * Definitioner USE IODEFS.S12 ORG Start --- ************************************ * Huvudprogram * Invänta vald operation Loop: JSR KEYB1 NOP * Utför vald operation JSR COMMAND BRA Loop COMMAND --- USE KeyML15.S12 * Placera alla variabler här DCCopy RMB 1 STRUKTUR Inkludera definitionsfil Initiera systemet Huvudprogram Subrutinen COMMAND Inkludera fil (filer) med ytterligare subrutiner. Plats för variabler Genomgång av laborationer

Att testa filen MAIN1.S12 SUB0 MOVB #0,ParOut RTS SUB1 MOVB #1,ParOut Genomgång av laborationer

Övriga, funktioner (MAINxx) testas med tangentbord och borrmaskin Genomgång av laborationer

Rutiner START och STOP * SUBRUTIN START. Subrutinen startar * borrmotorn väntar därefter i 500 ms * före återhopp så att borret uppnår * rätt hastighet. * * Anrop: JSR START * Indata: Inga * Utdata: Inga * Registerpåverkan: Ingen * Anropade subrutiner: OUTONE * DELAY Ändringar i huvudprogram... JUMPTAB FDB START,STOP,SUB2,SUB3 FDB SUB4,SUB5,SUB6,SUB7 ********************************** * subrutiner för test, byts senare * ut mot START, STOP, DOWN etc START ..... RTS STOP ..... SUB2 MOVB #2,ParOut ..... * SUBRUTIN STOP. Subrutinen stannar * borrmotorn. * * Anrop: JSR STOP * Indata: Inga * Utdata: Inga * Registerpåverkan: Ingen * Anropade subrutiner: OUTZERO Genomgång av laborationer

Laborationsmoment 2 Pseudoparallell exekvering Process 1 Tangentbord för borrkommando Anpassnings-elektronik Borrmaskin Mikrodator Klocka Operatör Process 2 Genomgång av laborationer

Processbyte En processor – flera program Init variabler kod P1 data/stack P1 kod P2 data/stack P2 kod P3 data/stack P3 kod P4 data/stack P4 Ledigt... Process1 Process 2 Process 3 Process 4 En processor – flera program – körs ”samtidigt” (pseudoparallellt) HDW krav: En avbrottskälla som ger regelbundna avbrott (Ex Timer) SW krav: En avbrottsrutin (SWITCH) som växlar process C1 1D R Puls generator 400Hz 1 Q' Till processorns IRQ’ CS’ vid skrivning Genomgång av laborationer

Processtillstånd t READY RUNNING PROC 4 PROC 3 PROC 2 PROC 1 INIT 400Hz 1 Q' IRQ’ CS’ IRQ IRQ PROC 4 PROC 3 PROC 2 PROC 1 INIT SWITCH READY IRQ READY IRQ READY RUNNING 2,5ms 2,5ms 2,5ms T=0 μs μs μs RTI RTI RTI t Genomgång av laborationer

Viktigt: I-flaggan måste vara 0 $2FF7 SP PCL PCH YL YH XL XH ACCA ACCB Init variabler kod P1 data/stack P1 kod P2 data/stack P2 kod P3 data/stack P3 kod P4 data/stack P4 Ledigt... Process1 Process 2 Process 3 Process 4 $2FF7 SP PCL PCH YL YH XL XH ACCA ACCB CCR $3000 $3000 Genomgång av laborationer

Processnummer ”Running” Init variabler kod P1 data/stack P1 kod P2 data/stack P2 kod P3 data/stack P3 kod P4 data/stack P4 Ledigt... Process1 Process 2 Process 3 Process 4 P1spH P1spL P2spH P2spL P3spH P3spL P4spH P4spL 0,1,2,3 SPProc1 SPProc2 SPProc3 SPProc4 ProcNR Stackpekare Process 1 Stackpekare Process 2 Stackpekare Process 3 Stackpekare Process 4 Processnummer ”Running” Genomgång av laborationer

Initial stack för process och ”processbyte”: ORG TopOfStack-9 Istack: FCB $C0 ; Initialt CCR FCB 0 ; Initialt B FCB 0 ; Initialt A FDB 0 ; Initialt X FDB 0 ; Initialt Y FDB Start ; Initialt PC ORG Code LDD #Istack STD SPProc SP PCL PCH YL YH XL XH ACCA ACCB CCR IRQHandler: ; Spara ”Running” stackpekare STS ... ; Välj ny ”Running” LDS ... ; Återstarta RTI Genomgång av laborationer