FlowCode geoptimaliseerd voor PIC16F876A ( Flitspaalmelder )

Postby schueler » Wed Apr 08, 2009 12:00 am

Voor diegene die extra functionaliteit willen toevoegen aan de flitspaalmelder en een PIC16F876A op de print hebben zullen snel merken dat er geen ruimte vrij is voor uitbreidingen.
Jammer want het concept is erg leuk.
Mijn Forum collega Jaap heeft al veel functionaliteit toegevoegd aan de code maar heeft jammer genoeg delen van de code weg moeten halen om ruimte te creëren.
Door de code gedeeltelijk te herschrijven ( voornamelijk de conversies van strings naar integer ) en wat andere optimalisaties is het me gelukt om 1824 words vrij te krijgen in het program memory zonder verlies van functionaliteit.
Ik weet dat het nog veel verder geoptimaliseerd kan worden door de variabelen eens op de schop te nemen maar dat is monniken werk...

Memory Usage Report
===================
RAM available:368 bytes, used:236 bytes (64.2%), free:132 bytes (35.8%),
Heap size:132 bytes, Heap max single alloc:95 bytes
ROM available:8192 words, used:6305 words (77.0%), free:1887 words (23.0%)



Ook qua snelheid is het verbeterd omdat nu niet steeds een x aantal string vergelijkingen hoeven gedaan te worden bij de conversie van de lengte- en breedtegraad.

Hierbij de code en hex file


Ben

edit: er zat een klein foutje in de code betreft datum/tijd
Attachments

[The extension fcf has been deactivated and can no longer be displayed.]

[The extension hex has been deactivated and can no longer be displayed.]

schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby jaap57 » Wed Apr 08, 2009 12:00 am

Hi Ben,

Je trekt er hard aan zie ik!
Mooi dat het met die nieuwe processor eindelijk werkt.
Wat die Lat/Long routines betreft, die had ik 9 maart ook al herschreven en meer dan anderhalf K daarna overgehouden.
Die ruimte heb ik echter gebruikt voor koers hoogte en vooral voor de routines die zorgen dat alleen alarm wordt gegeven als je de paal nadert en niet als je er van af rijdt.

Schitterend dat je die PIC18F2520 aan de praat hebt.
Jammer dat ik nu wat minder tijd heb want het vaarseizoen en het zweefvlieg seizoen beginnen weer en dan wordt het vreselijk druk Zodra ik gelegenheid heb ga ik ook met die PIC18F2520 aan de slag. Wat erg jammer blijft is dat met flowcode geen sinus en cosinus funties mogelijk zijn. In ieder geval moet de zoekroutine voor de database veel sneller. Een presentatie waarvoor gewaarschuwd wordt (verkeerslicht, snelheid flitspaal of trajectcontrolle) is ook erg leuk.
Maar wie weet heb jij dat wel allemaal klaar tegen die tijd dat ik zover ben....
Groeten,
jaap
jaap57
 
Posts: 117
Joined: Thu Jan 02, 2014 3:31 pm

Postby schueler » Wed Apr 08, 2009 12:00 am

Jaap, ik heb je scherp in de gaten gehouden met je werk
Ik wil ook niet je werk teniet doen maar wil het voor meer mensen mogelijk maken om ermee aan de slag te gaan. Als mensen meteen al tegen limieten aanlopen willen ze er vaak mee verder gaan omdat het andermans code is.
Volgens mij kunnen wij er inmiddels er wel over meepraten
Daarom kwam ik op het idee om de code eens even te herschrijven zonder dat er "originele" code verloren gaat.

Meteen maar even omgekat naar de PPIC18F2520. Dat is voor jou trouwens geen probleem om het om te zetten aangezien jij toe de DIL versie gebruikt. Dat heb ik trouwens voor mijn experimenteer versie ook.
Mocht je trouwens ook willen experimenteren met de PIC18F2520 zou je kunnen overwegen om samples aan te vragen bij Microchip.

Ik wil je dus niet voor de voeten lopen maar het meer universeel houden zodat andere mensen zoals bij onze buurlanden de code ook kunnen gebruiken.

Verder wil ik heel graag jou code eens verder bekijken en implementeren in de PIC18F2520. Het probleem met het doorspitten van de EEPROM was mij ook al bekent. Voor de Franse auteur was dat ook de rede om een 1Mhz I2C EEprom te gebruiken en de butterfly methode om door de data te gaan.
Dit zou je sneller kunnen maken door een SPI EEprom te gebruiken zodat je hogere bit rates kunt halen ( 10Mhz bijvoorbeeld, zolang je de data zelf intern maar kunt verwerken ander heeft hogere snelheden dus geen zin... ).

Wordt vervolgt.


Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby jaap57 » Wed Apr 08, 2009 12:00 am

Hoho. Mij loop je niet voor de voeten. Ik heb die code geschreven voor mij zelf en op het forum gezet voor wie er iets mee wil. Dat mag alles zijn....
Het is alleen maar fijn dat er nog iemand mee aan de gang is.
Als jij betere code schrijft dan zet ik die er bij mij in

Nog een vraagje. Mijn tweede bouwsel weigert weer te comuniceren met de computer... Nu heb ik er een 74HC241BL in zitten en geen 74HC241DW Maakt dat wat uit misschien?
De 74HC241DW heb ik even niet meer.
jaap57
 
