📄 ex4m_test.c
字号:
#include <p18f458.h> // p18cxxx.h must have current processor
#include "CAN18XX8.h" // Purpose of using AN738 Subroutine !!
#include "WAP_LCD.H"
#include <stdlib.h>
void Delay_100(void) ;
char Temp_ASCII[10] ;
char WaitOnBus ;
union
{
unsigned char Bytes[2] ;
unsigned int Word ;
} AD_ALL ;
unsigned char Var1,Var2 ;
unsigned long TX_ID1 ;
BYTE TX_Data_Buf1[8] ;
unsigned long RX_ID1 ;
BYTE RX_Data_Buf1[8] ;
BYTE RX_Data_Len1 ;
enum CAN_RX_MSG_FLAGS RX1_Message_Flag ;
unsigned long RX_ID2 ;
BYTE RX_Data_Buf2[8] ;
BYTE RX_Data_Len2 ;
enum CAN_RX_MSG_FLAGS RX2_Message_Flag ;
#define OUTGOING_ID 0X210
#define INCOMING_ID 0X200
#define MESSAGE_ID1 0x200
#define MESSAGE_ID2 0x88
#define RX_Filter0 0x100
#define RX_Filter1 0x00
#define RX_Filter2 0x00
#define RX_Filter3 0x00
#define RX_Filter4 0x00
#define RX_Filter5 0x00
#define RXB0_MASK 0x7ff
#define RXB1_MASK 0x7ff
#define CONFIG_ID_MIN 0x81
#define CONFIG_ID_MAX 0x8a
#define SW2 PORTBbits.RB0
#define SW3 PORTAbits.RA4
const rom unsigned char REQUEST_ID[12] = { 0x100 , 0x110 , 0x120, 0x130, 0x140,0x150,0x160,0x170,0x180,0x190,0x1a0,0x1b} ;
unsigned RequestID
void main( void )
{
PORTD = 0x00 ;
TRISD = 0x00 ;
TRISBbits.TRISB2 = 0 ; // CANTX
TRISBbits.TRISB3 = 1 ; // CANRX
TRISBbits.TRISB0 = 1 ; // Switch 2
TRISAbits.TRISA4 = 1 ; // Switch 3
CMCON = 0b00000111 ; // Disable Comparator Module
ADCON0 = 0b10000001 ; // Initial ADCON0 for A/D Module
ADCON1bits.ADFM = 1 ; // Right Justified !!
OpenLCD( ) ;
Delay_100( ) ;
putrsLCD("FL= IN= ") ;
LCD_Set_Cursor(0,1) ;
putrsLCD("ID= AD= ") ;
itoa ( MESSAGE_ID1 ,Temp_ASCII ) ;
LCD_Set_Cursor(3,0) ;
putsLCD(Temp_ASCII ) ;
itoa (RX_Filter0,Temp_ASCII ) ;
LCD_Set_Cursor(3,1) ;
putsLCD(Temp_ASCII ) ;
//
// Initialize CAN Communication Module !!
// The Sequence of Parameter is SJW,BRP,PHASEG1,PHASEG2,PROPSEG, Mode !!
//
CANInitialize( 2,8,3,3,1, CAN_CONFIG_LINE_FILTER_OFF &
CAN_CONFIG_SAMPLE_ONCE &
CAN_CONFIG_VALID_STD_MSG &
CAN_CONFIG_PHSEG2_PRG_ON ) ;
CANSetOperationMode(CAN_OP_MODE_CONFIG) ;
CANSetMask(CAN_MASK_B1, 0x7ff, CAN_CONFIG_STD_MSG ) ; // Set Mask For Standard Data Frame
CANSetMask(CAN_MASK_B2, 0x7ff, CAN_CONFIG_STD_MSG ) ;
CANSetFilter(CAN_FILTER_B1_F1, RX_Filter0 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B1_F2, 0x00000000 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F1, 0x00000000 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F2, 0x00000000 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F3, 0x00000000 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F4, 0x00000000 , CAN_CONFIG_STD_MSG) ;
CANSetOperationMode(CAN_OP_MODE_NORMAL) ;
TX_Data_Buf1[0] = 0x01 ;
TX_Data_Buf1[1] = 0x02 ;
TX_Data_Buf1[2] = 0x03 ;
TX_Data_Buf1[3] = 0x04 ;
TX_Data_Buf1[4] = 0x05 ;
ConfigID = CONFIG_ID_MIN ;
// TX_Data_Buf1[0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -