Ciao a tutti,
usando il compilatore PICC della HT-SOFT (come plug-in in MPLAB) su un PIC
16F876, purtroppo, sono incappato in alcuni problemi abbastanza singolari.Utilizzo le interruzioni di TMR0 come riferimento "tempo", TMR1, CAPTURE1 e CAPTURE2 per misurare la frequenza di 2 segnali ad onda quadra (300 Hz e 150 Hz max.), il convertitore A/D, e piloto un display LCD HD44780.
Il programma occupa circa meta' ROM, e, continuando ad aggiungere routines, d'un tratto ha iniziato a bloccarsi (con il display che indica caratteri casuali), dopo qualche secondo dall'alimentazione. Modificando impostazioni del compilatore quali ottimizzazione globale (e relativo livello), ottimizzazione assembler e cose del genere spesso riesco a risolvere (dopo qualche tentativo), ma e' sufficiente aggiungere-togliere anche 1 sola riga e ricompilare per ottenere un HEX con i problemi descritti sopra...mi e' stato fatto notare che potrebbe essere un problema dovuto alla complessita' (e lunghezza) del codice presente in routine di interruzione, e devo dire che, tagliandone una parte, pareva che il problema fosse risolto. Purtroppo e' bastato aggiunegere un po' di codice (non in routine INT) per tornare al punto di prima :-(. Suppongo sia un qualcosa legato ai salti tra le varie pagine e gestione dei relativi bit che costituiscono la "parte alta" dell'indirizzo RP1:RP0 in fase di ingresso/uscita dagli interrupt...ma non saprei proprio come risolvere... Succede solo a me o qualcun'altro ha avuto esperienze simili ? :-/
Ringrazio in anticipo per l'interessamento... :)
Ciao, Pier.