Weegschalen voor analphabetic mensen (5 / 6 stap)

Stap 5: De code: volledige code

Hier voeg ik de volledige code als referentie. Het was geschreven in BascomAVR maar het moet vrij gemakkelijk te vertalen naar C of voor de arduino. Ik commentaar allermeest naar de stappen neem maar contact met me als iets niet duidelijk aan u.

$regfile = "m8def.dat" ' registerbestand voor de atmega8
$crystal = 8000000 ' 8 MHz kloksnelheid
$baud = 1200 ' baudrate = 1200

' verklaring van de variabelen
Dim tellen als geheel getal
Dim syscount als byte
Dim ik als byte
Dim temp als geheel getal
Dim gewicht as Integer
Dim comm(4) als byte
Dim calc(3) als geheel getal
Dim weightwanted als geheel getal
Dim weightwantedram als ERAM integer ' opgeslagen in EEPROM
Dim percentplus als byte
Dim percentplusram als ERAM byte ' opgeslagen in EEPROM
Dim percentmin als byte
Dim percentminram als ERAM byte ' opgeslagen in EEPROM
Dim topvalue als geheel getal
Dim lowvalue als geheel getal

"Aliassing pinnen
Een Alias Pind.2
B Alias Pind.4
Rode Alias PORTD.5
Groene Alias PORTD.6
Gele Alias PORTD.7

"Richting van de pinnen
Config A = Input

Config B = Input
Config portd.3 = input
Config portd.5 = Output
Config PORTD.6 = Output
Config PORTD.7 = Output

config serialin = gebufferde, grootte = 18, bytematch = 10 ' 18 bytes gebufferd en triggers interrupt na ontvangst van een LF

' installatie van het LCD-scherm
Config Lcdpin = speld, Db4 = Portc.3, Db5 = Portc.2, Db6 = Portc.1, Db7 = Portc.0, E = Portc.4, Rs = Portc.5
Config Lcd 16 x 2 =
cursor uitschakelen

' het instellen van bepaalde pinnen op 1
Set B
set pind.2
set pind.3

' configuratie van de externe interrupts
Config Int0 = stijgende
Op Int0 Getencoder

Config int1 = Falling
int1 menu

Inschakelen Interrupts
Int0 inschakelen
Int1 inschakelen

CLS ' duidelijk scherm

Reset graaf
Reset gewicht
Reset syscount

' hoofdlus
doen

Selecteer zaak syscount ' afhankelijk van de syscount een scherm zullen worden geselecteerd voor het LCD-scherm

waitms 25

CLS ' duidelijk scherm

geval van 0: ' hoofdscherm
weightwanted = weightwantedram ' leest deze 3 variabelen in de EEPROM en slaat ze in globale variabelen
percentplus = percentplusram
PercentMin = percentminram
Zoek 1,1 ' schrijft de gewenste gegevens naar het LCD-scherm
LCD-weightwanted; "Gr"
Zoek 1, 8
LCD "-"; percentmin; " %"
Zoek 1, 13
LCD "+"; percentplus; " %"
Zoek 2,1
LCD gewicht; "Gr"
Reset Red ' alle LEDs uitgeschakeld
Reset groen
Reset geel
topvalue = weightwanted * percentplus ' berekening van alle benodigde waarden.
topvalue = topvalue / 100
topvalue = weightwanted + topvalue
lowvalue = weightwanted * percentmin
lowvalue = lowvalue / 100
lowvalue = weightwanted - lowvalue
Als gewicht < = topvalue en gewicht > = lowvalue dan groen ingesteld ' Hiermee stelt u de juiste status-LED
Als gewicht > topvalue stel geel
Als gewicht < lowvalue stel rood

geval 1: ' het instellingenscherm voor gewicht

Zoek 1,1
LCD "Setup:"
Zoek 1,8
LCD "Gewicht"
weightwanted = aantal ' leest de roterende encoder en stelt het gewenste gewicht
Zoek 2,8
LCD-weightwanted

geval 2: ' instellingenscherm voor overgewicht

