09.07.2015 Views

Bacheloroppgave - Elektra - Linjeforeningen for elektro ved HiST

Bacheloroppgave - Elektra - Linjeforeningen for elektro ved HiST

Bacheloroppgave - Elektra - Linjeforeningen for elektro ved HiST

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KAPITTEL 6. FIRMWARE6.9. DISPLAYstatusene aksesseres <strong>ved</strong> å bla med joysticken. Et av menyvalgene kalibrerer strømregisteret til 800mAh.Kalibreringen må altså gjennomføres når batteriet er fulladet. I tillegg nullstilles klokken.Ved kalibrering deaktiveres også to funksjoner som er aktivert <strong>ved</strong> fabrikkinnstilling. Den enefunksjonen måler total strøm som noensinne har passert batteripakken. Den andre lagrer disse registrenekontinuerlig til EEPROM. Fra dette kan man estimere batteriets levetid. Vi har ikke bruk <strong>for</strong> dennefunksjonaliteten og deaktiverer den <strong>for</strong> å spare strøm.6.9 DisplayHelt i starten av programmeringsfasen må lavnivådriver implementeres i koden. Driveren tar hånd omalle rutiner som skal gjøres før lesing og skriving til display. Det være seg timingrutiner og sette pinnerhøy og lav <strong>for</strong> hver kommando som skal kjøres. Instruksjonssettet som nnes i databladet får hver sinrespektive denisjon slik at koden skal bli lettere å skrive og lesbarheten blir bedre, samt funksjoner <strong>for</strong>å sette alle kontrollpinnene høye og lave får hver sin denisjon.Grakken tar mye plass, så <strong>for</strong> å spare plass i programminnet, bruker vi et eksternt ashminne på256kB, se kapittel 4.2 på side 8.6.9.1 Skrive grakkVi har to karaktersett som denerer fontene vi bruker på displayet, ett på 16×10 pixeler, og ett mindrepå 8×5 pixeler. Begge fontene inneholder hele ASCII-tabellen[1] med unntak av de 32 første tegnene.For å kunne skrive tekst til displayet har man behov <strong>for</strong> to funksjoner; en som skriver ut en enkeltbokstav, og en som bruker denne funksjonen til å skrive ut tekststrenger.Funksjonen som brukes til å skrive ut enkle tegn fra fonttabellen tar i mot en parameter av typenchar som er bokstaven som skal hentes fra det eksterne ashområdet. Ettersom hvilken verdi bokstavenhar i ASCII-tabellen, henter funksjonen bokstaven og legger den i et array. Arrayet skrives så tildisplayet til valgt kolonne- og radposisjon <strong>ved</strong> bruk av en egen skrivefunksjon. Den første byte legges iførste kolonne, andre byte i andre kolonne osv, etter innstillingene som er satt under initialiseringen avdisplayet.Bitmaps hentes ut på samme måte. Man starter å lese ut grakken fra adressen i minneområdet, oginkrementerer seg gjennom tabellen den bredden i pixeler man skal skrive ut. Her har vi også vært nødttil å passe på når kolonne og page skal endres, med tanke på dimensjonene til grakken.6.9.2 Animert grakkTil kompasset har vi lagd en fane som viser alle himmelretningene. Fanen beveger seg med verdien frakompasset som strekker seg fra 0 til 359 grader. Bitmappet er 360 pixeler bredt, noe som er mer enn detdisplaybredden er, så vi skriver kun ut 100 pixeler av bildet, der verdien fra kompasset fungerer som enpeker til hvor i bitmapet man skal starte å skrive fra. Når kompasset roterer fra 360 til 0 grader folderbitmappet rundt, slik at animasjonen glir jevnt over.37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!