Bij mij gaat het meestal ook om microcontroller projecten, en begin het project te tekenen als 1 "Black Box". Vervolgens definieer ik mijn ingangs en uitgangs signalen (wat gaat er in, wat moet er uitkomen).
Dan uitwerken, zijn er "signal conditioners" nodig, ADC, opto-couplers aan de ingang, een ledje of relais aan de uitgang met transistoren?, ULN2803 ?.
De bediening uitwerken, ledjes, toetsen, LCD, RS232, enzovoort.
Vervolgens zoek ik er een processor bij, een ATTINY2313 ? , een AT89C51ED2 ?, een ATMEGA32/128 ?, meestal gebaseerd op hoeveelheid flash en aantal I/O lijnen (inderdaad GEEN PIC ). Snelheid in in de meeste van mijn projectjes niet zo'n issue. Bij kleine(re) processors en veel I/O grijp ik ook regelmatig naar I/O chips op I2C.
Dan inderdaad een Flowchart ( volgens mij heet dat een Programma Stroom Diagram in het Nederlands) met wat het programma moet doen, eventuele interrupts, timers etc.
Dit alles zet ik op papier.
Dan wordt het prototype in elkaar gesoldeerd , in 99.9% van de gevallen op gaatjesprint eerst en getest , de basisroutines voor LCD, I2C, keyboard, timers etc heb ik inmiddels al wel liggen.
Pas DAN begin ik aan het "echte" programma. Het "raamwerk" met de basisroutines ligt er dan al.
Als je nog niet zoveel ervaring hebt, is het beter om iets meer structuur aan te brengen
Mijn ervaring inmiddels is hoe MEER ervaring je hebt hoe MEER structuur je aan gaat brengen omdat je als gevolg van ongeorganiseerd werken vaak dingen over t hoofd ziet die later wel eens aleen OF heel moeilijk OF op een niet erg nette manier op kunt lossen en zo je neus stoot.
Oh ja, tools.
Voor documenten Word (wat een verassing ), voor blokschema's en flowcharts Visio.
Om snel even wat hardware te testen Bascom (is er voor AVR en 8051).
Voor de software meestal de Keil compiler omdat 8051 toch mijn voorkeur heeft, of GCC.
Voor de schema's en PCB's Protel 99SE en af en toe Altium Designer omdat Protel wat probleempjes heeft onder Vista .
Groeten , Bram
[Bericht gewijzigd door
bprosman
op woensdag 11 juni 2008 11:00:57
(10%)