Zoek 1,1
LCD "Setup:"
Zoek 1,8
LCD "+ %"
percentplus = aantal ' leest de roterende encoder en stelt de overgewicht
Zoek 2,8
LCD-percentplus

Case 3: ' ondergewicht instellingenscherm
Zoek 1,1
LCD "Setup:"
Zoek 1,8
LCD "-%"
PercentMin = aantal ' leest de roterende encoder en stelt de ondergewicht
Zoek 2,8
LCD-percentmin

.End select

lus ' einde van de hoofdlus

Getencoder: ' veroorzaakt door INT0. Leest de roterende beweging van de roterende encoder

waitus 250
Als A = 1 Then
Als B = 0 dan Incr tellen anders Decr graaf
End If
GiFr = 64 ' debounce
Terugkeer

menu: ' veroorzaakt door INT1. Leest de drukknop van de roterende encoder

INCR syscount ' syscount verhoogt. Deze variabele wordt gebruikt om te beslissen welk scherm wordt weergegeven
Als syscount > 3 dan syscount = 0
Selecteer zaak syscount
geval van 0: percentminram = percentmin ' schrijft aan EEPROM
geval 1: aantal = weightwanted
geval 2: weightwantedram = weightwanted ' schrijft aan EEPROM
Graaf = percentplus
Case 3: percentplusram = percentplus ' schrijft aan EEPROM
Graaf = percentmin
.End select

waitms 150
GiFr = 128 ' debounce

terugkeer

serial0charmatch: ' wordt geactiveerd door de seriële interrupt
gewicht = 0 ' Hiermee stelt u de variabelen
voor i = 1 tot en met 3
calc(i) = 0
volgende

voor i = 1 tot en met 18 ' leest de benodigde bytes in variabelen en dumpt de andere bytes om te legen van de buffer
Als ik = 9 dan comm(1) = inkey()
Als ik 10 dan comm(2) = inkey() =
Als ik = 11 then comm(3) = inkey()
Als ik = 12 dan comm(4) = inkey()
Als ik <> 9 en ik <> 10 en ik <> 11 en ik <> 12 dan temp = inkey()
volgende

voor i = 1 tot en met 4 ' vertalen ascii t/m dec
Als comm(i) > 47 dan
comm(i) = comm (i)-48
anders
comm(i) = 0
eind als
volgende

Als comm(1) > 0 dan calc(1) = comm (1) * 1000 ' maakt 1 nummer uit 4 tekens
Als comm(2) > 0 dan calc(2) = comm (2) * 100
Als comm(3) > 0 dan calc(3) = comm (3) * 10
gewicht = calc(1) + calc(2)
gewicht = gewicht + calc(3)
gewicht = gewicht + comm(4)

terugkeer
einde

Gerelateerde Artikelen

Rustieke Pizza voor drukbezette mensen

Rustieke Pizza voor drukbezette mensen

wie houdt van grote pizza?  COOL!  Ik ook van jou!   (Neem ik dat terug.  Ik hou van pizza.)  Don't ya love net dat krokant, knapperige korst met het taai midden en dat slissend kaas?  En don't ya net hate eonen voor iets niet helemaal zoals die te k
Scrabble voor blinde mensen

Scrabble voor blinde mensen

hebben we een scrabble bord voor blinde mensen. We kregen dit idee door de mobiele telefoon spel Wordfeud.Een van ons heeft een vriend die is blind, die niet kon dat spel spelen, maar hij was wel nieuwsgierig naar hoe het wordt gespeeld. Daarom hebbe
DIY-navigatiesysteem voor blinde mensen met behulp van de Arduino en Android smartphone

DIY-navigatiesysteem voor blinde mensen met behulp van de Arduino en Android smartphone

In dit project kunt u betrekking hebben op je ogen en laat uw smartphone navigeren u om te voorkomen dat belemmeringen, de toepassing is vooral een DIY navigatieapparaat voor blinde mensen.Ik wist dat 1Sheeld is bezig met het starten van een nieuwe t
Paleo koken Bootcamp voor drukbezette mensen

Paleo koken Bootcamp voor drukbezette mensen