Posts: 117
Joined: Thu Jan 02, 2014 3:31 pm

Postby schueler » Thu Apr 09, 2009 12:00 am

Ik wil niet zeggen dat ik betere code schrijf maar ben me wel bewust met wat de code doet ( werk veel met embedded systemen ).

Wat de 74HC241BL en 74HC241DW betreft zijn deze identiek op de behuizing na. Moet dus geen probleem zijn.
Ik kwam bij mijn setup achter dat de GPS-module te lage spanning geeft aan de receiver kant van de PIC zodat deze niets "ziet". Was erg lastig terug te traceren totdat ik na veel lezen het toevallig oppikte uit de tekst. Moet je ook maar weten.
Maar goed, dat is niet jouw probleem.

GPS module werkt dus wel neem ik aan ( komt door de GPS sync heen ??? ) en als je de schakelaar op PC zet verschijnt de tekst dat het met PC mode of zoiets?
TxD en RxD niet omgewisseld?
TxD aangesloten en maakt ie goed contact?
Ik had in een ander forum een RS232-monitor voorgesteld, heb je deze al eens geprobeerd?


Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby jaap57 » Thu Apr 09, 2009 12:00 am

SchuelerIk wil niet zeggen dat ik betere code schrijf maar ben me wel bewust met wat de code doet ( werk veel met embedded systemen ).

Wat de 74HC241BL en 74HC241DW betreft zijn deze identiek op de behuizing na. Moet dus geen probleem zijn.



Vreemd, want de DW die op dit moment ingebouwd in mijn auto zit, heeft op het eerste gezicht exact de zelfde behuizing als de BL


Ik kwam bij mijn setup achter dat de GPS-module te lage spanning geeft aan de receiver kant van de PIC zodat deze niets "ziet". Was erg lastig terug te traceren totdat ik na veel lezen het toevallig oppikte uit de tekst. Moet je ook maar weten.
Maar goed, dat is niet jouw probleem.


Dat probleem had ik ook. Ergens in het begin van het draadje flitspaalperikelen heb ik daar mijn gal over gespuugt omdat Elektuur in zijn artikel beweert dat je die module zo op de pic kan aansluiten....


GPS module werkt dus wel neem ik aan ( komt door de GPS sync heen ??? ) en als je de schakelaar op PC zet verschijnt de tekst dat het met PC mode of zoiets?
TxD en RxD niet omgewisseld?
TxD aangesloten en maakt ie goed contact?
Ik had in een ander forum een RS232-monitor voorgesteld, heb je deze al eens geprobeerd?


Ja, die dingen kloppen allemaal.
Het probleem is dat de colinbus freesmachine mijn enige rs232poort heeft opgeblazen, waarna ik een PCI card heb gekocht die de computer laat crashen, zodat ik de computer van mijn dochtertje tijdelijk heb genaast maar tot nu toe zonder resultaat. Alleen het monitorten van de verbinding heb ik nog niet gedaan want ik heb zo weinig tijd.....
jaap57
 
Posts: 117
Joined: Thu Jan 02, 2014 3:31 pm

Postby schueler » Thu Apr 09, 2009 12:00 am

Je hebt me wat betreft de 74HC241BL. Ik liet me even iets te snel gaan en ging er vanuit dat de de DIP versie was aangezien je alles met draad componenten opbouwt. Toch?

De 74HC241D is in ieder geval de SMD versie. De BL versie kom ik op internet niet tegen maar wel de B versie wat een DIP is.
Ik kan je dus niet echt helpen momenteel.



Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby arjen h. » Thu Apr 09, 2009 12:00 am

SchuelerMocht je trouwens ook willen experimenteren met de PIC18F2520 zou je kunnen overwegen om samples aan te vragen bij Microchip.

Ik hoop dat ik het mis heb, maar gratis samples aanvragen gaat niet zo makkelijk meer. Als je samples aan het lijstje toevoegt, wordt gelijk 7,50 USD processing fee toegevoegd. Verder kun je maar 2 producten toevoegen. Verzenden naar Europa is ook een probleem geworden...
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1289
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Thu Apr 09, 2009 12:00 am

Klopt. Daar was ik onlangs ook achter gekomen.
Dit hebben ze niet zo lang geleden, eind vorig jaar ergens volgens mij, veranderd.
Toch heb ik toen een aantal PIC controllers en EEproms "besteld" om eens mee te experimenteren.

De kosten weet ik zo even niet meer maar zeker niet duurder dan bestellen in de winkel. Een paar euro zover ik weet.


Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Thu Apr 09, 2009 12:00 am

jaap57Wat erg jammer blijft is dat met flowcode geen sinus en cosinus functies mogelijk zijn.


Op de site van Matrix Multimedia staat wel wat beschreven hierover. Door middel van een look-up table kun je sinus en cosinus berekenen.
Zie hier.

Wat ze in feiten doen is een array aanmaken ( die je dan plaatst in een C-code blok van FlowCode ). Dit is overigens een veel gebruikte methode. Wat ook kan is een benaderingsfuntie van de sinus te schrijven.
Hierbij deel je de sinus ( een kwart ervan 0-90 graden ) in delen die niet gelijk hoeven te zijn en formuleer je de formule die bij die lijn hoort. Dit geeft minder code maar een grotere afwijking.


Ben'
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Next

Return to 2008-11 Flitspaalmelder

Who is online

Users browsing this forum: No registered users and 1 guest