Il mio approccio per lo sviluppo di un software di controllo per Monty

I punti di partenza erano:

-Ora devo cominciare a scrivere il software!

-E' il mio primo programma per robot!

-Vorrei scriverlo in modo che possa essere riutilizzabile anche cambiando microcontrollore

-Deve essere modulare, in modo di poter separare bene i vari task e concentrarmi su un problema per volta

Ho cominciato a cercare in giro per la rete, ho capito (in teoria) diverse metodologie e ho trovato un documento che risponde molto bene al mio concetto di software di controllo. Il documento è l'Application Note Microchip "AN585" "A Real-Time Operating System for PICmicro™ Microcontrollers".

Interpretando a modo mio il metodo, mi sono dato delle regole per lo sviluppo di un sistema operativo multitasking "cooperativo", ogni routine cioè collabora con tutte le altre, ed in particolare con il main, per il buon funzionamento del sistema.

-Ogni routine occupa il sistema per il minor tempo possibile

-Non ci sono loop lunghi o ritardi a SW

-Il main si preoccupa di schedulare i vari task, le routine non si chiamano quasi mai tra loro

-Lo scambio di informazioni tra task avviene tramite flag e variabili globali

-Le temporizzazioni sono realizzate usando come "Real Time Clock" l'interrupt overflow del TIMER0 che è il vero "hearth-beat" del sistema

-L'esecuzione dei vari task è condizionata dai relativi semafori, il main o un altro task può disabilitare una certa funzione

In questo modo è abbastanza facile aggiungere, modificare o togliere funzioni, anche con microcontroller diversi.

Questo è un metodo che rientra nel mio modo di pensare e, soprattutto, nelle mie capacità!

E' un sistema piuttosto dispendioso in termini di ram ma dai primi calcoli (vedi Dichiarazioni Variabili - Costanti - Porte I/O) dovrebbe rientrare rientrare nelle pur limitate capacità del "piccolo" PIC16F84.

Per questo sono partito disegnando il diagramma di flusso Monty Main e la relativa Monty Interrupt Service Routine (ISR) Non è ancora completo ma dovrebbe rendere bene l'idea e dovrebbe essere sufficiente per iniziare a parlarne. Il diagramma è navigabile, cliccando sui box più scuri. Ogni routine è abbastanza commentata al suo interno, spero sia sufficiente.

Qualsiasi parere, commento o critica (costruttiva) è bene accetto, sia via mail diretta: [email protected] sia nel gruppo microrobot di Yahoo!

Guido Ottaviani (I0OTV)