Problemi con la libreria CANbus
- Circuito93
-
Autore della discussione
- Nuovo Utente
-
Less
Di più
6 Anni 7 Mesi fa #1
da Circuito93
Problemi con la libreria CANbus è stato creato da Circuito93
Buonasera a tutti,
Chiedo un aiuto per quanto riguarda il protocollo can bus. Sto cercando di far comunicare due pic 18F2580 con modulo ECAN attraverso il protocollo CAN bus.
Entrambi i pic lavorano con un quarzo da 20MHz e condensatori da 15pF e sono interfacciati sul bus attraverso i trasceiver mcp2551.
Sto utilizzando il vecchio MPLAB v8.92 con il compilatore C18 C compiler v3.47. Ho preso come riferimento la libreria laurtec CANlib.h.
Ho preso come spunto l'esempio sul tutorial della libreria, ma fino ad ora (per mia inesperienza) non sono riuscito a
far funzionare il sistema. Ho caricato lo stesso programma su entrambi i pic.
Il programma è pensato per accendere un led dopo aver pigiato un tasto.
Qualcuno sa dirmi cosa sto sbagliando?
Vi ringrazio di cuore.
Valerio
Chiedo un aiuto per quanto riguarda il protocollo can bus. Sto cercando di far comunicare due pic 18F2580 con modulo ECAN attraverso il protocollo CAN bus.
Entrambi i pic lavorano con un quarzo da 20MHz e condensatori da 15pF e sono interfacciati sul bus attraverso i trasceiver mcp2551.
Sto utilizzando il vecchio MPLAB v8.92 con il compilatore C18 C compiler v3.47. Ho preso come riferimento la libreria laurtec CANlib.h.
Ho preso come spunto l'esempio sul tutorial della libreria, ma fino ad ora (per mia inesperienza) non sono riuscito a
far funzionare il sistema. Ho caricato lo stesso programma su entrambi i pic.
Il programma è pensato per accendere un led dopo aver pigiato un tasto.
Code:
// Imposta la modalità di funzionamento del modulo CAN
CANOperationMode (CAN_OP_MODE_NORMAL);
// 20 MHz 125Kb/s --> 2,7,6,1,4,
CANInitialize (2, 7, 6, 1, 4, CAN_CONFIG_LINE_FILTER_OFF &
CAN_CONFIG_SAMPLE_ONCE &
CAN_CONFIG_ALL_VALID_MSG &
CAN_CONFIG_DBL_BUFFER_ON);
// Ciclo infinito
while(1) {
// Azzero il contenuto nell' Array
info [0] = 0x00;
if (BUTTON_1 == BUTTON_PRESSED) {
info[0] = 0x01;
}
if (info[0] > 0) {
// Controlla che sia possibile inviare il messaggio
while (!CANisTxReady())
// Invia il carattere sul CANbus
CANsendMessage (0x0A005510, info, 1, CAN_TX_XTD_FRAME &
CAN_NORMAL_TX_FRAME &
CAN_TX_PRIORITY_2);
}
// Controlla se è stato ricevuto un dato
if (CANisRxReady()) {
CANreceiveMessage(&msg);
if (msg.data[0] == 0x01) {
LED = 0x01;
}
}
}
Qualcuno sa dirmi cosa sto sbagliando?
Vi ringrazio di cuore.
Valerio
Si prega Accesso o Crea un account a partecipare alla conversazione.
6 Anni 7 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Problemi con la libreria CANbus
Salve Valerio,
ti consiglio di migrare a XC8 e MPLAB IDE.
Ormai C18 non è più supportato.
Ti consiglio di verificare i seguenti articoli.
MPLAB X: Il nuovo IDE della Microchip
Il compilatore XC8, come migrare dal C18
Scarica la nuova libreria LTlib e vedi gli esempi per il modulo CAN.
Nella versione LTlib 4.x.x ho ancora compatibilità con C18.
Dalla prossima LTlib 5.x.x ho tolto la compatibilità con C18.
Saluti,
Mauro
ti consiglio di migrare a XC8 e MPLAB IDE.
Ormai C18 non è più supportato.
Ti consiglio di verificare i seguenti articoli.
MPLAB X: Il nuovo IDE della Microchip
Il compilatore XC8, come migrare dal C18
Scarica la nuova libreria LTlib e vedi gli esempi per il modulo CAN.
Nella versione LTlib 4.x.x ho ancora compatibilità con C18.
Dalla prossima LTlib 5.x.x ho tolto la compatibilità con C18.
Saluti,
Mauro
I seguenti utenti hanno detto grazie : Circuito93
Si prega Accesso o Crea un account a partecipare alla conversazione.
6 Anni 7 Mesi fa #3
da Circuito93
Risposta da Circuito93 al topic Problemi con la libreria CANbus
Grazie per il prezioso consiglio! Migrerò al più presto a MPLABX.
Saluti,
Valerio
Saluti,
Valerio
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
