final

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG

Committer:
abp123
Date:
Thu Oct 25 12:32:13 2018 +0000
Revision:
0:af94a5725e48
final version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abp123 0:af94a5725e48 1 # Denne tekstfil gennemgår funktioner, variabler, arbejdsmetoder mm. følgende
abp123 0:af94a5725e48 2 strukturen af selve programmet
abp123 0:af94a5725e48 3 Navn - Andreas Bissenbach Petersen
abp123 0:af94a5725e48 4 Start Dato - 15 Oktober 2018
abp123 0:af94a5725e48 5
abp123 0:af94a5725e48 6 ##Index##
abp123 0:af94a5725e48 7 Afsnit-Beskrivelse
abp123 0:af94a5725e48 8 1 -Generel information
abp123 0:af94a5725e48 9 2 -Klasser og biblioteker
abp123 0:af94a5725e48 10 3 -Printf tekst funktioner
abp123 0:af94a5725e48 11 4 -Wait funktion
abp123 0:af94a5725e48 12 5 -Variabler
abp123 0:af94a5725e48 13 6 -Voids
abp123 0:af94a5725e48 14 7 -Goto, labels og loops
abp123 0:af94a5725e48 15 8 -Trådet programmering
abp123 0:af94a5725e48 16 9 -Sensorer
abp123 0:af94a5725e48 17 10 -Fremgangsmåder
abp123 0:af94a5725e48 18 11 -Diskussion og problemstillinger
abp123 0:af94a5725e48 19 12 -Log
abp123 0:af94a5725e48 20
abp123 0:af94a5725e48 21 1.#Generel information
abp123 0:af94a5725e48 22 Projektet består af to filer, en main fil(cpp), hvor den overordnede struktur er
abp123 0:af94a5725e48 23 og en header fil(h), hvor variabler, tråde og lign. opholder sig.
abp123 0:af94a5725e48 24 Denne informationstekst har til formål at give et kort udkast af selve projektets
abp123 0:af94a5725e48 25 struktur og forklaring hvordan opgaven er løst.
abp123 0:af94a5725e48 26
abp123 0:af94a5725e48 27 2.#Klasser og biblioteker
abp123 0:af94a5725e48 28 De biblioteker, somn er indkluderet har vær især en række klasser, som bruges til
abp123 0:af94a5725e48 29 løsning af opgaven. Bibliotekerne er bestående af hhv: Touchscreen,
abp123 0:af94a5725e48 30 LCD(liquid crystal display - display) og en utility pakke(BSP).
abp123 0:af94a5725e48 31 ##Hvorfor hente andres biblioteker og klasser?
abp123 0:af94a5725e48 32 Grunden til at jeg Henter andres biblioteker er, at samt opgavens omfang og tid til udvikling et omstændigt
abp123 0:af94a5725e48 33 og brugbart program, vurderes det bedst at bruge andres og rette fokus på udvikling og læring.
abp123 0:af94a5725e48 34
abp123 0:af94a5725e48 35 3.#Printf tekst funktioner
abp123 0:af94a5725e48 36 \r - Bruges til at gå til start af linje
abp123 0:af94a5725e48 37 \n - Går til ny/næste linje
abp123 0:af94a5725e48 38 \0 - Betyder null, kan være brugbar i eksempelvis if statements
abp123 0:af94a5725e48 39
abp123 0:af94a5725e48 40 Udover disse, har jeg gjort brug af diverse konverterings funktioner
abp123 0:af94a5725e48 41 eksempelvis, skal der implementeres en int variabel i output, udføres det således:
abp123 0:af94a5725e48 42 printf("Eksempel tekst: %d", IntegerVariabel), hvor variablen indsættes hvor %d er.
abp123 0:af94a5725e48 43 Kan variablen ikke parses, kan man eksempelvis sætte "(int)" alt efter behovet af
abp123 0:af94a5725e48 44 konverteringsbehov
abp123 0:af94a5725e48 45
abp123 0:af94a5725e48 46 4.#Wait() funktionen
abp123 0:af94a5725e48 47 Denne funktion kan bruges til flere formål. Mest at bestemme i hvilket tempo koden
abp123 0:af94a5725e48 48 kører i, men også en slags sikkerhed så programmet kan kompile ordenligt og mindske
abp123 0:af94a5725e48 49 fejl når programmet køres.
abp123 0:af94a5725e48 50
abp123 0:af94a5725e48 51 5.#Variabler
abp123 0:af94a5725e48 52 Variablerne er for det meste opstillet i header filen. Her er de grupperet efter funktion
abp123 0:af94a5725e48 53 og herefter grupperet efter variabel type. De forskellige variabler er angivet således:
abp123 0:af94a5725e48 54
abp123 0:af94a5725e48 55 Konstanter - en fast værdi som ikke skal ændres, bruges eksempelvis i formler
abp123 0:af94a5725e48 56 Double - Typen som nemmest kan parses gennem output når det gælder temperaturer
abp123 0:af94a5725e48 57 Int - Den mest hyppige variabel, bruges mest når tallet ikke har komma
abp123 0:af94a5725e48 58 float - Bruges hvis den kan parses i output, kan indeholde flere decimaler end double
abp123 0:af94a5725e48 59 Char og Char array - enkel og flere bogstaver/tal. char defineres i output med ''
abp123 0:af94a5725e48 60
abp123 0:af94a5725e48 61 6.#Voids
abp123 0:af94a5725e48 62 Hvorfor bruge voids frem for klasser, objekter, int funktioner mm?
abp123 0:af94a5725e48 63 jeg har vurderet, at voids i denne sammenhæng er et godt værktøj til denne opgave.
abp123 0:af94a5725e48 64 Med Voids kan man lave parameter overførsel, skabe god struktur(Navngivning, nem instantiering)
abp123 0:af94a5725e48 65 og så kræver voids ikke, at man returnerer noget.
abp123 0:af94a5725e48 66 En klasse kan skal således udskrives sådan:
abp123 0:af94a5725e48 67 void TestVoid(){}
abp123 0:af94a5725e48 68 TestKlasse TestObject;
abp123 0:af94a5725e48 69 TestObject.TestVoid();
abp123 0:af94a5725e48 70 Hvor en simpel void bare kan være: void test(){} uden at instantiere objektet fra klassen
abp123 0:af94a5725e48 71
abp123 0:af94a5725e48 72 7.#Goto, labels og loops
abp123 0:af94a5725e48 73 Jeg har valgt at bruge goto statements for at gøre brug af boardets userbutton. Til userbutton
abp123 0:af94a5725e48 74 har jeg tilsat bool værdier, hvor disse, bestemmer hvor i programmet jeg er. Dette giver
abp123 0:af94a5725e48 75 overskuelighed hvor man kan opstille og sammenligne værdier. Det blev for mig oplagt, da
abp123 0:af94a5725e48 76 der skal vælges mellem fahrenheit og celcius.
abp123 0:af94a5725e48 77
abp123 0:af94a5725e48 78 8.#Trådet programmering
abp123 0:af94a5725e48 79 Med trådet programmering er det muligt at have funktioner kørende uafhængigt af hinanden.
abp123 0:af94a5725e48 80 Til input er dette meget brugbar, når det gælder loops. Dette skyldes, når man sidder i en
abp123 0:af94a5725e48 81 uendelig while loop, bliver koden kørt igen og igen, som også blokerer for user input.
abp123 0:af94a5725e48 82 Med trådet programmering, kan der være en løsning til dette.
abp123 0:af94a5725e48 83
abp123 0:af94a5725e48 84 9.#Fremgangsmåder
abp123 0:af94a5725e48 85 ##Direkte kompilering - Jeg fandt ud af, at det i større grad ville være hurtigere
abp123 0:af94a5725e48 86 at omdirigere browser til at hente bin filen fra mbed direkte ind i kontrolleren
abp123 0:af94a5725e48 87
abp123 0:af94a5725e48 88 ##Sikkerhed - Hver gang større ændringer laves eller filer slettes, kopierer jeg mit projekt
abp123 0:af94a5725e48 89 ind i et test projekt. Her kan jeg ændre, uden at være bange for at miste data.
abp123 0:af94a5725e48 90 Udover dette, kopierer jeg mit projekt ind i en tekstfil som jeg opbevarer i foldere,
abp123 0:af94a5725e48 91 dette er også brugbart til dokumentation, historik og forståelse.Jeg laver ikke for mange
abp123 0:af94a5725e48 92 ændringer, før jeg kompilerer, så jeg har styr over hvad der er blevet ændret.
abp123 0:af94a5725e48 93
abp123 0:af94a5725e48 94 10.#Sensorer
abp123 0:af94a5725e48 95 Hovedsageligt, har jeg brugt analog inputs(A0, A1, A3).De bliver instantieret som objekt, gennem den
abp123 0:af94a5725e48 96 hentede AnalogIn klasse som: AnalogIn LightSensor(A0), AnalogIn lyd(A1), AnalogIn lys(A3)
abp123 0:af94a5725e48 97 objekt, inde i () er analog addressen til sensoren og AnalogIn er klassen fra biblioteket.
abp123 0:af94a5725e48 98
abp123 0:af94a5725e48 99 11.#Diskussion og problemstillinger
abp123 0:af94a5725e48 100 I starten brugte jeg noget tid på først at læse og forstå C++ før jeg gik igang. Der blev
abp123 0:af94a5725e48 101 savnet intellisense fra visual studio efter noget tid, og jeg prøvede at implementere embedded
abp123 0:af94a5725e48 102 programmering i visual studio, men vurderede at det var for stor en opgave at få det opsat.
abp123 0:af94a5725e48 103 Der var problemer med trådet programmering da jeg ikke havde viden/biblioteker til
abp123 0:af94a5725e48 104 at instantiere og håndtere denne funktion. Undervejs havde jeg en del problemer med min
abp123 0:af94a5725e48 105 controller, da ikke alle analog porte fungerede. Fandt ud af undervejs, at det var selve
abp123 0:af94a5725e48 106 boardet som ikke kunne få ordenlig forbindelse til mit base shield.
abp123 0:af94a5725e48 107
abp123 0:af94a5725e48 108 12.#Log
abp123 0:af94a5725e48 109 16 Oktober 2018 - Tæller program laves
abp123 0:af94a5725e48 110 17 Oktober 2018 - Serial input/output testes
abp123 0:af94a5725e48 111 17 Oktober 2018 - Blink funktion med knap udvikles
abp123 0:af94a5725e48 112 18 Oktober 2018 - Temperatur på display udvikles
abp123 0:af94a5725e48 113 19 Oktober 2018 - Selve hovedprojektet igangsættes
abp123 0:af94a5725e48 114 22 Oktober 2018 - Alle sensorer fungerer
abp123 0:af94a5725e48 115 23 Oktober 2018 - Trådet programmering fungerer
abp123 0:af94a5725e48 116 24 Oktober 2018 - Program finpudses og opstilles
abp123 0:af94a5725e48 117