Click here to Skip to main content
15,892,005 members
Home / Discussions / Managed C++/CLI
   

Managed C++/CLI

 
AnswerRe: On which OS Architecture i am 32 Bit or 64 Bit, Can c++ tell me? Pin
Karpov Andrey1-Jan-11 6:45
Karpov Andrey1-Jan-11 6:45 
Questionsaveing bindingsource to database (sql) Pin
sam_b15-Dec-10 11:33
sam_b15-Dec-10 11:33 
QuestionIs there anyone have experience in programming Controller Area Network? Pin
kent524414-Dec-10 22:11
kent524414-Dec-10 22:11 
AnswerRe: Is there anyone have experience in programming Controller Area Network? Pin
Luc Pattyn15-Dec-10 1:22
sitebuilderLuc Pattyn15-Dec-10 1:22 
GeneralRe: Is there anyone have experience in programming Controller Area Network? Pin
kent524415-Dec-10 5:54
kent524415-Dec-10 5:54 
GeneralMy last CAN reply in this forum. Pin
Luc Pattyn15-Dec-10 6:08
sitebuilderLuc Pattyn15-Dec-10 6:08 
GeneralRe: My last CAN reply in this forum. Pin
kent524415-Dec-10 6:19
kent524415-Dec-10 6:19 
QuestionRe: My last CAN reply in this forum. Pin
kent52449-Jan-11 21:32
kent52449-Jan-11 21:32 
Hi Luc Pattyn,

Do you used simulation to run your CAN project? If yes, may I know what is the simulator? I have a proteus 7 software which can do simulation job, but the problem is the software dont have MCP 2551 and MCP 2515 device. I cant find the library.

I have done a simple program but it does not run when i burn into the microcontroller (pic 16f877). There is no compilation error also.

CAN node 1
unsigned char Can_Init_Flags, Can_Send_Flags, Can_Rcv_Flags; // can flags
unsigned char Rx_Data_Len;                                   // received data length in bytes
char RxTx_Data[8];                                           // can rx/tx data buffer
char Msg_Rcvd;                                               // reception flag
const long ID_1st = 12111, ID_2nd = 3;                       // node IDs
long Rx_ID;

// CANSPI module connections
sbit CanSpi_CS            at  RC0_bit;
sbit CanSpi_CS_Direction  at  TRISC0_bit;
sbit CanSpi_Rst           at  RC2_bit;
sbit CanSpi_Rst_Direction at  TRISC2_bit;
// End CANSPI module connections

void main() {

  PORTA = 0x00;                                             // clear PORTA
  TRISA = 0xFF;                                             // set PORTA as input

  //PORTB = 0x00;                                             // clear PORTB
  //TRISB = 0x00;                                             // set PORTB as output
  
  //PORTC = 0x00;                                             // clear PORTC
  //TRISC = 0x00;                                             // set PORTC as output
  
  PORTD = 0x00;                                             // clear PORTD
  TRISD = 0x00;                                             // set PORTD as output

  Can_Init_Flags = 0;                                         //
  Can_Send_Flags = 0;                                         // clear flags
  Can_Rcv_Flags  = 0;                                         //

  Can_Send_Flags = _CANSPI_TX_PRIORITY_0 &                    // form value to be used
                   _CANSPI_TX_XTD_FRAME &                     //     with CANSPIWrite
                   _CANSPI_TX_NO_RTR_FRAME;

  Can_Init_Flags = _CANSPI_CONFIG_SAMPLE_THRICE &             // Form value to be used
                   _CANSPI_CONFIG_PHSEG2_PRG_ON &             //  with CANSPIInit
                   _CANSPI_CONFIG_XTD_MSG &
                   _CANSPI_CONFIG_DBL_BUFFER_ON &
                   _CANSPI_CONFIG_VALID_XTD_MSG;


  SPI1_Init();                                                     // initialize SPI1 module

  CANSPIInitialize(1,3,3,3,1,Can_Init_Flags);                      // Initialize external CANSPI module
  CANSPISetOperationMode(_CANSPI_MODE_CONFIG,0xFF);                // set CONFIGURATION mode
  CANSPISetMask(_CANSPI_MASK_B1,-1,_CANSPI_CONFIG_XTD_MSG);        // set all mask1 bits to ones
  CANSPISetMask(_CANSPI_MASK_B2,-1,_CANSPI_CONFIG_XTD_MSG);        // set all mask2 bits to ones
  CANSPISetFilter(_CANSPI_FILTER_B2_F4,ID_2nd,_CANSPI_CONFIG_XTD_MSG);// set id of filter B2_F4 to 2nd node ID

  CANSPISetOperationMode(_CANSPI_MODE_NORMAL,0xFF);                // set NORMAL mode

  RxTx_Data[0] = 9;                                                // set initial data to be sent

  CANSPIWrite(ID_1st, RxTx_Data, 1, Can_Send_Flags);               // send initial message
}


CAN node2
unsigned char Can_Init_Flags, Can_Send_Flags, Can_Rcv_Flags; // can flags
unsigned char Rx_Data_Len;                                   // received data length in bytes
char RxTx_Data[8];                                           // can rx/tx data buffer
char Msg_Rcvd;                                               // reception flag
const long ID_1st = 12111, ID_2nd = 3;                       // node IDs
long Rx_ID;

