William Sandqvist william@kth.se Din rapport ? Beskriv din applikation. Förklara i ord vilket problem din applikation löser, och hur den gör det. Beskriv hur vi kan ”kontrollera” att applikationen verkligen fungerar. William Sandqvist william@kth.se
William Sandqvist william@kth.se En bild säger mer än 1000 ord? För att förklara motorns funktion kan man i stället använda ett blockschema. Motorn består av olika namngivna funktionsblock, och pilar mellan dem visar hur de påverkar varandra. Bilden är nu kompletterad med namnen på de olika delarna, och har försetts med zonindelning … En bild kan säga mer än tusen ord, men förklarar bilden hur jetmotorn fungerar? William Sandqvist william@kth.se
William Sandqvist william@kth.se Blockschema Detta är ett exempel på ett blockschema över en mikroprocessor-utrustning. Här definieras man namnen på de ingående delarna – och ser sedan till att använda precis dessa namn i rapport-text och i programkods-kommentarer. Rapporten skall innehålla ett blockschema över din hårdvara. William Sandqvist william@kth.se
Funktionsprototyp - Produkt Functional prototype (working prototype) Meningen med en funktionsprototyp är att övertyga andra om att man har löst de tekniska/programmeringstekniska problem som kan finnas med applikationen. Man har medvetet avstått från en mängd egenskaper som en färdig produkt måste ha. Detta har man gjort för att spara kostnader och utvecklingstid. Man måste vara tydlig med vad som ingår, och vad man avstått ifrån. Det man avstått ifrån måste upplevas som okontroversiellt. Till exempel kan man visa en funktionsprototyp på ett ”stort” kopplingsdäck, samtidigt som man har ”beräknat” att produkten skulle få plats på ett 55 mm kretskort. Alla känner till att elektronikprodukter kan miniatyriseras. Det Du gjort i kursen är förmodligen en funktionsprototyp. William Sandqvist william@kth.se
Demonstrationsutrustning Det kan vara möjligt att din funktionsprototyp inte kan användas till demonstrationen? Du har högst 10 min på dig att genomföra din demonstration. Om tanken är att utrustningen ska ge larm efter ett dygn, så måste Du ”skala om” larmtiden till kanske 10 sek. Gör de ändringar i programmet som behövs för att demonstrationen ska ”flyta smidigt”. Den programkod du lämnar in skall vara den för funktionsprototypen, inte för demo-varianten! William Sandqvist william@kth.se
William Sandqvist william@kth.se Programstruktur I kursmaterialet finns många exempel på strukturdiagram. Strukturdiagram används för att visa programstrukturen. Om inte diagrammet ryms på en sida så har Du gjort diagrammet för detaljerat. Skriv i stället ett funktionsanrop tex. MuchToDo() i rutan, och gör ett eget strukturdiagram på ett nytt blad för funktionen MuchToDo(). Gör strukturdiagram över din kod. William Sandqvist william@kth.se
William Sandqvist william@kth.se Interrupt Interruptrutinen har ett fristående strukturdiagram. William Sandqvist william@kth.se
William Sandqvist william@kth.se Tillståndsdiagram State=NextState(State,In) Action(State) Ibland kan det vara enklare att beskriva delar av programmet som en tillståndsmaskin (då gör man det) … William Sandqvist william@kth.se
William Sandqvist william@kth.se Flödesdiagram Flödesdiagram använder man när det är viktigt att visa precis hur processorn exekverar koden. Till exempel när man analyserar assemblerkoden för att kunna se till att olika vägar genom programmet tar samma tid. Verktyg för att rita flödesschemor finns i Word och Powerpoint. Normalt använder man strukturdiagram för beskriva programstrukturer. William Sandqvist william@kth.se
William Sandqvist william@kth.se Olika vägar – samma tid? William Sandqvist william@kth.se
Den genererade assemblerkoden BTFSS 0x1F,C1OUT GOTO m001 NOP NOP NOP NOP NOP GOTO m002 m001 BCF 0x03,RP0 BCF 0x03,RP1 INCF result,1 BTFSC 0x03,Zero_ INCF result+1,1 NOP m002 BTFSS 0x1F,C1OUT GOTO m001 NOP NOP NOP NOP NOP GOTO m002 m001 BCF 0x03,RP0 BCF 0x03,RP1 INCF result,1 BTFSC 0x03,Zero_ INCF result+1,1 NOP m002 William Sandqvist william@kth.se
William Sandqvist william@kth.se Flödesschemat visar att passagen genom detta programavsnitt alltid tar 9 cykler. Man har här skjutit in nop() instruktioner i C-koden där det visat sig behövas. William Sandqvist william@kth.se
William Sandqvist william@kth.se Programkod Programkod skrivs med ett typsnitt som har fast bredd (”skrivmaskinstil”). Vanliga typsnitt har annars variabel bredd: ”i” är ju smalare än ”W”. Courier New, är ett sådant ”fast” typsnitt. Har Du använt 80 tecken per rad i texteditorn ska Size väljas till 8 punkter för att raderna ska få plats på A4. Om raderna bryts blir koden svårläst. Tab-tecken kan behöva bytas ut mot mellanslag. William Sandqvist william@kth.se
William Sandqvist william@kth.se Kommentarer Om man skriver alla kommentarer på engelska så kan man dra nytta av att det finns miljoner duktiga PIC-programmerare världen över (se Internet). Du kan räkna med att lätt hitta någon som förstår ditt program och som är beredd att vidareutveckla din kod (mot skälig betalning …). Om Du Publicerar kod med engelska kommentarer så är den tillgänglig för hela världen. Kommentarer // eller /* */ på engelska. William Sandqvist william@kth.se
William Sandqvist william@kth.se ASCII-grafik Viktig information kan bakas in i programkoden som ASCII-grafik. Den finns då tillgänglig för alla oavsett system. William Sandqvist william@kth.se
William Sandqvist william@kth.se Andras kod? Ange vilken kompilator som använts. Speciellt viktigt är detta om kompilatorn ej är ANSI-standard. Den intresserade kan gå till källan och se vad som står i include-filer och programbibliotek. Dom behöver i så fall inte tas med i programlistningen. /* B Knudsen Cc5x C-compiler - not ANSI-C */ Markera kod som Du ej skrivit själv (tex. med kursiv text) och ange källa i kommentaren. Koden tas med i programlistningen eftersom det kan vara svårt för andra att hitta källan. Använd gärna andras kod. Markera vad som andra skrivit. Ge cred. William Sandqvist william@kth.se
William Sandqvist william@kth.se Ambitionsnivå? Kursen ger som högst betyget ”P” Passed (Godkänd). Det är lika för alla, men inte speciellt rättvist! Tänker Du använda kursintyget till att påstå att Du kan PIC-programmering när Du söker jobb, bör Du bifoga en mycket välskriven rapport! Annars så vill jag åtminstone ha en prydlig rapport att stoppa i min pärm. (Kanske kommer det någon högskoleinspektör någon gång och vill se kursens rapporter?) /william William Sandqvist william@kth.se
Platsannonser ”PIC-programmerare” Här finns utrymme för platsannonser: William Sandqvist william@kth.se