#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET;
|
|
- Inga Hansson
- för 8 år sedan
- Visningar:
Transkript
1 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. C är ett standardiserat sätt att skriva program. C ger betydligt större möjlighet att strukturer sitt program. C ger möjligheter att återanvända kod i större utsträckning #include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET; void main(void) if (LEFT == RIGHT) MOTORHASTIGHET = 0xFF; else MOTORHASTIGHET = 0; while(1) continue; P16F84: MOVFW LEFT ; Flytta LEFT till W-registeret 1 cykel 1 word XORWF RIGHT,W ; Jämför LEFT med RIGHT 1 cykel 1 word BTFSC Z ; Om LEFT=RIGHT blir Z=1 2 cykel 1 word GOTO PLATTAN 1 cykel 1 word CLRF MOTORHASTIGHET 1 cykel 1 word GOTO SLUT 1 cykel 1 word PLATTAN: MOVLW 0xFF 1 cykel 1 word MOVWF MOTORHASTIGHET 1 cykel 1 word SLUT: GOTO SLUT 1 cykel 1 word
2 Att arbeta med flyttal och matematiska funktioner i assembler kräver stora kunskaper om assembler programmering. I PIC-C finns detta färdigt. Nackdelen är dock att kompilatorn kräver mycket minne i processorn för att realisera funktionerna. Att utföra följande program kräver 1175 words program ROM. 55 bytes RAM. Om man byter ut raden till. Kommer programmet att svälla endast till 1315 byte ROM och 63 byte RAM. Slutsatsen av detta bör bli att flyttal och tyngre matematiska funktioner bör användas med förstånd. #include #include #include <pic.h> <sys.h> <math.h> #define C /180.0 double i,svar; void main(void) for (i=0;i<=180;i+=10) svar = sin(i*c); Building MATH.HEX... Compiling MATH.C: Command line: "E:\HT-PIC\BIN\PICC.EXE -G -O -Zg9 -D32-16C65 G:\PIC\ROBOTLAB\MATH.C" Enter PICC -HELP for help Memory Usage Map: User segment: $ $0038 $0026 (38) bytes Program ROM: $ $0012 $0013 (19) words Program ROM: $ $080D $0497 (1175) words Bank 0 RAM: $ $0056 $0037 (55) bytes Build completed successfully.
3 För att kontrollen över tider i ett C-program kan timern användas. Ett alternativ till detta kan vara att inkludera assembler i programmet. Följande program låter en utgång vara hög under 9cykler, vid 4MHz kristall blir detta 9us. Detta görs enligt följande. #include #include <pic.h> <sys.h> void main(void) PORTA = 0; TRISA = 0; #asm BSF NOP NOP NOP NOP NOP NOP NOP NOP BCF #endasm porta,0 porta,0 while(1) continue;
4 MPLAB är en integrerad utvecklings miljö för alla PIC-processorer. Det finns en editor att skriva programmet i. Det finns projekthantering för att underlätta utvecklings arbetet. Programmet innehåller även simulerings möjlighet så som stimulerning av portar, möjlighet att titta på variableri sk watch fönster. Från MPLAB sker även assemblering eller kompilering. Den eventuella assemblatorn eller kompilatorn finns inte i MPLAB. Utan dessa ligger som externa program som anropas från MPLAB. PIC-C kommer från tredjepartsleverantören Hi-TECH. MPLAB Stödjer detta program vilket medför att C kan skrivas, kompileras och simuleras i MPLAB utan alltför stora problem.
5 Nedan följer en kort genomgång av olika begrepp för C-programmering. Detta skall läsas i anslutning med robot_c.c Initiering Huvudprogram ISR Efter reset kommer processorn att anropa funktionen main(). I denna funktion skall initiering och huvudprogram ligga. Vid interruptförfrågan exekveras funktionen interrupt(). Nedan följer olika exempel på slingor. Alt1. Alt2 Alt3 for (x=0;x<10;x++) Led^=1; X=10 While( x>0 ) Led^=1; x--; Do Led^=1; x++; while( x<10 )
6 IF-else satsen används för att utrycka beslut. Den skrivs på formen if (uttryck) sats; else if (uttryck) sats; else if (uttryck) sats; else sats; Switch -satsen är ett flevägsval som prövar om uttrycket övensstämmer med ett at ett antal konstanta heltalsvärden och förgrenar sig där efter. Switch (uttryck) case konstantuttryck: satser; case konstantuttryck: satser; default: satser; Genom att kunna ersätta värden, uttryck,tecken mm med en egen vald förklaring kan programmet göras mer lättläst. # define timervalue 217 När kompilatorn hittar timervalue i programkoden, kommer den att ersätt uttrycket med talet 217.
7 I Hitec-C kan följande variabel deklarationer göras. bit 1 boolean char 8 signed or unsigned integer unsigned char 8 unsigned integer short 16 signed integer unsigned short 16 unsigned integer int 16 signed integer unsigned int 16 unsigned integer long 32 signed integer unsigned long 32 unsigned integer float 24 real double 24 or 32 real Deklarationer kangöras flera sätt. Vi kommer att behandla:globala, lokala, automatiska, statiska. Globala: Deklarationen görs utanför en funktion.( I början på programmet) Variabeln kommer därmed att bli tillgänglig för hela programmet. Nackdelen är att variabeln tar upp plats även då den inte används. Lokal: Deklareras inuti funktionen. MPLAB kan ej visa dessa variabler i sitt Watch-fönster. Talrepresentation kan ske på följande sätt: Binär Oktal Decimal Hexadecimal Siffrorna 0 och 1 följt av B Ex b Siffrorna 0 till 7 följt av O,Q,o,q Ex. 18Q Siffrorna 0 till 9 följt av D,d eller ingenting Ex. 102d Siffrorna 0 och 9, bokstäverna A till F inledande med 0x alt följt av H,h Ex. 0x2F 2Fh
8 ex * multiplikation + addition - subtraktion / division = lika med > större än >= större än eller lika med < mindre än <= mindre än eller lika med <> inte lika med mod modulus & Bitvis AND ^ Bitvis XOR Bitvis OR not Bitvis 1-komplement << or shl Skifta vänster >> or shr Skifta höger rol Rotera vänster ror Rotera höger svar = (A>>5)&1; // Skiftar bit 4 till bit0 och maskar sedan ut bit 0 Om A sätts till b kommer svar att bli 1.
9 C har två möjligheter att öka och minska en variabelsvärde. För att öka används ++ och för att minska --. Ex. n=5; x = n++; // Efter att denna rad är exekverad kommer x =5 och n = 6. n=5; x = ++n; // Efter att denna rad är exekverad blir x=6 och n=6. Raden utförs alltså med prioritet från vänster. Uttryck som i = i + 2; kan skrivas på ett mer kompakt sätt. i += 2; Uttrycket x *= y + 1; Kommer att betyda x = x * (y+1)
10 Funktioner används, för att få en bättre struktur och att återanvändning av kod skall underlättas. En funktion kan ha in- och utparametrar, detta är dock inte nödvändigt. Hur funktioner skrivs visas med följande exempel. Programbeskrivning: Talen A och B skall multipliceras med varandra. Svaret skall sedan tilldelas variabeln C. Observera att Variablerna A och B är char medan C är integer. #include #include <pic.h> <sys.h> char A,B; int C; int mult(char a,char b) return a*b; // a,b är lokala variabler // Multiplicerar talen a och b med varandra void main(void) A=10; B=212; C=mult(A,B); while(1) continue;
11 Ett realtidssystem läser in och bearbetar data inom samma tidsintervall som utmatning av data skall ske. Då vi använder en enchipsdator kommer så gott som samtliga applikationer att vara i realtid. Utmaningen blir att skriva program som kan få processorn att utföra flera saker samtidigt. Multitasking. Ett mindre lyckat exempel på detta är Windows Formatering av diskett samtidigt som man skriver i någon ordbehandlare. Datorn formaterar en liten stund, för att sedan släppa över kontrollen till ordbehandlaren för ett tag. En temperaturlogger skulle kunna vara ett exempel på icke realtidssystem. Den lagrar data, som vid ett senare tillfälle bearbetas. Multitasking i t.ex en PIC16F84, realiseras genom att dela upp programmet i mindre uppgifter. Dessa måste sedan kommunicerar med varandra via flaggor och register. Uppgifterna utförs i tur och ordning och efter det behov som applikationen kräver det. Då flera uppgifter skall göras år programmet aldrig stanna för att vänta på en händelse skall inträffa. EX En lysdiod skall togglas när knappen trycks ner. while(1) while(knapp==0) // Väntar tills knapp är tryckt continue Led ^=1; while(knapp==1) // Väntar tills knapp är släppt continue while(1) if (knapp ==1 && knappold ==0) Ã'HWHNWHUDUÃDWWÃNQDSSHQV Knapptryckt = 1;ÃÃWLOOVWnQGÃKDUÃJnWWÃIUnQÃÃWLOOÃ Knappold = knapp; if (Knapptryckt == 1) Led ^=1; Knapptryckt = 0;
12 För att illustrera hur ett realtidsprogram kan, ska vi titta på en mindre larm konstruktion. Funktionen är som följer: Larmet skall ha en till- och frånbrytare som är momentan. Med andra ord vid första trycket skall larmet slås på, vid andra trycket skall det slås av. Larmet har en larmkontaktingång som kan utlösa larmet. Detta kan bara hända om larmet är påslaget. Det skall finnas en lysdiod som indikerar påslagen enhet, samt en blinkande med frekvensen 2Hz för indikering av utöst larm. För att åstadkomma detta bryter vi ner programmet i mindre funktionsblock. Se skiss. void Avstuds (): Eliminerar kontaktstudsar. void LarmTill(): Varje gång Till/Från brytaren går från 0 till 1 togglar flaggan TILL. void Larm(): Ser till att det bara går att utlösa larmet när flaggan TILL = 1; void LarmLed(): Ger blink funktionen till Lysdioden larmsignal. Nu kan varje funktion programmeras var för sig. Dessa kan på ett betydligt lättare sätt simuleras och testas var för sig.
13 PB.0 Larm Till/Från brytare LarmTillIn void Avstuds() Avstudsning LarmTillAvstuds void LarmTill() 1 bit räknare PB.2 Lysdiod Larm Till / Från Till void Larm() Aktiverad void LarmLed() PB.3 PB.1 Larmkontakt Larmkontakt Lysdiod Larmsignal void LedOsc() osc. 2 Hz Blink #include #include <pic.h> <sys.h> /* Programbeskrivning: * * Enkelt larm * * Larmet kan kopplas till eller från med hjälp av momentan strömställare. * En lysdiod indikerar att larmet är påslaget. * Då larmkontaken sluts kommer en lysdiod att börja blinka med frekvensen 2Hz. * För att larmet skall utlösas måste Larmet vara påslaget och larmkontakten sluten. * * Larm Till/Från Ingång PORTB.0 * Larmkontakt Ingång PORTB.1 * Lysdiod Till/från indikering Utgång PORTB.2 * Larmindikering Utgång PORTB.3 */ #define #define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit)) FLAGBIT(adr, bit) ((unsigned)(&adr)*8+(bit)) #define timervalue -62 static volatile unsigned char 0x20; static volatile unsigned char 0x21; static bit PORTBIT(PORTB, 0); static bit PORTBIT(PORTB, 1); static bit PORTBIT(PORTB, 2); static bit PORTBIT(PORTB, 3); static bit FLAGBIT(FLAG1, 0); static bit FLAGBIT(FLAG1, 1); static bit FLAGBIT(FLAG1, 2); static bit FLAGBIT(FLAG1, 3); static bit FLAGBIT(FLAG1, 4); static bit FLAGBIT(FLAG1, 5); static bit FLAGBIT(FLAG1, 6);
14 static bit FLAGBIT(FLAG1, 7); static bit FLAGBIT(FLAG2, 0); int LedTimer; char AvstudsTimer;
15 void interrupt timer(void) TMR0 = timervalue; LedTimer++; if (AvstudsStart == 1) AvstudsTimer++; T0IF = 0; void Avstuds(void) LarmTillInTemp = LarmTillIn; switch(larmtillavstuds) case 0: if ((LarmTillInTemp ==1) && (LarmTillInOld == 0)) AvstudsStart = 1; else if ((LarmTillInTemp == 0) && (LarmTillInOld == 1)) AvstudsTimer = 0; AvstudsStart = 0; if (AvstudsTimer > 10) AvstudsTimer = 0; AvstudsStart = 0; LarmTillAvstuds = 1; break; case 1: if ((LarmTillInTemp ==0) && (LarmTillInOld == 1)) AvstudsStart = 1; else if ((LarmTillInTemp == 1) && (LarmTillInOld == 0)) AvstudsTimer = 0; AvstudsStart = 0; if (AvstudsTimer > 10) AvstudsTimer = 0; AvstudsStart = 0; LarmTillAvstuds = 0; break; default:break; LarmTillInOld = LarmTillInTemp;
16
17 void LarmTill(void) TempBit=LarmTillAvstuds; if (TempBit == 1 && LarmTillAvstudsOld==0) Till^=1; LarmTillAvstudsOld =TempBit; void Larm(void) if (Till == 1 && LarmKontakt == 1) Aktiverad = 1; else Aktiverad = 0; void LedOsc(void) if (++LedTimer>250) LedTimer = 0; Blink ^= 1; void LarmLedTill(void) LarmLed = Blink & Aktiverad;
18 main() FLAG1 = 0; PORTA = 0x00; PORTB = 0x00; TRISA = 0x00; TRISB = 0b ; // PA bit 0 ingång PSA = 0; // Använd prescaler till TMR0 PS0 = 1; // Prescaler satt till dela med 16 PS1 = 1; PS2 = 0; T0IF = 0; T0CS = 0; TMR0 = timervalue; T0IE = 1; GIE = 1; // Väljer intern oscillator // nollställ tmr0 16*62 = 992uS 1mS while(1) // Här börjar huvudprogrammet Avstuds(); LarmTill(); Larm(); LedOsc(); LarmLedTill();
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 merLathund. 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 merRealtidsprogrammering. En introduktion Implementering (med exempel från PIC)
Realtidsprogrammering En introduktion Implementering (med exempel från PIC) Utan timing Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt
Läs merINGENJÖ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 merLathund. 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 merFö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 merMicroprocessor / 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 merProgrammera 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 merEnkla 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 merMicroprocessor / 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Ö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 merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Läs merKompilering 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 merRealtidsprogrammering
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 merProgramexempel 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 merF4. 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 merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merÖ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 merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merKlassdeklaration. 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 merDagens 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 merDatorteknik 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 merElektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod
Läs merAtt 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 merLEU240 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 merTentamen 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 merData, typ, selektion, iteration
Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens
Läs mer'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 mer1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler
1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp
Läs merDagens 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 merKontrollskrivning 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 merAVR 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 merSystemkonstruktion 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 merSMD 134 Objektorienterad programmering
SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning
Läs merTwincat: PLC Control
Dokument Förklaring Dat. Revision KI-221-003-003 Kom igång med trukturerad Text 080402 1.0 Twincat: PLC Control Kom igång med Strukturerad Text (ST) programmering 1. Kod exempel. a. Exemplen som demonstreras
Läs merGPT 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 merFöreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera
Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på
Läs merLaboration 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 merEn kort text om programmering i C.
En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,
Läs merProgrammering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
Läs merAnsvarig 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 merGRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse
GRUNDER I VHDL Innehåll Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse KOMPONENTMODELL Modell för att beskriva komponenter Externt interface Intern funktion
Läs merDigitala 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 merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Läs merNå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 merProgrammering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010
Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är
Läs merF2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander
F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng
Läs merVariabler och konstanter
Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!
Läs mer2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik
2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det
Läs merDessa 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 mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val
732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==
Läs merGrunderna i stegkodsprogrammering
Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer
Läs merLö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 merLaboration 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 merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Läs merEnchipsdatorer 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Ö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 merProgrammering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Läs merF5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
Läs merF5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data
Läs merC++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen
C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
Läs merTDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 2 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin, 2018 Outline Emacs Introduktion till Objektorienterad Programmering Introduktion till Java Variabler
Läs merPlanering Programmering grundkurs HI1024 HT 2014
Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att
Läs merI Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Läs merGrundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Läs merObjektorienterad programmering Föreläsning 4
Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion
Läs merPascal... Pascal. Pascal... Pascal...
... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs mer"Crash Course in Programming"
"Crash Course in Programming" Denna genomgång har fokus på programmering. Den följer PBasic-syntaxen för Basic Stamp II, men är i övrigt i stort sett frikopplad från BS2. Vissa aspekter som tas upp följer
Läs merFöreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden Nyckelord I Java abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw
Läs merPascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt
Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merProgramallokering. 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 merEffektpedal 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 merEtt 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 merFöreläsning 2: Avlusning och antilustekniker
2D1458, Problemlösning och programmering under press Föreläsning 2: Avlusning och antilustekniker Datum: 2007-09-11 Skribent(er): Emil Hesslow, Stefan Pettersson Föreläsare: Per Austrin Föreläsningen handlade
Läs merOutline. 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 merOutline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler
Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa
Läs merLogik och kontrollstrukturer
Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch
Läs merParameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Läs mer#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 mer7HQWDPHQLNRQVWUXNWLRQVPHWRGHU '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 merAssemblerprogrammering för ARM del 2
Assemblerprogrammering för ARM del 2 Ur innehållet Programflöde Subrutiner, parametrar och returvärden Tillfälliga (lokala) variabler Läsanvisningar: Arbetsbok kap 2 Quick-guide, instruktionslistan Assemblerprogrammering
Läs merITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Läs merLoopar och datatyper. Föreläsning 3
Loopar och datatyper Föreläsning 3 Dagens kluringar int x; printf("ange x:"); scanf("%d",&x); if(/*fyll i kod*/) printf("du angav x mellan 7 och 14"); int i=0; if(i++) i++; printf("%d",i++); //vad skrivs
Läs merArduinokurs. 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 merGrundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Läs merArduinokurs. 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 merLARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall
LARMANLÄGGNING Digitala Projekt, EITF11 Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall 1. Sammanfattning Vi har byggt ett larm vars syfte är att användas i hemmet. Larmet använder
Läs merHantering 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Övning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
Läs merInledande programmering med C# (1DV402) 27+15=42 1 (22)
27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll
Läs merHö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 merI denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.
Laboration:. Jämförelser mellan assembler och C. 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. Förberedelser:
Läs merOperatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera
Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merÖvning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler
Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-
Läs merIntroduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
Läs merC-programmering, föreläsning 1 Jesper Wilhelmsson
C-programmering, föreläsning 1 Jesper Wilhelmsson Introduktion till C Variabler, Typer, Konstanter Operatorer Villkorliga satser if-else, switch Loopar for, while, do... while Inmatning och utmatning stdin
Läs merVälkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA
Välkommen till Datastrukturer, algoritmer och programkonstruktion eller DOA Jag: Christer Labbassar: Caroline: Johan: Agenda, före lunch Inledning om DOA-kursen Backspegel Mål Syfte Examination Om lärande
Läs mer