// CANSPI module connections
sbit CanSpi_CS            at  RC0_bit;
sbit CanSpi_CS_Direction  at  TRISC0_bit;
sbit CanSpi_Rst           at  RC2_bit;
sbit CanSpi_Rst_Direction at  TRISC2_bit;
// End CANSPI module connections

void main() {

  PORTA = 0x00;                                               // clear PORTA
  TRISA = 0x00;                                               // set PORTA as output

  PORTD = 0x00;                                               // clear PORTD
  TRISD = 0x00;                                               // set PORTD as output

  Can_Init_Flags = 0;                                         //
  Can_Send_Flags = 0;                                         // clear flags
  Can_Rcv_Flags  = 0;                                         //

  Can_Send_Flags = _CANSPI_TX_PRIORITY_0 &                    // form value to be used
                   _CANSPI_TX_XTD_FRAME &                     //   with CANSPIWrite
                   _CANSPI_TX_NO_RTR_FRAME;

  Can_Init_Flags = _CANSPI_CONFIG_SAMPLE_THRICE &             // Form value to be used
                   _CANSPI_CONFIG_PHSEG2_PRG_ON &             //  with CANSPIInit
                   _CANSPI_CONFIG_XTD_MSG &
                   _CANSPI_CONFIG_DBL_BUFFER_ON &
                   _CANSPI_CONFIG_VALID_XTD_MSG &
                   _CANSPI_CONFIG_LINE_FILTER_OFF;

  SPI1_Init();                                                                       // initialize SPI1 module

  CANSPIInitialize(1,3,3,3,1,Can_Init_Flags);                                        // initialize external CANSPI module
  CANSPISetOperationMode(_CANSPI_MODE_CONFIG,0xFF);                                  // set CONFIGURATION mode
  CANSPISetMask(_CANSPI_MASK_B1,-1,_CANSPI_CONFIG_XTD_MSG);                          // set all mask1 bits to ones
  CANSPISetMask(_CANSPI_MASK_B2,-1,_CANSPI_CONFIG_XTD_MSG);                          // set all mask2 bits to ones
  CANSPISetFilter(_CANSPI_FILTER_B2_F3,ID_1st,_CANSPI_CONFIG_XTD_MSG);               // set id of filter B2_F3 to 1st node ID

  CANSPISetOperationMode(_CANSPI_MODE_NORMAL,0xFF);                                  // set NORMAL mode
  
  Msg_Rcvd = CANSPIRead(&Rx_ID , RxTx_Data , &Rx_Data_Len, &Can_Rcv_Flags);

  if ((Rx_ID == ID_1st) && Msg_Rcvd) {                                               
  PORTD = 0x01;                                    // if id is valid, port D will have output of 0000 0001  
  }
  else
  PORTD = 0x08;                                    // else port D will have output of 0000 1000
}


The result is 0000 1000, which means node 2 does not received any message from node 1.

I hope you can advise me in this problem. Thanks.
AnswerRe: My last CAN reply in this forum. Pin
Luc Pattyn10-Jan-11 0:40
sitebuilderLuc Pattyn10-Jan-11 0:40 
GeneralRe: My last CAN reply in this forum. Pin
kent524411-Jan-11 5:40
kent524411-Jan-11 5:40 
GeneralRe: My last CAN reply in this forum. Pin
kent524412-Jan-11 15:03
kent524412-Jan-11 15:03 
GeneralCAN diagram Pin
Luc Pattyn12-Jan-11 15:09
sitebuilderLuc Pattyn12-Jan-11 15:09 
GeneralRe: CAN diagram Pin
kent524412-Jan-11 16:45
kent524412-Jan-11 16:45 
GeneralRe: CAN diagram Pin
Luc Pattyn12-Jan-11 17:21
sitebuilderLuc Pattyn12-Jan-11 17:21 
QuestionHow to convert SAFEARRAY to System::Object Pin
ptr_Electron12-Dec-10 23:19
ptr_Electron12-Dec-10 23:19 
AnswerRe: How to convert SAFEARRAY to System::Object Pin
Radhakrishnan G.14-Dec-10 20:06
Radhakrishnan G.14-Dec-10 20:06 
QuestionHow to use C DLL in C++/CLI Pin
cancerion1-Dec-10 23:32
cancerion1-Dec-10 23:32 
AnswerRe: How to use C DLL in C++/CLI Pin
Luc Pattyn2-Dec-10 1:00
sitebuilderLuc Pattyn2-Dec-10 1:00 
Questionconversion Pin
rajniyadav1a1-Dec-10 19:09
rajniyadav1a1-Dec-10 19:09 
AnswerRe: conversion Pin
Ajay Vijayvargiya1-Dec-10 21:12
Ajay Vijayvargiya1-Dec-10 21:12 
Questionpythonqt scriptint & orting to lower version Pin
appollosputnik25-Nov-10 16:41
appollosputnik25-Nov-10 16:41 
AnswerRe: pythonqt scriptint & orting to lower version Pin
Richard MacCutchan25-Nov-10 22:09
mveRichard MacCutchan25-Nov-10 22:09 
QuestionDelegates in Managed C++ Pin
ptr_Electron24-Nov-10 3:06
ptr_Electron24-Nov-10 3:06 
AnswerRe: Delegates in Managed C++ Pin
Dave Doknjas24-Nov-10 11:34
Dave Doknjas24-Nov-10 11:34 
GeneralRe: Delegates in Managed C++ [modified] Pin
ptr_Electron24-Nov-10 17:00
ptr_Electron24-Nov-10 17:00 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.