![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
final
Dependencies: BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG
Readme.md@0:af94a5725e48, 2018-10-25 (annotated)
- Committer:
- abp123
- Date:
- Thu Oct 25 12:32:13 2018 +0000
- Revision:
- 0:af94a5725e48
final version;
Who changed what in which revision?
User | Revision | Line number | New 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 |