Ho studiato un po quella che in dotazione della microchip, ma non mi ci sono soffermato troppo, il mio controller è diverso e poi un po per mio diletto, ho deciso di rifarmi una libreria da 0.
Prima ho fatto funzionare LCD, ed ora vorrei creare una libreria il più dinamica possibile.
Arriviamo al dunque:
Siccome per ora lo piloto a 8bit, più i 3bit di controllo, mi capita che non uso una sola porta.
ad esempio adesso ho così cunfigurato il PIC:
- Codice: Seleziona tutto
#define D7 PORTCbits.RC7
#define D6 PORTCbits.RC6
#define D5 PORTCbits.RC5
#define D4 PORTCbits.RC4
#define D3 PORTCbits.RC3
#define D2 PORTBbits.RB4 // <---
#define D1 PORTCbits.RC1
#define D0 PORTCbits.RC0
#define bit4 1
#define bit8 0
// porte SW
#define E PORTBbits.RB1
#define RW PORTBbits.RB2
#define RS PORTBbits.RB3
ho pensato di fare una 'struct' sull'header così:
- Codice: Seleziona tutto
struct PinPort
{
char D7;
char D6;
char D5;
char D4;
char D3;
char D2;
char D1;
char D0;
char E;
char RW;
char RS;
};
poi leggendo la guida della casa, che consiglia di creare un file.c per ogni funzione , pensavo di richiamare la struttura, così:
- Codice: Seleziona tutto
void Comando(char NumBit, char D7, char D6, char D5, char D4, char D3, char D2, char D1, char D0, PinPort StrutturaPorte)
{
StrutturaPorte.RS = 0; //poiché è un comando
StrutturaPorte.RW = 0; //siamo in scrittura
//8bit
if (NumBit == 0)
{
StrutturaPorte.D7 = D7;
StrutturaPorte.D6 = D6;
StrutturaPorte.D5 = D5;
StrutturaPorte.D4 = D4;
StrutturaPorte.D3 = D3;
StrutturaPorte.D2 = D2;
StrutturaPorte.D1 = D1;
StrutturaPorte.D0 = D0;
StrutturaPorte.E = 1; //invio il comando di accensione del display
Ritardo(1);
StrutturaPorte.E = 0; //Togle
} // else bit 4 modalità, da finire...
}
ovviamente nel main.c prima di usare qualsiasi funzione devo inizializzare la struttura e poi usarla, passandola come argomento ad ogni funzione.
Sicuramente è una pessima idea, però se qualcuno ha un consiglio sul come fare...
Il mio obbiettivo è decidere all'inizio ogni porta per ogni comando e poi usare le funzioni in modo che eseguano i comandi direttamente.
Non so magari mi complico troppo la vita.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