Deze video zal u tonen hoe te bereiden al uw maaltijden + hapjes voor de week in amper 2 uur!Stap 1: Om te volgen met de video, koop mijn e-kookboek: Paleo koken Bootcamp voor drukbezette mensen (paleocookingbootcamp.com) Paleo koken Bootcamp was de
Malebook laptop voor arme mensen

Malebook laptop voor arme mensen

La idee de poder tener una computadora portatil para impartircursos o trabajar fuera de la oficina es algo muy deseable y unaLAPTOP cumple con la opstelplaats pero... $$$ een VN-alto costoprimeramente la idee fue transportar un moederbord con su CPU
Wat betreft steun voor verlamde mensen

Wat betreft steun voor verlamde mensen

In dit instructable, zal tonen we u hoe maak je een steun met draaien die mensen met een handicap kan veranderen door hun zelf in bed.De persoon voor wie we dit gemaakt heet Sylvie en is verlamd vanaf haar afval aan haar voeten. Het apparaat werkt do
Schrijven voor technische mensen

Schrijven voor technische mensen

Dit Instructable ontworpen als een beetje een spoedcursus on Dutch, afgewisseld met strategieën die men kan gebruiken bij het doen van de documentatie, de toonhoogte van een idee, of in je eigen leven. Het omvat een creatieve focus, maar is gericht o
Duw maaier Hack voor lange mensen

Duw maaier Hack voor lange mensen

groeten lange mensen! Ik ben slechts 6'2 ", verleend niet Shaq, maar nog steeds boven de gemiddelde hoogte, en ik heb lange gorilla zoals wapens, zodat wanneer ik mijn klein stukje van de Amerikaanse buitenwijk droom zou maaien mijn onderrug voor 3 d
5 nuttige Lifehacks voor outdoor mensen

5 nuttige Lifehacks voor outdoor mensen

Voor alles wat u mensen die gewoon liefde om te worden buiten, ik heb samen te stellen een kleine lijst van nuttige hacks om het te maken nog leuker, vernietigen de jeuk van een muggenbeet tot het houden van uw water super koud, zijn hier 5 hacks all
Pallet muur voor de mensen die hun huis te huur

Pallet muur voor de mensen die hun huis te huur

Ik ben de publicatie van het idee van faux studs. De pallet-muur is slechts een van de vele ideeën die kunnen met dit proces gebruikt. De tutorial zal worden voor de pallet muur omdat ik had gedacht dat de noppen kunnen al het hout houden en nog stee
Betaalbare Pro Audio Gear voor creatieve mensen.

Betaalbare Pro Audio Gear voor creatieve mensen.

Hallo, ik ben Jesus Ortiz (ik ben geboren op 03-21-1981) en ik ben een man van audio.  Ik ben een muzikant, ik werk in pro audio, een fervent audiofiele van am. Audio en elektronica zijn mijn passie.  Ik voel dat vistuig voor mensen met goede ideeën
Verbazingwekkende leven Hacks voor luie mensen

Verbazingwekkende leven Hacks voor luie mensen

Dit over enkele van de nuttige levensduur hacks die je leven makkelijker zal maken! Geniet vanStap 1: Hoe open je chips nuttig Stap 2: Maak een klein gaatje in het midden van de chipZorg ervoor dat u het gat aan de voorkant van de chip.Stap 3: Rip de
Zijde spinnen voor luie mensen

Zijde spinnen voor luie mensen

In de eerste plaats een grote dank voor Michael van wormspit.com voor het toestaan van me om te linken naar zijn prachtige website. Bent u nieuwsgierig naar sikworms, en producerende cottage zijde, dat is de website te gaan!Mijn tante stuurde me onla
Egg Custard voor echte mensen

Egg Custard voor echte mensen

Ik weet niet over u, maar ik hou van vla. Mijn enige klacht Is whats up met die kleine kommen? Ze laat me willen. (Een andere kom!!) Ik ben hier om te bevestigen dat alles vandaag met mijn enorme recept voor egg custard!Dit recept is voor een 9 "x 13