Il software

----------------------------------------------------------------Introduzione
I concetti generali sono sempre quelli che avevo pensato un bel po' di tempo fa (PORTOS). All'epoca pensavo di riuscire ad implementarlo su un PIC16F84, sarebbe stato un po' difficile. Sul PIC16F877a invece è possibilissimo, finora ho occupato solo il 37% della memoria programma disponibile.
Programmare con questo metodo è sicuramente più difficile, soprattutto per un dilettante della programmazione come me: non si possono usare librerie già fatte, ogni routine deve essere progettata appositamente con questa metodologia bene in mente. Una volta imparato il metodo però, aggiungere nuove funzioni diventa abbastanza semplice e non deve essere toccato quello che già funziona, le diverse funzioni e le relative temporizzazioni sono indipendenti tra loro. Anche se l'uso di semafori e variabili globali consuma abbastanza RAM, la potenza del PIC è sicuramente sfruttata al massimo.
Ovviamente con questo metodo il linguaggio C è il più adatto, ho provato a fare qualcosa con il Basic ma ho trovato subito molte difficoltà. Sicuramente si potrebbe programmare anche in assembler ma... io non ne ho proprio voglia!

La versione attuale è basata sul PIC 18F4525, retrocompatibile con il 16F877 e con il 18F452 che ho usato in precedenza ma ancora più potente. Il compilatore usato è il C18 di Microchip.

-------------------------------------------------------------------Descrizioni

Version History

Metodologie generali di programmazione

Procedure per il movimento

Procedure base di comunicazione I2C

Ottimizzazione delle operazioni di divisione

Procedure per la gestione del terminale (LCD + Keypad)

Migrazione 16F877 > 18F452 > 18F4525

Procedure per la gestione della bussola

----------------------------------------------------------------------Il codice
Qui è riportato il codice nella versione attualmente in sviluppo
il programma è molto commentato e non dovrebbe essere difficile interpretarlo
Alcune parti significative del SW sono descritte più in particolare nelle pagine linkate sopra.
immagine2.gif
aggiornato il 02 - 01 - 2006