spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica Avanzata > Comunicazione

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 06-11-2007, 16.18.44
Fu Mauro Fu Mauro non è collegato
Robottaro master
 
Data registrazione: 03-07-2006
Residenza: Norimberga (Germania)
Messaggi: 440
Potenza reputazione: 182
Fu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua fama
Predefinito Tutorial Protocollo CAN

Salve a tutti,

per gli interessati ho messo online (sul mio sito) un nuovo tutorial che tratta il protocollo CAN...

...buona lettura!

Ciao,

Mauro
__________________
www.LaurTec.it

Artorius Humanoid Robot, Robot Domotino, C18, USB, PIC, Elettrocardiografo...e molto altro
Rispondi citando
  #2  
Vecchio 06-11-2007, 19.54.53
L'avatar di Andrea76x
Andrea76x Andrea76x non è collegato
Robottaro senior
 
Data registrazione: 15-01-2007
Residenza: Poznan (Polonia), ma sono di Cesena
Età : 42
Messaggi: 35
Potenza reputazione: 50
Andrea76x E' per ora ancora un mistero
Predefinito

Complimenti e grazie!
Rispondi citando
  #3  
Vecchio 07-11-2007, 08.31.29
Fu Mauro Fu Mauro non è collegato
Robottaro master
 
Data registrazione: 03-07-2006
Residenza: Norimberga (Germania)
Messaggi: 440
Potenza reputazione: 182
Fu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua fama
Predefinito

...i complimenti sono sensati a fine lettura!

Ciao,

Grazie
__________________
www.LaurTec.it

Artorius Humanoid Robot, Robot Domotino, C18, USB, PIC, Elettrocardiografo...e molto altro
Rispondi citando
  #4  
Vecchio 05-11-2010, 16.55.49
1q2w3e4r 1q2w3e4r non è collegato
Nuovo robottaro
 
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 31
Messaggi: 12
Potenza reputazione: 0
1q2w3e4r E' per ora ancora un mistero
Predefinito

grazie, mi sarà utile...
Rispondi citando
  #5  
Vecchio 05-11-2010, 17.38.06
Fu Mauro Fu Mauro non è collegato
Robottaro master
 
Data registrazione: 03-07-2006
Residenza: Norimberga (Germania)
Messaggi: 440
Potenza reputazione: 182
Fu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua fama
Predefinito

...molto bene...

Ho appena riformattato alcune parti per una segnalazione ricevuta proprio oggi. La versione 1.0b e' ora disponibile.

Buona lettura,

Saluti,

Mauro
__________________
www.LaurTec.it

Artorius Humanoid Robot, Robot Domotino, C18, USB, PIC, Elettrocardiografo...e molto altro
Rispondi citando
  #6  
Vecchio 07-11-2010, 22.39.26
1q2w3e4r 1q2w3e4r non è collegato
Nuovo robottaro
 
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 31
Messaggi: 12
Potenza reputazione: 0
1q2w3e4r E' per ora ancora un mistero
Predefinito

ciao, non so se è la sezione giusta, posto qui perchè sono sicuro che l'autore della discussione veda il messaggio...

Ho scaricato dal sito Laurtec la libreria CAN per pic, ho scritto un programma per il 18f2580 per ricevere un messaggio dal can bus, inserendo il seguente codice, come indicato nel pdf:
Codice:
CANmessage msg;

CANInitialize (2,4,3,1,1, CAN_CONFIG_LINE_FILTER_OFF & CAN_CONFIG_SAMPLE_ONCE & CAN_CONFIG_ALL_VALID_MSG & CAN_CONFIG_DBL_BUFFER_ON);



while (1){
                          if (CANisRxReady ()){
                                               CANreceiveMessage (&msg);
                                               //fai quello che devi fare
                                               }
                          else{
                               // programma da eseguire in caso non sia stato ricevuto un dato
                               }
                          
                          }
Però quando arrivo a compilare mi dà un errore di sintassi sulla definizione della variabile msg. Inoltre ho visto che la funzione CANreceiveMessage() dovrebbe restituire una variabile BYTE, ma per come è stato scritto il programma è come se non restituisse nulla... Dov'è che sbaglio??
Rispondi citando
  #7  
Vecchio 08-11-2010, 17.54.48
Fu Mauro Fu Mauro non è collegato
Robottaro master
 
Data registrazione: 03-07-2006
Residenza: Norimberga (Germania)
Messaggi: 440
Potenza reputazione: 182
Fu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua fama
Predefinito

Ciao,

Riguardo alla funzione CANreceiveMessage ritorna un BYTE ma non e' quello che ricevi ma il codice di errore.
I dati ricevuti sono memorizzati nella struttura msg della quale si passa l'indirizzo alla funzione stessa.

