630 likes | 773 Views
Efteruddannelse Embedded C. Modul 1 (Mandag den 19/4-2010). 07.01.2010. Modul 1. Indhold: Introduktion Den valgte platform (PIC18F Starter Kit 1) Udviklingsværktøj (MPLAB) Grundelementer i sproget C Afrunding på dagen. Præsentation af kurset ( Embedded C). Beskrivelse af kurset
E N D
EfteruddannelseEmbedded C Modul 1 (Mandag den 19/4-2010) 07.01.2010
Modul 1 • Indhold: • Introduktion • Den valgte platform (PIC18F Starter Kit 1) • Udviklingsværktøj (MPLAB) • Grundelementer i sproget C • Afrunding på dagen
Præsentation af kurset (Embedded C) • Beskrivelse af kurset • Plan og indhold for kurset
Praktiske oplysninger • Møde tider og skema: • Mandag til torsdag: • Vi starter med morgen kaffe 8.30 • Ca. 11.45 er der frokost • 15.30 slutter dagens modul • Fredag: • Her slutter dagens modul 12.30
Praktiske oplysninger • Kontakt informationer: • Skolen kan kontaktes pr. telefon på 72505900 • eller pr. email : noea@noea.dk • Skolens adresse er : • Sofiendalsvej 60, Postboks 71, 9100 Aalborg • Underviser kan kontaktes på tlf. 25266921 • Via mail: ihn@noea.dk • Eller via Messenger på ihn@ihn.dk
Praktiske oplysninger • Login til skolens netværk: • Hver kursist får tildelt et login til skolens netværk, ved første login skal password ændres, så man får et unik password. • Med sit password er det også muligt, at koble op til skolens trådløse netværk (det er et krav at man har en virus scanner installeret på ens maskine (hvis man bruger egen bærbar). • Undervisningsmateriale kan hentes fra skolens netværk fra serveren \\o2232 i kataloget \EmbeddedC_U16 • Fra internettet via http://public.noea.dk/EmbeddedC_U16/
Dropbox • Som en ekstra mulighed for, at hente (og udveksle) undervisningsmateriale og kodeeksempler vil der blive oprette en dropbox, som i via mail bliver indbudt til at tage del i. • Information om anvendelse af dropbox, samt nødvendig software kan hentes på: http://www.dropbox.com/
PIC18 Starter Kit Producent: Microchip Varenummer: DM180021 Pris: 60 USD
Features for PIC18F starter kit OnboardDebugger Virker sammen med MPLAB Mulighed for tilslutning af ekstern debuggerf.eksPICkit
Features for PIC18F starter kit Microcontroller: PIC18F46J50 • 64kbyte Flash program memory • 3776 byte Ram • nanoWatt XLP Technology • USB interface • Clock frekvens 48MHz • Lowcost
Features for PIC18F starter kit Capacitive Touch Buttons og scroll bar.
Features for PIC18F starter kit 2GB microSD-Kort Kan sammen med bootloader anvendes til at boote applications programmer fra fra.
Features for PIC18F starter kit Menu knap, anvendes b.la til at aktivere SD flash bootloader
Potentiometer der anvendes til at generere input spænding til A/D-konverter
Monochrom OLED display 128x64 pixel Grafisk og alfanumerisk
Features for PIC18F starter kit 3-aksers acceleration sensor BMA150
Features for PIC18F starter kit Mini-B USB til host
PIC18F46J50’s Features • Parallel Master Port (PMP) • Real-Time Clock and Calendar (RTCC) • USB DeviceCapability • Charge Time Measurement Unit (CTMU) • Master SynchronousSerial Port (MSSP) • EnhancedCapture/Compare/PWM (ECCP) • 10-Bit, 13-Channel Analog-to-DigitalConverter • TwoEnhanced USART • Peripheral Pin Select
Øvelse • Lav øvelserne i filen : • Lab1.docx • Findes her : \\o2232\EmbeddedC_U16\Opgaver
C’s Historie • C er udviklet i 1972 af Dennis RitchiefraBell Telephone Laboratoriesogdetskulleanvendesiforbindelse med en ny version af UNIX. • Det er siden hen blevet et meget anvendt programmerings sprog der er god til “lidt af hvert”. • Mange mere moderne sprog anveder samme syntaks som C, hvilket gør det lettere, at lære sig nye sprog.
Source filer (.c) Header filer (.h) • .c filer indeholder selve source koden • .h filen indeholder indeholderC erklæringer og makro-definitioner, der skal deles mellem flere source filer
lcd.h evt. main.h Eksempel på brug af header fil i C externvoidinitLcd(); externvoidwriteLcd(char *str); Definitioner, macroer og prototype erklæringer lcd.c main.c #include <stdio.h> voidinitLcd() { …. } voidwriteLcd(char *str) { ….. } #include <stdio.h> #include ”lcd.h” voidmain() { initLcd(); writeLcd(”Hello World”); …… …… }
Hvad kende tegner embedded program Nedenfor er opstillet nogle ”krav” eller mål vi gerne vil nå når vi laver embedded programmer (og nok også andre typer af programmer)
Eksempel på et simpelt C program #include <stdio.h> voidmain() { printf(”Dette er en lille test\n”); printf(”Dette bliver skrevet på næste linie”); getchar(); return 0; }
Gundbestandel i et C program (basic elements) • Et C program består af nogle grundlæggende bestanddele disse er listet nedenfor, der er brugt engelsk navne, men i parentes er den danske oversættelse skrevet: • Comments (Kommentarer) • Constants (Konstanter) • Variables (Variabler) • Expressions (Udtryk) • Operators (Operatorer) • Identifiers (Identifikatorer) • Statements (ordre, sætning) • Statement block (blok)
Comments Start på comments i c /* Slut på comments i C */ // betyder kommentar linien ud, er C++ syntaks Eks.: /* Dette er mit første program Programmet skriver helloworld */ Eks.: // Her er en linie med en comments
Constants En constant er en ”værdi” der, som navnet antyder ikke kan ændre sig. En konstant kan være tekst eller tal (gennem typisk i ”ROM”). Eks.: i = 100; Her er 100 en tal konstant; Eks.: ”Dette er en tekst” Her er vist et eksempel på en konstant tekst
Variables Er elementer der kan indeholde en værdi der kan ændre sig. Eks.: antal = 123; Her er antal en variabel i eksemplet bliver variablen tildelt værdien 123.
Expressions Et udtryk er en kombination af konstanter, variable og operatorer der tilsammen danner et udtryk der kan beregnes af computeren. Eks.: 123 + 20*(antal +10) Eks.: 10*cos(x)
Operators Der findes i C flere typer af operatorer boolske, binære og aritmetiske. Den sidste type er den vi normalt anvender når vi skal lave matematiske udtryk.
Identifiers Udover tal og operatorer kan et udtryk indeholde navne eller referancer til f.eks funktioner etc. Disse navne kaldes identifiers og skal overholde nogle regler. (Der skeldnes mellem store og små bogstaver) Første karakter i identifier: Karakterene A til Z og a til z _ (underscore) Efterfølgende karakterer: Karakterene A til Z og a til z _ (underscore) Tallene fra 0 til 9 Generelt må man ikke anvende speciale karakterer i identifiers
Statemets I C betegner en statement en ”komplet” instruktion eller kommando og afsluttes med et semikolon. Statements afvikles i den rækkefølge de er skrevet i programmet. Eks.: i = 7913; antal = 20*(i + 30);
Statement blocks En gruppe af statements kan tilsammen danne en blok (ved at placere dem mellem { }). En blok behandles som en statement. Eks.: for (i = 0; i < 10; i++) { antal = i; sum += antal; }
Funktioner i C I C kan programmer deles op i mindre bygge bloke kaldet funktioner, disse kan herefter kaldes når vi ønsker at gøre brug af dem i vores program. Eks.: int gennemsnit(int x, int y) { int resultat; resultat = (x+y)/2; return resultat; }
Data typer Heltals datatyper er datatyper der indeholder et heltal (!! det kan godt være et nummer på et symbol i ascii tegn tabellen). Komma tals datatyper (floating-point) er datatyper der indeholder et tal der er delt op i en heltals del og en decimaldel. I C skal variable erklæres før de kan anvendes, og ved erklæringen skal datatypen angives. (C er et såkaldet type stærkt sprog)
Little-endian format MPLAB-C anvender little-endian format når der gemmes data i memmory der er større end en byte
Float og double Range for Floating-Point Typer (MPLAB-C18)
IEEE-754 foating point format v = s × 2e × m Generel form • s = +1 (positive numbers and +0) when the sign bit is 0 • s = −1 (negative numbers and −0) when the sign bit is 1 • e = exponent − 127 (in otherwords the exponent is storedwith 127 added to it, alsocalled "biasedwith 127") • m = 1.fraction in binary (that is, the significand is the binarynumber 1 followed by the radix point followed by the binary bits of the fraction). Therefore, 1 ≤ m < 2.
Eksempel på float • I eksemplet vist ovenfor, er sign 0 s er positiv, exponent er 124 så e er −3, og endeligt er m 1.01 (binært, hvilket svarer til 1.25 i decimal). Talet er derfor +1.25 × 2−3, hvilket også kan skrives : +0.15625.