EDIT: Meest recente
Flitspaalmelder versie 1.26b aan het einde van dit forum...
______________________________________________________
Ik heb me de afgelopen tijd flink bezig gehouden met de code van het project
Flitspaalmelder. Je kunt er onder andere meer lezen in het onderwerp
FlowCode geoptimaliseerd voor PIC16F876A ( Flitspaalmelder ). Over de aangeboden functies was ik niet tevreden en ik miste er een paar die ik graag erbij wilde hebben.
Tot mijn verbazing bleek dat na het compileren van de originele code de gebruikte PIC16F876A al vol te zitten.
Dit heeft twee oorzaken:
1) Flowcode kent alleen macro en geen functies. Een macro wordt telkens in de code gezet in plaats van dat deze aangeroepen wordt.
2) De code die de auteurs hebben geschreven was verre van efficiënt. Zo worden er onnodig loops en tellers gebruikt terwijl er een eenvoudige functie of methode voor is. Laten we het even op onwetendheid houden.
Ik zal er meteen even bij zeggen dat ik een hardware achtergrond heb en software als hobby bij doe. Ik schrijf dus geen perfecte code maar weet wel wat ik doe.
De code die ik hier voorstel is voor het bestaande
print van Elektor.
De originele code laat op een display zien wat de snelheid en tijd is en wat de coördinaten zijn. De tijd is overigens alleen voor landen met UTC+1. De zomer en wintertijd werd geregeld aan de hand van de maanden ongeacht dat de datum goed was of niet.
De code hier gepresenteerd geeft de tijd, datum, snelheid, richting ( compass ,degrees ), hoogte en coördinaten aan.
Aangezien dit niet allemaal op 1 LCD past, uitgaande van de 2x16 die voorgesteld word, kun je keuzes maken via een menu.
De datum en tijd worden aangepast aan de hand van de gebruikte UTC+n en/of zomer-/wintertijd.
Modificaties:
Weerstand 10k van A.2 naar ground.
Weerstand 10k van A.4 naar ground.
Drukknop van A.2 naar Vdd.
Drukknop van A.4 naar Vdd.
A.1 heeft geen functie meer in deze code om compatibel te blijven met de originele code.
Bediening:
In normale mode
1 keer drukken op A4 -> wissel display info
wisselt tussen coördinaten op het scherm of datum/tijd/etc.
1 keer drukken op A2 -> Menu
Met A.2 kun je door het menu bladeren.
Met A.4 verander je de waarde van het menu item.
Als je ~4 seconde niets doet valt het automatisch terug. De waarde van het menu item dat geselecteerd is wordt dan niet opgeslagen. Door naar het volgende menu item te gaan word de vorige automatisch opgeslagen.
Menu:
2 [0]=MPH [1]=km/u
3 [0]=Winter time [1]=Summer time
4 [0 .. 24] (UTC -12 .. +12)
5 [0]=-N- [1]=Degrees
6 [0]=Compass [1]=Height
Ben
Bericht bewerkt door Schueler
op 19-04-2009 18:58
Bericht bewerkt door Schueler
op 19-04-2009 18:59
Bericht bewerkt door Schueler
op 19-04-2009 19:11
Bericht bewerkt door Schueler
op 26-01-2010 22:18
Bericht bewerkt door Schueler
op 27-01-2010 20:07
Bericht bewerkt door Schueler
op 28-01-2010 21:03
Bericht bewerkt door Schueler
op 03-02-2010 14:21
Bericht bewerkt door Schueler
op 05-02-2010 00:55
Bericht bewerkt door Schueler
op 06-02-2010 13:04
Bericht bewerkt door Schueler
op 20-02-2010 13:40
Bericht bewerkt door Schueler
op 03-03-2010 10:37
Bericht bewerkt door Schueler
op 03-03-2010 22:28
Bericht bewerkt door Schueler
op 06-03-2010 20:46