Riguardo all'errore di compilazione presumo che il codice sia inserito in un programma intero. Il segmento di codice riportato non e' un programma di esempio intero.

Se posti il codice intero vedo dove hai l'errore.

Saluti,

Mauro
__________________
www.LaurTec.it

Artorius Humanoid Robot, Robot Domotino, C18, USB, PIC, Elettrocardiografo...e molto altro
Rispondi citando
  #8  
Vecchio 08-11-2010, 19.19.31
1q2w3e4r 1q2w3e4r non è collegato
Nuovo robottaro
 
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 31
Messaggi: 12
Potenza reputazione: 0
1q2w3e4r E' per ora ancora un mistero
Predefinito

Ciao, grazie per l'aiuto....
Ho provato a caricare, come allegato al post, il codice completo in pdf ma mi da errore, quindi l'ho caricato al seguente link (era il modo più veloce che avevo al momento):


Per quando riguarda l'errore sulla variabile ho risolto, anche se non capisco come, dichiarando la variabile fuori dal main().

Però è sorto un altro problema, ho provato a simulare il programma con mplab, ma si blocca durante la funzione CANInitialize(), più precisamente alla fine, quando viene chiamata la funzione per tornare in modalità normale CANOperationMode(CAN_OP_MODE_NORMAL);..
Guardando i registri si vede che CANCON è settato correttamente a 00000000, mentre invece CANSTAT rimane a 10000000, bloccandosi sul while di conseguenza e non capisco perchè...

Un ultima cosa, ho visto dal datasheet del componente che le due porte dedicate al can bus sono RC6 e RC7, le devo impostare come uscite o come ingressi?


Grazie di nuovo...

Ultima modifica di 1q2w3e4r : 11-01-2011 alle ore 13.59.31
Rispondi citando
  #9  
Vecchio 08-11-2010, 19.44.13
Fu Mauro Fu Mauro non è collegato
Robottaro master
 
Data registrazione: 03-07-2006
Residenza: Norimberga (Germania)
Messaggi: 440
Potenza reputazione: 182
Fu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua famaFu Mauro La sua reputazione è oltre la sua fama
Predefinito

Ciao,

Ponendo fuori dal main la variabile, la rendi globale.
Probabilmente, confrontando i due codici, avevi dichiarato la variabile non subito dopo il main, cosa che devi fare in C.
Non puoi dichiarare variabili nel mezzo del main come in C++, Java o altri linguaggi.

Riguardo ai pin, il modulo CAN usa il pin RB2 e RB3. Il pin RB2 e' sovrascritto dal modulo CAN dunque va bene qualunque valore, mentre il pin RB3 deve essere posto a 1 (e' specificato nel datasheet).

Riguardo alla simulazione e' normale che si blocchi. Infatti il modulo CAN non e' implementato. Se per esempio stacchi il transceiver dal PIC, anche nella pratica il programma si blocca poiche' il PIC non puo' cambiare modalita'.

Leggi il datasheet in maniera piu' accurata.

Saluti,

Mauro
__________________
www.LaurTec.it

Artorius Humanoid Robot, Robot Domotino, C18, USB, PIC, Elettrocardiografo...e molto altro
Rispondi citando
  #10  
Vecchio 08-11-2010, 20.26.08
1q2w3e4r 1q2w3e4r non è collegato
Nuovo robottaro
 
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 31
Messaggi: 12
Potenza reputazione: 0
1q2w3e4r E' per ora ancora un mistero
Predefinito

Citazione:
Orginalmente inviato da Fu Mauro Visualizza messaggio

Riguardo alla simulazione e' normale che si blocchi. Infatti il modulo CAN non e' implementato. Se per esempio stacchi il transceiver dal PIC, anche nella pratica il programma si blocca poiche' il PIC non puo' cambiare modalita'.
o
Scusami ma non mi è ben chiara questa cosa.
Io avevo capito che tramite il registro CANCON ho un controllo sul modulo can, quindi lo uso per cambiare modalità operativa, mentre tramite il CANSTAT posso leggerne lo stato, quindi mi blocco finchè non la cambia modalità operativa... Non capisco però come sia collegato a questo il transceiver..
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Distanza con protocollo SPI. Ziko Comunicazione 3 27-08-2012 12.21.49
Più strada cambiando protocollo. Ziko Comunicazione 8 28-01-2011 11.29.05
PIC in rete con rs232+protocollo UART calo Comunicazione 2 25-01-2008 21.07.16
Protocollo: Pratica nonno_62 Progetto robot MODDI (forum chiuso) 23 18-02-2007 21.02.06
Protocollo marnic Progetto robot MODDI (forum chiuso) 115 30-09-2006 17.37.34


Tutti gli orari sono GMT. Adesso sono le: 19.55.13.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB