Citazione:
Originalmente inviato da ElNonino my 2 cents:
per creare codice 'C' portatile fra dispositivi diversi è una buona regola utilizzare lo ANSI C che è universalmente standard, poi crearsi alcune macro per operazioni di base anch'esse standard.
Io poi mi son creato alcuni files header contenenti i #define personalizzati dei registri o porte dei vari micro, in tal modo modifico solo alcuni <include> ed il codice resta invariato passando da un PIC16 a dsPIC33 o STM32; chiaramente tenendo poi comunque conto delle diverse risorse hw e velocità (temporizzazioni) dei dispositivi.
Per abitudine poi utilizzo un altro <include> comune a tutti che definisce alcuni tipi di variabili, char, byte, word, etc etc costituiti da struct ed union; ciò consente di accedere direttamente al singolo bit, byte...di ogni variabile; ad esempio in una media mobile di 16..64 valori basta estrarre lo lsb o lsw dalla variabile anzichè dividere per 16 o 64.
Un buon stile di programmazione facilità molto la portatilità. |
Si ma se in un processore hai solo 2 livelli di interrupt e nell'altro 6 poco aiutano i define soprattutto se ne vuoi usare 6.