Rev 53 | Blame | Last modification | View Log | SVN | RSS feed
MP2COD 4.02, COFF to COD File ConverterCopyright (c) 2006 Microchip Technology Inc.Listing File Generated: Wed Oct 25 15:33:05 2006Address Value Disassembly Source File------- ------- ----------------------- ------------------------------------------------------------------------------- -----/********************************************************************* F:\MCP\projects\CAN\canNode\Source\Tick.c* F:\MCP\projects\CAN\canNode\Source\Tick.c* Ticker service F:\MCP\projects\CAN\canNode\Source\Tick.c* F:\MCP\projects\CAN\canNode\Source\Tick.c********************************************************************* F:\MCP\projects\CAN\canNode\Source\Tick.c* FileName: Tick.c F:\MCP\projects\CAN\canNode\Source\Tick.c* F:\MCP\projects\CAN\canNode\Source\Tick.c* Author Date Comment F:\MCP\projects\CAN\canNode\Source\Tick.c*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ F:\MCP\projects\CAN\canNode\Source\Tick.c* Johan Böhlin 21-10-06 Original (Rev 1.0) F:\MCP\projects\CAN\canNode\Source\Tick.c********************************************************************/ F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#define TICK_INCLUDE F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#include <Tick.h> F:\MCP\projects\CAN\canNode\Source\Tick.c#include <Compiler.h> F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#if TICK_TEMP_VALUE_1 > 60000 F:\MCP\projects\CAN\canNode\Source\Tick.c#error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ F:\MCP\projects\CAN\canNode\Source\Tick.c#error Either lower TICK_PER_SECOND or manually configure the Timer F:\MCP\projects\CAN\canNode\Source\Tick.c#endif F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#define TICK_TEMP_VALUE (65535 - TICK_TEMP_VALUE_1) F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#define TICK_COUNTER_HIGH ((TICK_TEMP_VALUE >> 8) & 0xff) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TICK_COUNTER_LOW (TICK_TEMP_VALUE & 0xff) F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c#if (TICK_PRESCALE_VALUE == 2) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (0) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 4 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (1) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 8 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (2) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 16 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (3) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 32 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (4) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 64 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (5) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 128 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (6) F:\MCP\projects\CAN\canNode\Source\Tick.c#elif ( TICK_PRESCALE_VALUE == 256 ) F:\MCP\projects\CAN\canNode\Source\Tick.c#define TIMER_PRESCALE (7) F:\MCP\projects\CAN\canNode\Source\Tick.c#else F:\MCP\projects\CAN\canNode\Source\Tick.c#error Invalid TICK_PRESCALE_VALUE specified. F:\MCP\projects\CAN\canNode\Source\Tick.c#endif F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.cTICK TickCount = 0; // 10ms/unit F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c/* F:\MCP\projects\CAN\canNode\Source\Tick.c* Function: TickInit F:\MCP\projects\CAN\canNode\Source\Tick.c* F:\MCP\projects\CAN\canNode\Source\Tick.c* Input: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Output: Tick manager is initialized. F:\MCP\projects\CAN\canNode\Source\Tick.c* Pre-conditions: TickInit F:\MCP\projects\CAN\canNode\Source\Tick.c* Affects: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Depends: none F:\MCP\projects\CAN\canNode\Source\Tick.c*/ F:\MCP\projects\CAN\canNode\Source\Tick.c#define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS F:\MCP\projects\CAN\canNode\Source\Tick.cvoid tickInit(void) F:\MCP\projects\CAN\canNode\Source\Tick.c{ F:\MCP\projects\CAN\canNode\Source\Tick.c// Start the timer. F:\MCP\projects\CAN\canNode\Source\Tick.c000a4c 0e79 MOVLW 0x79 TMR0L = TICK_COUNTER_LOW; F:\MCP\projects\CAN\canNode\Source\Tick.c000a4e 6ed6 MOVWF 0xd6,0x0000a50 0efe MOVLW 0xfe TMR0H = TICK_COUNTER_HIGH; F:\MCP\projects\CAN\canNode\Source\Tick.c000a52 6ed7 MOVWF 0xd7,0x0F:\MCP\projects\CAN\canNode\Source\Tick.c// 16-BIT, internal timer, PSA set to 1:256 F:\MCP\projects\CAN\canNode\Source\Tick.c000a54 0e07 MOVLW 0x7 T0CON = 0b00000000 | TIMER_PRESCALE; F:\MCP\projects\CAN\canNode\Source\Tick.c000a56 6ed5 MOVWF 0xd5,0x0F:\MCP\projects\CAN\canNode\Source\Tick.c// Start the timer. F:\MCP\projects\CAN\canNode\Source\Tick.c000a58 8ed5 BSF 0xd5,0x7,0x0 T0CONbits.TMR0ON = 1; F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c000a5a 84f2 BSF 0xf2,0x2,0x0 INTCONbits.TMR0IF = 1; F:\MCP\projects\CAN\canNode\Source\Tick.c000a5c 8af2 BSF 0xf2,0x5,0x0 INTCONbits.TMR0IE = 1; F:\MCP\projects\CAN\canNode\Source\Tick.c000a5e 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c/* F:\MCP\projects\CAN\canNode\Source\Tick.c* Function: TickGet F:\MCP\projects\CAN\canNode\Source\Tick.c* F:\MCP\projects\CAN\canNode\Source\Tick.c* Input: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Output: Current tick value is given, 1 tick represents approximately 10ms F:\MCP\projects\CAN\canNode\Source\Tick.c* Pre-conditions: TickInit F:\MCP\projects\CAN\canNode\Source\Tick.c* Affects: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Depends: none F:\MCP\projects\CAN\canNode\Source\Tick.c*/ F:\MCP\projects\CAN\canNode\Source\Tick.cTICK tickGet(void) F:\MCP\projects\CAN\canNode\Source\Tick.c{ F:\MCP\projects\CAN\canNode\Source\Tick.c000a60 c074 MOVFF 0x74,0x18 return TickCount; F:\MCP\projects\CAN\canNode\Source\Tick.c000a62 f018000a64 c075 MOVFF 0x75,0x19000a66 f019000a68 c076 MOVFF 0x76,0x1a000a6a f01a000a6c c077 MOVFF 0x77,0x1b000a6e f01b000a70 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.cF:\MCP\projects\CAN\canNode\Source\Tick.c/* F:\MCP\projects\CAN\canNode\Source\Tick.c* Function: tickUpdate F:\MCP\projects\CAN\canNode\Source\Tick.c* F:\MCP\projects\CAN\canNode\Source\Tick.c* Input: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Output: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Pre-conditions: TickInit F:\MCP\projects\CAN\canNode\Source\Tick.c* Affects: none F:\MCP\projects\CAN\canNode\Source\Tick.c* Depends: none F:\MCP\projects\CAN\canNode\Source\Tick.c*/ F:\MCP\projects\CAN\canNode\Source\Tick.cvoid tickUpdate(void) F:\MCP\projects\CAN\canNode\Source\Tick.c{ F:\MCP\projects\CAN\canNode\Source\Tick.c000a72 a4f2 BTFSS 0xf2,0x2,0x0 if(INTCONbits.TMR0IF) F:\MCP\projects\CAN\canNode\Source\Tick.c000a74 d00b BRA 0xa8c{ F:\MCP\projects\CAN\canNode\Source\Tick.c000a76 0efe MOVLW 0xfe TMR0H = TICK_COUNTER_HIGH; F:\MCP\projects\CAN\canNode\Source\Tick.c000a78 6ed7 MOVWF 0xd7,0x0000a7a 0e79 MOVLW 0x79 TMR0L = TICK_COUNTER_LOW; F:\MCP\projects\CAN\canNode\Source\Tick.c000a7c 6ed6 MOVWF 0xd6,0x0F:\MCP\projects\CAN\canNode\Source\Tick.c000a7e 0100 MOVLB 0x0 TickCount++; F:\MCP\projects\CAN\canNode\Source\Tick.c000a80 2b74 INCF 0x74,0x1,0x1000a82 0e00 MOVLW 0x0000a84 2375 ADDWFC 0x75,0x1,0x1000a86 2376 ADDWFC 0x76,0x1,0x1000a88 2377 ADDWFC 0x77,0x1,0x1F:\MCP\projects\CAN\canNode\Source\Tick.c000a8a 94f2 BCF 0xf2,0x2,0x0 INTCONbits.TMR0IF = 0; F:\MCP\projects\CAN\canNode\Source\Tick.c} F:\MCP\projects\CAN\canNode\Source\Tick.c000a8c 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\Tick.c/********************************************************************* F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c* CAN driver F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c********************************************************************* F:\MCP\projects\CAN\canNode\Source\CAN.c* FileName: CAN.c F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c* Author Date Comment F:\MCP\projects\CAN\canNode\Source\CAN.c*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ F:\MCP\projects\CAN\canNode\Source\CAN.c* Johan Böhlin 21-10-06 Original (Rev 1.0) F:\MCP\projects\CAN\canNode\Source\CAN.c********************************************************************/ F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c#include <CANdefs.h> F:\MCP\projects\CAN\canNode\Source\CAN.c#include <stackTasks.h> F:\MCP\projects\CAN\canNode\Source\CAN.c#include <CAN.h> F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cstatic void canGetPacket(void); F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c#ifdef USE_CAN F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c/* F:\MCP\projects\CAN\canNode\Source\CAN.c* Function: canInit F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c* Input: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Output: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Pre-conditions: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Affects: Changes can registers. F:\MCP\projects\CAN\canNode\Source\CAN.c* Depends: none. F:\MCP\projects\CAN\canNode\Source\CAN.c*/ F:\MCP\projects\CAN\canNode\Source\CAN.cvoid canInit() F:\MCP\projects\CAN\canNode\Source\CAN.c{ F:\MCP\projects\CAN\canNode\Source\CAN.c000044 0e80 MOVLW 0x80 CANCON = 0x80; //request config mode F:\MCP\projects\CAN\canNode\Source\CAN.c000046 6e6f MOVWF 0x6f,0x0000048 0ee0 MOVLW 0xe0 while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request F:\MCP\projects\CAN\canNode\Source\CAN.c00004a 146e ANDWF 0x6e,0x0,0x000004c 0880 SUBLW 0x8000004e e1fc BNZ 0x48F:\MCP\projects\CAN\canNode\Source\CAN.c// BAUD AND TQS F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c000050 6a70 CLRF 0x70,0x0 BRGCON1=0; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Sync_Seq = 2 x TQ = 1 F:\MCP\projects\CAN\canNode\Source\CAN.c000052 9e70 BCF 0x70,0x7,0x0 BRGCON1bits.SJW1=0; F:\MCP\projects\CAN\canNode\Source\CAN.c000054 8c70 BSF 0x70,0x6,0x0 BRGCON1bits.SJW0=1; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Setting BRP. F:\MCP\projects\CAN\canNode\Source\CAN.c000056 0e09 MOVLW 0x9 BRGCON1=BRGCON1|CAN_BRP; F:\MCP\projects\CAN\canNode\Source\CAN.c000058 1070 IORWF 0x70,0x0,0x000005a 6e70 MOVWF 0x70,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c// Maximum PHEG1 F:\MCP\projects\CAN\canNode\Source\CAN.c00005c 8e71 BSF 0x71,0x7,0x0 BRGCON2bits.SEG2PHTS = 1; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Phase_Seg1 = 2 x TQ = 1 F:\MCP\projects\CAN\canNode\Source\CAN.c00005e 9a71 BCF 0x71,0x5,0x0 BRGCON2bits.SEG1PH2 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000060 9871 BCF 0x71,0x4,0x0 BRGCON2bits.SEG1PH1 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000062 8671 BSF 0x71,0x3,0x0 BRGCON2bits.SEG1PH0 = 1; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Prop_Seq = 2 x TQ = 1 F:\MCP\projects\CAN\canNode\Source\CAN.c000064 9471 BCF 0x71,0x2,0x0 BRGCON2bits.PRSEG2 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000066 9271 BCF 0x71,0x1,0x0 BRGCON2bits.PRSEG1 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000068 8071 BSF 0x71,0x0,0x0 BRGCON2bits.PRSEG0 = 1; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Enableing bus wake-up F:\MCP\projects\CAN\canNode\Source\CAN.c00006a 9e72 BCF 0x72,0x7,0x0 BRGCON3bits.WAKDIS = 0; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Dont use filter when wakeup F:\MCP\projects\CAN\canNode\Source\CAN.c00006c 9c72 BCF 0x72,0x6,0x0 BRGCON3bits.WAKFIL = 0; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Phase_Seg2 = 2 x TQ = 1 F:\MCP\projects\CAN\canNode\Source\CAN.c00006e 9472 BCF 0x72,0x2,0x0 BRGCON3bits.SEG2PH2 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000070 9272 BCF 0x72,0x1,0x0 BRGCON3bits.SEG2PH1 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000072 8072 BSF 0x72,0x0,0x0 BRGCON3bits.SEG2PH0 = 1; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c000074 6a77 CLRF 0x77,0x0 ECANCON=0; F:\MCP\projects\CAN\canNode\Source\CAN.c000076 9e77 BCF 0x77,0x7,0x0 ECANCONbits.MDSEL1 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000078 8c77 BSF 0x77,0x6,0x0 ECANCONbits.MDSEL0 = 1; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// FILTERS AND MASKS F:\MCP\projects\CAN\canNode\Source\CAN.c00007a 8c60 BSF 0x60,0x6,0x0 RXB0CONbits.RXM1=1; F:\MCP\projects\CAN\canNode\Source\CAN.c00007c 9a60 BCF 0x60,0x5,0x0 RXB0CONbits.RXM0=0; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// INTERRUPTS F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Diable transmit interrupt F:\MCP\projects\CAN\canNode\Source\CAN.c00007e 010d MOVLB 0xd TXBIE = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000080 6bfc CLRF 0xfc,0x1F:\MCP\projects\CAN\canNode\Source\CAN.c//rx any interrupt F:\MCP\projects\CAN\canNode\Source\CAN.c000082 6aa4 CLRF 0xa4,0x0 PIR3 = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000084 0e03 MOVLW 0x3 PIE3 = 0b00000011; F:\MCP\projects\CAN\canNode\Source\CAN.c000086 6ea3 MOVWF 0xa3,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c// High interrupt F:\MCP\projects\CAN\canNode\Source\CAN.c000088 6ea5 MOVWF 0xa5,0x0 IPR3 =0b00000011; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Programmable buffers interrupt F:\MCP\projects\CAN\canNode\Source\CAN.c00008a 69fa SETF 0xfa,0x1 BIE0 = 0xFF; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//loopback mode or not F:\MCP\projects\CAN\canNode\Source\CAN.c#ifdef CAN_LOOPBACK_MODE F:\MCP\projects\CAN\canNode\Source\CAN.cCANCON = 0x40;//request loopback mode F:\MCP\projects\CAN\canNode\Source\CAN.cwhile ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode F:\MCP\projects\CAN\canNode\Source\CAN.c#else F:\MCP\projects\CAN\canNode\Source\CAN.c00008c 6a6f CLRF 0x6f,0x0 CANCON = 0x00;//request normal mode F:\MCP\projects\CAN\canNode\Source\CAN.c00008e 0ee0 MOVLW 0xe0 while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode F:\MCP\projects\CAN\canNode\Source\CAN.c000090 146e ANDWF 0x6e,0x0,0x0000092 e1fd BNZ 0x8e#endif F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c000094 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c/* F:\MCP\projects\CAN\canNode\Source\CAN.c* Function: canISR F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c* Input: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Output: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Pre-conditions: a call to canInit() F:\MCP\projects\CAN\canNode\Source\CAN.c* Affects: interrupt registers and receive data buffers F:\MCP\projects\CAN\canNode\Source\CAN.c* Depends: .. F:\MCP\projects\CAN\canNode\Source\CAN.c*/ F:\MCP\projects\CAN\canNode\Source\CAN.cvoid canISR() F:\MCP\projects\CAN\canNode\Source\CAN.c{ F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c000096 50a4 MOVF 0xa4,0x0,0x0 if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF) F:\MCP\projects\CAN\canNode\Source\CAN.c000098 0b02 ANDLW 0x200009a e106 BNZ 0xa800009c 50a4 MOVF 0xa4,0x0,0x000009e 0b02 ANDLW 0x20000a0 e103 BNZ 0xa80000a2 50a4 MOVF 0xa4,0x0,0x00000a4 0b01 ANDLW 0x10000a6 e03a BZ 0x11c{ F:\MCP\projects\CAN\canNode\Source\CAN.c// Get which buffer that is ful. F:\MCP\projects\CAN\canNode\Source\CAN.c0000a8 ae60 BTFSS 0x60,0x7,0x0 if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000aa d004 BRA 0xb40000ac 0e00 MOVLW 0x00000ae 1477 ANDWF 0x77,0x0,0x00000b0 0910 IORLW 0x100000b2 d02b BRA 0x10a else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000b4 010f MOVLB 0xf0000b6 af50 BTFSS 0x50,0x7,0x10000b8 d004 BRA 0xc20000ba 0e00 MOVLW 0x00000bc 1477 ANDWF 0x77,0x0,0x00000be 0911 IORLW 0x110000c0 d024 BRA 0x10a else if (B0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000c2 010e MOVLB 0xe0000c4 af20 BTFSS 0x20,0x7,0x10000c6 d004 BRA 0xd00000c8 0e00 MOVLW 0x00000ca 1477 ANDWF 0x77,0x0,0x00000cc 0912 IORLW 0x120000ce d01d BRA 0x10a else if (B1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000d0 af30 BTFSS 0x30,0x7,0x10000d2 d004 BRA 0xdc0000d4 0e00 MOVLW 0x00000d6 1477 ANDWF 0x77,0x0,0x00000d8 0913 IORLW 0x130000da d017 BRA 0x10a else if (B2CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000dc af40 BTFSS 0x40,0x7,0x10000de d004 BRA 0xe80000e0 0e00 MOVLW 0x00000e2 1477 ANDWF 0x77,0x0,0x00000e4 0914 IORLW 0x140000e6 d011 BRA 0x10a else if (B3CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000e8 af50 BTFSS 0x50,0x7,0x10000ea d004 BRA 0xf40000ec 0e00 MOVLW 0x00000ee 1477 ANDWF 0x77,0x0,0x00000f0 0915 IORLW 0x150000f2 d00b BRA 0x10a else if (B4CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c0000f4 af60 BTFSS 0x60,0x7,0x10000f6 d004 BRA 0x1000000f8 0e00 MOVLW 0x00000fa 1477 ANDWF 0x77,0x0,0x00000fc 0916 IORLW 0x160000fe d005 BRA 0x10a else if (B5CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\canNode\Source\CAN.c000100 af70 BTFSS 0x70,0x7,0x1000102 d005 BRA 0x10e000104 0e00 MOVLW 0x0000106 1477 ANDWF 0x77,0x0,0x0000108 0917 IORLW 0x1700010a 6e77 MOVWF 0x77,0x000010c d808 RCALL 0x11eF:\MCP\projects\CAN\canNode\Source\CAN.c00010e a2a4 BTFSS 0xa4,0x1,0x0 if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;} F:\MCP\projects\CAN\canNode\Source\CAN.c000110 d003 BRA 0x118000112 92a4 BCF 0xa4,0x1,0x0000114 b2a4 BTFSC 0xa4,0x1,0x0 if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;} F:\MCP\projects\CAN\canNode\Source\CAN.c000116 92a4 BCF 0xa4,0x1,0x0000118 b0a4 BTFSC 0xa4,0x0,0x0 if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;} F:\MCP\projects\CAN\canNode\Source\CAN.c00011a 90a4 BCF 0xa4,0x0,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c} F:\MCP\projects\CAN\canNode\Source\CAN.c00011c 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c/* F:\MCP\projects\CAN\canNode\Source\CAN.c* Function: canGetPacket F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c* Input: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Output: none F:\MCP\projects\CAN\canNode\Source\CAN.c* Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canNode\Source\CAN.c* Affects: Calls canParse() function in main for parsing received packet. F:\MCP\projects\CAN\canNode\Source\CAN.c* Depends: none. F:\MCP\projects\CAN\canNode\Source\CAN.c*/ F:\MCP\projects\CAN\canNode\Source\CAN.c00011e cfd9 MOVFF 0xfd9,0xfe6 void canGetPacket() F:\MCP\projects\CAN\canNode\Source\CAN.c000120 ffe6000122 cfe1 MOVFF 0xfe1,0xfd9000124 ffd9000126 0e0f MOVLW 0xf000128 26e1 ADDWF 0xe1,0x1,0x0{ F:\MCP\projects\CAN\canNode\Source\CAN.cCAN_MESSAGE cm; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Set extended mode or not. F:\MCP\projects\CAN\canNode\Source\CAN.c00012a 5062 MOVF 0x62,0x0,0x0 cm.extended=(RXB0SIDLbits.EXID==0?FALSE:TRUE); F:\MCP\projects\CAN\canNode\Source\CAN.c00012c 0b08 ANDLW 0x800012e e102 BNZ 0x134000130 0e00 MOVLW 0x0000132 d001 BRA 0x136000134 0e01 MOVLW 0x1000136 6ee7 MOVWF 0xe7,0x0000138 0e04 MOVLW 0x400013a cfe7 MOVFF 0xfe7,0xfdb00013c ffdbF:\MCP\projects\CAN\canNode\Source\CAN.c// Clear F:\MCP\projects\CAN\canNode\Source\CAN.c00013e 6ade CLRF 0xde,0x0 cm.ident=0; F:\MCP\projects\CAN\canNode\Source\CAN.c000140 6ade CLRF 0xde,0x0000142 6ade CLRF 0xde,0x0000144 6add CLRF 0xdd,0x0000146 52dd MOVF 0xdd,0x1,0x0000148 52dd MOVF 0xdd,0x1,0x0F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c00014a 04db DECF 0xdb,0x0,0x0 if (cm.extended==TRUE) F:\MCP\projects\CAN\canNode\Source\CAN.c00014c e163 BNZ 0x214{ F:\MCP\projects\CAN\canNode\Source\CAN.c//Read extended ident. F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//xx xx xx 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDH 28 27 26 25 24 23 22 21 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDL 20 19 18 xx xx xx 17 16 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0EIDH 15 14 13 12 11 10 09 08 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0EIDL 07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c00014e 5061 MOVF 0x61,0x0,0x0 cm.ident = (((DWORD)RXB0SIDH)<<21) + (((DWORD)(RXB0SIDL & 0xE0))<<13) + (((DWORD)(RXB0SIDL & 0x03))<<16) + (((DWORD)RXB0EIDH)<<8) + (BYTE)RXB0EIDL; F:\MCP\projects\CAN\canNode\Source\CAN.c000150 6e00 MOVWF 0x0,0x0000152 6a01 CLRF 0x1,0x0000154 6a02 CLRF 0x2,0x0000156 6a03 CLRF 0x3,0x0000158 0e15 MOVLW 0x1500015a 0b1f ANDLW 0x1f00015c e007 BZ 0x16c00015e 90d8 BCF 0xd8,0x0,0x0000160 3600 RLCF 0x0,0x1,0x0000162 3601 RLCF 0x1,0x1,0x0000164 3602 RLCF 0x2,0x1,0x0000166 3603 RLCF 0x3,0x1,0x0000168 06e8 DECF 0xe8,0x1,0x000016a e1f9 BNZ 0x15e00016c 0ee0 MOVLW 0xe000016e 1462 ANDWF 0x62,0x0,0x0000170 6e04 MOVWF 0x4,0x0000172 6a05 CLRF 0x5,0x0000174 6a06 CLRF 0x6,0x0000176 6a07 CLRF 0x7,0x0000178 0e0d MOVLW 0xd00017a 0b1f ANDLW 0x1f00017c e007 BZ 0x18c00017e 90d8 BCF 0xd8,0x0,0x0000180 3604 RLCF 0x4,0x1,0x0000182 3605 RLCF 0x5,0x1,0x0000184 3606 RLCF 0x6,0x1,0x0000186 3607 RLCF 0x7,0x1,0x0000188 06e8 DECF 0xe8,0x1,0x000018a e1f9 BNZ 0x17e00018c 5004 MOVF 0x4,0x0,0x000018e 2600 ADDWF 0x0,0x1,0x0000190 5005 MOVF 0x5,0x0,0x0000192 2201 ADDWFC 0x1,0x1,0x0000194 5006 MOVF 0x6,0x0,0x0000196 2202 ADDWFC 0x2,0x1,0x0000198 5007 MOVF 0x7,0x0,0x000019a 2203 ADDWFC 0x3,0x1,0x000019c 0e03 MOVLW 0x300019e 1462 ANDWF 0x62,0x0,0x00001a0 6e08 MOVWF 0x8,0x00001a2 6a09 CLRF 0x9,0x00001a4 6a0a CLRF 0xa,0x00001a6 6a0b CLRF 0xb,0x00001a8 0e10 MOVLW 0x100001aa 0b1f ANDLW 0x1f0001ac e007 BZ 0x1bc0001ae 90d8 BCF 0xd8,0x0,0x00001b0 3608 RLCF 0x8,0x1,0x00001b2 3609 RLCF 0x9,0x1,0x00001b4 360a RLCF 0xa,0x1,0x00001b6 360b RLCF 0xb,0x1,0x00001b8 06e8 DECF 0xe8,0x1,0x00001ba e1f9 BNZ 0x1ae0001bc 5008 MOVF 0x8,0x0,0x00001be 2600 ADDWF 0x0,0x1,0x00001c0 5009 MOVF 0x9,0x0,0x00001c2 2201 ADDWFC 0x1,0x1,0x00001c4 500a MOVF 0xa,0x0,0x00001c6 2202 ADDWFC 0x2,0x1,0x00001c8 500b MOVF 0xb,0x0,0x00001ca 2203 ADDWFC 0x3,0x1,0x00001cc 5063 MOVF 0x63,0x0,0x00001ce 6e0c MOVWF 0xc,0x00001d0 6a0d CLRF 0xd,0x00001d2 6a0e CLRF 0xe,0x00001d4 6a0f CLRF 0xf,0x00001d6 0e08 MOVLW 0x80001d8 0b1f ANDLW 0x1f0001da e007 BZ 0x1ea0001dc 90d8 BCF 0xd8,0x0,0x00001de 360c RLCF 0xc,0x1,0x00001e0 360d RLCF 0xd,0x1,0x00001e2 360e RLCF 0xe,0x1,0x00001e4 360f RLCF 0xf,0x1,0x00001e6 06e8 DECF 0xe8,0x1,0x00001e8 e1f9 BNZ 0x1dc0001ea 500c MOVF 0xc,0x0,0x00001ec 2600 ADDWF 0x0,0x1,0x00001ee 500d MOVF 0xd,0x0,0x00001f0 2201 ADDWFC 0x1,0x1,0x00001f2 500e MOVF 0xe,0x0,0x00001f4 2202 ADDWFC 0x2,0x1,0x00001f6 500f MOVF 0xf,0x0,0x00001f8 2203 ADDWFC 0x3,0x1,0x00001fa 5064 MOVF 0x64,0x0,0x00001fc 6e10 MOVWF 0x10,0x00001fe 6a11 CLRF 0x11,0x0000200 6a12 CLRF 0x12,0x0000202 6a13 CLRF 0x13,0x0000204 50e8 MOVF 0xe8,0x0,0x0000206 2600 ADDWF 0x0,0x1,0x0000208 5011 MOVF 0x11,0x0,0x000020a 2201 ADDWFC 0x1,0x1,0x000020c 5012 MOVF 0x12,0x0,0x000020e 2202 ADDWFC 0x2,0x1,0x0000210 5013 MOVF 0x13,0x0,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c} F:\MCP\projects\CAN\canNode\Source\CAN.c000212 d023 BRA 0x25a else F:\MCP\projects\CAN\canNode\Source\CAN.c{ F:\MCP\projects\CAN\canNode\Source\CAN.c//Read standard ident. F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//xx xx xx xx xx 10 09 08 07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDH 10 09 08 07 06 05 04 03 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDL 02 01 00 xx xx xx xx xx F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c000214 5061 MOVF 0x61,0x0,0x0 cm.ident = (((DWORD)RXB0SIDH)<<3) + (((DWORD)RXB0SIDL)>>5); F:\MCP\projects\CAN\canNode\Source\CAN.c000216 6e00 MOVWF 0x0,0x0000218 6a01 CLRF 0x1,0x000021a 6a02 CLRF 0x2,0x000021c 6a03 CLRF 0x3,0x000021e 0e03 MOVLW 0x3000220 0b1f ANDLW 0x1f000222 e007 BZ 0x232000224 90d8 BCF 0xd8,0x0,0x0000226 3600 RLCF 0x0,0x1,0x0000228 3601 RLCF 0x1,0x1,0x000022a 3602 RLCF 0x2,0x1,0x000022c 3603 RLCF 0x3,0x1,0x000022e 06e8 DECF 0xe8,0x1,0x0000230 e1f9 BNZ 0x224000232 5062 MOVF 0x62,0x0,0x0000234 6e04 MOVWF 0x4,0x0000236 6a05 CLRF 0x5,0x0000238 6a06 CLRF 0x6,0x000023a 6a07 CLRF 0x7,0x000023c 0e05 MOVLW 0x500023e 90d8 BCF 0xd8,0x0,0x0000240 3207 RRCF 0x7,0x1,0x0000242 3206 RRCF 0x6,0x1,0x0000244 3205 RRCF 0x5,0x1,0x0000246 3204 RRCF 0x4,0x1,0x0000248 06e8 DECF 0xe8,0x1,0x000024a e1f9 BNZ 0x23e00024c 5004 MOVF 0x4,0x0,0x000024e 2600 ADDWF 0x0,0x1,0x0000250 5005 MOVF 0x5,0x0,0x0000252 2201 ADDWFC 0x1,0x1,0x0000254 5006 MOVF 0x6,0x0,0x0000256 2202 ADDWFC 0x2,0x1,0x0000258 5007 MOVF 0x7,0x0,0x000025a 2203 ADDWFC 0x3,0x1,0x000025c c000 MOVFF 0x0,0xfdf00025e ffdf000260 0e01 MOVLW 0x1000262 c001 MOVFF 0x1,0xfdb000264 ffdb000266 0e02 MOVLW 0x2000268 c002 MOVFF 0x2,0xfdb00026a ffdb00026c 0e03 MOVLW 0x300026e c003 MOVFF 0x3,0xfdb000270 ffdb} F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Data length F:\MCP\projects\CAN\canNode\Source\CAN.c000272 5065 MOVF 0x65,0x0,0x0 cm.data_length=(RXB0DLCbits.DLC3<<3)+(RXB0DLCbits.DLC2<<2)+(RXB0DLCbits.DLC1<<1)+RXB0DLCbits.DLC0; F:\MCP\projects\CAN\canNode\Source\CAN.c000274 0b01 ANDLW 0x1000276 6e02 MOVWF 0x2,0x0000278 5065 MOVF 0x65,0x0,0x000027a 0b02 ANDLW 0x200027c e001 BZ 0x28000027e 0e01 MOVLW 0x1000280 24e8 ADDWF 0xe8,0x0,0x0000282 6e01 MOVWF 0x1,0x0000284 5065 MOVF 0x65,0x0,0x0000286 0b04 ANDLW 0x4000288 e001 BZ 0x28c00028a 0e01 MOVLW 0x100028c 0d04 MULLW 0x400028e cff3 MOVFF 0xff3,0x0000290 f000000292 5065 MOVF 0x65,0x0,0x0000294 0b08 ANDLW 0x8000296 e001 BZ 0x29a000298 0e01 MOVLW 0x100029a 0d08 MULLW 0x800029c 50f3 MOVF 0xf3,0x0,0x000029e 2400 ADDWF 0x0,0x0,0x00002a0 2401 ADDWF 0x1,0x0,0x00002a2 2402 ADDWF 0x2,0x0,0x00002a4 6ee7 MOVWF 0xe7,0x00002a6 0e06 MOVLW 0x60002a8 cfe7 MOVFF 0xfe7,0xfdb0002aa ffdbF:\MCP\projects\CAN\canNode\Source\CAN.c// Remote request F:\MCP\projects\CAN\canNode\Source\CAN.c0002ac 5065 MOVF 0x65,0x0,0x0 cm.remote_request=(RXB0DLCbits.RXRTR==0?FALSE:TRUE); F:\MCP\projects\CAN\canNode\Source\CAN.c0002ae 0b40 ANDLW 0x400002b0 e102 BNZ 0x2b60002b2 0e00 MOVLW 0x00002b4 d001 BRA 0x2b80002b6 0e01 MOVLW 0x10002b8 6ee7 MOVWF 0xe7,0x00002ba 0e05 MOVLW 0x50002bc cfe7 MOVFF 0xfe7,0xfdb0002be ffdbF:\MCP\projects\CAN\canNode\Source\CAN.c// Data one bye one, for speed F:\MCP\projects\CAN\canNode\Source\CAN.c0002c0 0e07 MOVLW 0x7 cm.data[0]=RXB0D0; cm.data[1]=RXB0D1; F:\MCP\projects\CAN\canNode\Source\CAN.c0002c2 cf66 MOVFF 0xf66,0xfdb0002c4 ffdb0002c6 0e08 MOVLW 0x80002c8 cf67 MOVFF 0xf67,0xfdb0002ca ffdb0002cc 0e09 MOVLW 0x9 cm.data[2]=RXB0D2; cm.data[3]=RXB0D3; F:\MCP\projects\CAN\canNode\Source\CAN.c0002ce cf68 MOVFF 0xf68,0xfdb0002d0 ffdb0002d2 0e0a MOVLW 0xa0002d4 cf69 MOVFF 0xf69,0xfdb0002d6 ffdb0002d8 0e0b MOVLW 0xb cm.data[4]=RXB0D4; cm.data[5]=RXB0D5; F:\MCP\projects\CAN\canNode\Source\CAN.c0002da cf6a MOVFF 0xf6a,0xfdb0002dc ffdb0002de 0e0c MOVLW 0xc0002e0 cf6b MOVFF 0xf6b,0xfdb0002e2 ffdb0002e4 0e0d MOVLW 0xd cm.data[6]=RXB0D6; cm.data[7]=RXB0D7; F:\MCP\projects\CAN\canNode\Source\CAN.c0002e6 cf6c MOVFF 0xf6c,0xfdb0002e8 ffdb0002ea 0e0e MOVLW 0xe0002ec cf6d MOVFF 0xf6d,0xfdb0002ee ffdbF:\MCP\projects\CAN\canNode\Source\CAN.c// Clear ful status F:\MCP\projects\CAN\canNode\Source\CAN.c0002f0 9e60 BCF 0x60,0x7,0x0 RXB0CONbits.RXFUL=0; F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//Call main parser F:\MCP\projects\CAN\canNode\Source\CAN.c0002f2 cfd9 MOVFF 0xfd9,0xfe9 canParse(cm); F:\MCP\projects\CAN\canNode\Source\CAN.c0002f4 ffe90002f6 cfda MOVFF 0xfda,0xfea0002f8 ffea0002fa cfee MOVFF 0xfee,0xfe60002fc ffe60002fe cfee MOVFF 0xfee,0xfe6000300 ffe6000302 cfee MOVFF 0xfee,0xfe6000304 ffe6000306 cfee MOVFF 0xfee,0xfe6000308 ffe600030a cfee MOVFF 0xfee,0xfe600030c ffe600030e cfee MOVFF 0xfee,0xfe6000310 ffe6000312 cfee MOVFF 0xfee,0xfe6000314 ffe6000316 cfee MOVFF 0xfee,0xfe6000318 ffe600031a cfee MOVFF 0xfee,0xfe600031c ffe600031e cfee MOVFF 0xfee,0xfe6000320 ffe6000322 cfee MOVFF 0xfee,0xfe6000324 ffe6000326 cfee MOVFF 0xfee,0xfe6000328 ffe600032a cfee MOVFF 0xfee,0xfe600032c ffe600032e cfee MOVFF 0xfee,0xfe6000330 ffe6000332 cfee MOVFF 0xfee,0xfe6000334 ffe6000336 ec66 CALL 0x8cc,0x0000338 f00400033a 6e00 MOVWF 0x0,0x000033c 0e0f MOVLW 0xf00033e 5ee1 SUBWF 0xe1,0x1,0x0000340 5000 MOVF 0x0,0x0,0x0000342 0e0f MOVLW 0xf } F:\MCP\projects\CAN\canNode\Source\CAN.c000344 5ce1 SUBWF 0xe1,0x0,0x0000346 e202 BC 0x34c000348 6ae1 CLRF 0xe1,0x000034a 52e5 MOVF 0xe5,0x1,0x000034c 6ee1 MOVWF 0xe1,0x000034e 52e5 MOVF 0xe5,0x1,0x0000350 cfe7 MOVFF 0xfe7,0xfd9000352 ffd9000354 0012 RETURN 0x0F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c/* F:\MCP\projects\CAN\canNode\Source\CAN.c* Function: canSendMessage F:\MCP\projects\CAN\canNode\Source\CAN.c* F:\MCP\projects\CAN\canNode\Source\CAN.c* Input: CAN_MESSAGE to send F:\MCP\projects\CAN\canNode\Source\CAN.c* Output: True if packet scheduled sucess, false otherwise. F:\MCP\projects\CAN\canNode\Source\CAN.c* Pre-conditions: canInit F:\MCP\projects\CAN\canNode\Source\CAN.c* Affects: .. F:\MCP\projects\CAN\canNode\Source\CAN.c* Depends: .. F:\MCP\projects\CAN\canNode\Source\CAN.c*/ F:\MCP\projects\CAN\canNode\Source\CAN.c000356 cfd9 MOVFF 0xfd9,0xfe6 BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio) F:\MCP\projects\CAN\canNode\Source\CAN.c000358 ffe600035a cfe1 MOVFF 0xfe1,0xfd900035c ffd9{ F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c00035e 010f MOVLB 0xf if ( TXB0CONbits.TXREQ == 0 ) { ECANCON=(ECANCON&0b00000)|0b00011; } F:\MCP\projects\CAN\canNode\Source\CAN.c000360 b740 BTFSC 0x40,0x3,0x1000362 d004 BRA 0x36c000364 0e00 MOVLW 0x0000366 1477 ANDWF 0x77,0x0,0x0000368 0903 IORLW 0x300036a 6e77 MOVWF 0x77,0x000036c 010f MOVLB 0xf if ( TXB1CONbits.TXREQ == 0 ) { ECANCON=(ECANCON&0b00000)|0b00100; } F:\MCP\projects\CAN\canNode\Source\CAN.c00036e b730 BTFSC 0x30,0x3,0x1000370 d004 BRA 0x37a000372 0e00 MOVLW 0x0000374 1477 ANDWF 0x77,0x0,0x0000376 0904 IORLW 0x4000378 6e77 MOVWF 0x77,0x000037a 010f MOVLB 0xf if ( TXB2CONbits.TXREQ == 0 ) { ECANCON=(ECANCON&0b00000)|0b00101; } F:\MCP\projects\CAN\canNode\Source\CAN.c00037c b720 BTFSC 0x20,0x3,0x100037e d005 BRA 0x38a000380 0e00 MOVLW 0x0000382 1477 ANDWF 0x77,0x0,0x0000384 0905 IORLW 0x5000386 6e77 MOVWF 0x77,0x0// None of the transmit buffers were empty. F:\MCP\projects\CAN\canNode\Source\CAN.c000388 d002 BRA 0x38e else { return FALSE;} F:\MCP\projects\CAN\canNode\Source\CAN.c00038a 0e00 MOVLW 0x000038c d0e4 BRA 0x556F:\MCP\projects\CAN\canNode\Source\CAN.c00038e 0eef MOVLW 0xef if (prio<0 || prio>3) prio = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c000390 cfdb MOVFF 0xfdb,0x0000392 f000000394 3400 RLCF 0x0,0x0,0x0000396 e20e BC 0x3b4000398 0eef MOVLW 0xef00039a cfdb MOVFF 0xfdb,0x100039c f00100039e 0e03 MOVLW 0x30003a0 6ee7 MOVWF 0xe7,0x00003a2 1801 XORWF 0x1,0x0,0x00003a4 aee8 BTFSS 0xe8,0x7,0x00003a6 d002 BRA 0x3ac0003a8 3401 RLCF 0x1,0x0,0x00003aa d003 BRA 0x3b20003ac 50e7 MOVF 0xe7,0x0,0x00003ae 80d8 BSF 0xd8,0x0,0x00003b0 5401 SUBFWB 0x1,0x0,0x00003b2 e202 BC 0x3b80003b4 0eef MOVLW 0xef0003b6 6adb CLRF 0xdb,0x0F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c0003b8 0ef4 MOVLW 0xf4 if (cm.extended==TRUE) F:\MCP\projects\CAN\canNode\Source\CAN.c0003ba 04db DECF 0xdb,0x0,0x00003bc e15f BNZ 0x47c{ F:\MCP\projects\CAN\canNode\Source\CAN.c//Write extended ident. F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//xx xx xx 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDH 28 27 26 25 24 23 22 21 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDL 20 19 18 xx xx xx 17 16 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0EIDH 15 14 13 12 11 10 09 08 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0EIDL 07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c0003be 0ef0 MOVLW 0xf0 RXB0SIDH = (BYTE)((cm.ident>>21)); F:\MCP\projects\CAN\canNode\Source\CAN.c0003c0 cfdb MOVFF 0xfdb,0x00003c2 f0000003c4 0ef1 MOVLW 0xf10003c6 cfdb MOVFF 0xfdb,0x10003c8 f0010003ca 0ef2 MOVLW 0xf20003cc cfdb MOVFF 0xfdb,0x20003ce f0020003d0 0ef3 MOVLW 0xf30003d2 cfdb MOVFF 0xfdb,0x30003d4 f0030003d6 0e15 MOVLW 0x150003d8 90d8 BCF 0xd8,0x0,0x00003da 3203 RRCF 0x3,0x1,0x00003dc 3202 RRCF 0x2,0x1,0x00003de 3201 RRCF 0x1,0x1,0x00003e0 3200 RRCF 0x0,0x1,0x00003e2 06e8 DECF 0xe8,0x1,0x00003e4 e1f9 BNZ 0x3d80003e6 5000 MOVF 0x0,0x0,0x00003e8 6e61 MOVWF 0x61,0x00003ea 0ef0 MOVLW 0xf0 RXB0SIDL = ((BYTE)(cm.ident>>16) & 0x03) + ((BYTE)(cm.ident>>13) & 0xE0); F:\MCP\projects\CAN\canNode\Source\CAN.c0003ec cfdb MOVFF 0xfdb,0x50003ee f0050003f0 0ef1 MOVLW 0xf10003f2 cfdb MOVFF 0xfdb,0x60003f4 f0060003f6 0ef2 MOVLW 0xf20003f8 cfdb MOVFF 0xfdb,0x70003fa f0070003fc 0ef3 MOVLW 0xf30003fe cfdb MOVFF 0xfdb,0x8000400 f008000402 0e0d MOVLW 0xd000404 90d8 BCF 0xd8,0x0,0x0000406 3208 RRCF 0x8,0x1,0x0000408 3207 RRCF 0x7,0x1,0x000040a 3206 RRCF 0x6,0x1,0x000040c 3205 RRCF 0x5,0x1,0x000040e 06e8 DECF 0xe8,0x1,0x0000410 e1f9 BNZ 0x404000412 0ee0 MOVLW 0xe0000414 1405 ANDWF 0x5,0x0,0x0000416 6e04 MOVWF 0x4,0x0000418 0ef0 MOVLW 0xf000041a cfdb MOVFF 0xfdb,0x000041c f00000041e 0ef1 MOVLW 0xf1000420 cfdb MOVFF 0xfdb,0x1000422 f001000424 0ef2 MOVLW 0xf2000426 cfdb MOVFF 0xfdb,0x2000428 f00200042a 0ef3 MOVLW 0xf300042c cfdb MOVFF 0xfdb,0x300042e f003000430 0e10 MOVLW 0x10000432 90d8 BCF 0xd8,0x0,0x0000434 3203 RRCF 0x3,0x1,0x0000436 3202 RRCF 0x2,0x1,0x0000438 3201 RRCF 0x1,0x1,0x000043a 3200 RRCF 0x0,0x1,0x000043c 06e8 DECF 0xe8,0x1,0x000043e e1f9 BNZ 0x432000440 0e03 MOVLW 0x3000442 1400 ANDWF 0x0,0x0,0x0000444 2404 ADDWF 0x4,0x0,0x0000446 6e62 MOVWF 0x62,0x0000448 0ef0 MOVLW 0xf0 RXB0EIDH = (BYTE)(cm.ident>>8); F:\MCP\projects\CAN\canNode\Source\CAN.c00044a cfdb MOVFF 0xfdb,0x000044c f00000044e 0ef1 MOVLW 0xf1000450 cfdb MOVFF 0xfdb,0x1000452 f001000454 0ef2 MOVLW 0xf2000456 cfdb MOVFF 0xfdb,0x2000458 f00200045a 0ef3 MOVLW 0xf300045c cfdb MOVFF 0xfdb,0x300045e f003000460 0e08 MOVLW 0x8000462 90d8 BCF 0xd8,0x0,0x0000464 3203 RRCF 0x3,0x1,0x0000466 3202 RRCF 0x2,0x1,0x0000468 3201 RRCF 0x1,0x1,0x000046a 3200 RRCF 0x0,0x1,0x000046c 06e8 DECF 0xe8,0x1,0x000046e e1f9 BNZ 0x462000470 5000 MOVF 0x0,0x0,0x0000472 6e63 MOVWF 0x63,0x0000474 0ef0 MOVLW 0xf0 RXB0EIDL = (BYTE)cm.ident; F:\MCP\projects\CAN\canNode\Source\CAN.c000476 50db MOVF 0xdb,0x0,0x0000478 6e64 MOVWF 0x64,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c} F:\MCP\projects\CAN\canNode\Source\CAN.c00047a d02f BRA 0x4da else F:\MCP\projects\CAN\canNode\Source\CAN.c{ F:\MCP\projects\CAN\canNode\Source\CAN.c//Write standard ident. F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//xx xx xx xx xx 10 09 08 07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDH 10 09 08 07 06 05 04 03 F:\MCP\projects\CAN\canNode\Source\CAN.c//RXB0SIDL 02 01 00 xx xx xx xx xx F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c00047c 0ef0 MOVLW 0xf0 RXB0SIDH= (BYTE)(cm.ident>>3); F:\MCP\projects\CAN\canNode\Source\CAN.c00047e cfdb MOVFF 0xfdb,0x0000480 f000000482 0ef1 MOVLW 0xf1000484 cfdb MOVFF 0xfdb,0x1000486 f001000488 0ef2 MOVLW 0xf200048a cfdb MOVFF 0xfdb,0x200048c f00200048e 0ef3 MOVLW 0xf3000490 cfdb MOVFF 0xfdb,0x3000492 f003000494 0e03 MOVLW 0x3000496 90d8 BCF 0xd8,0x0,0x0000498 3203 RRCF 0x3,0x1,0x000049a 3202 RRCF 0x2,0x1,0x000049c 3201 RRCF 0x1,0x1,0x000049e 3200 RRCF 0x0,0x1,0x00004a0 06e8 DECF 0xe8,0x1,0x00004a2 e1f9 BNZ 0x4960004a4 5000 MOVF 0x0,0x0,0x00004a6 6e61 MOVWF 0x61,0x00004a8 0ef0 MOVLW 0xf0 RXB0SIDL= ((BYTE)(cm.ident<<5) & 0xE0); F:\MCP\projects\CAN\canNode\Source\CAN.c0004aa cfdb MOVFF 0xfdb,0x00004ac f0000004ae 0ef1 MOVLW 0xf10004b0 cfdb MOVFF 0xfdb,0x10004b2 f0010004b4 0ef2 MOVLW 0xf20004b6 cfdb MOVFF 0xfdb,0x20004b8 f0020004ba 0ef3 MOVLW 0xf30004bc cfdb MOVFF 0xfdb,0x30004be f0030004c0 0e05 MOVLW 0x50004c2 0b1f ANDLW 0x1f0004c4 e007 BZ 0x4d40004c6 90d8 BCF 0xd8,0x0,0x00004c8 3600 RLCF 0x0,0x1,0x00004ca 3601 RLCF 0x1,0x1,0x00004cc 3602 RLCF 0x2,0x1,0x00004ce 3603 RLCF 0x3,0x1,0x00004d0 06e8 DECF 0xe8,0x1,0x00004d2 e1f9 BNZ 0x4c60004d4 0ee0 MOVLW 0xe00004d6 1400 ANDWF 0x0,0x0,0x00004d8 6e62 MOVWF 0x62,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c} F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Data length F:\MCP\projects\CAN\canNode\Source\CAN.c0004da 6a65 CLRF 0x65,0x0 RXB0DLC = 0; F:\MCP\projects\CAN\canNode\Source\CAN.c0004dc 0ef6 MOVLW 0xf6 if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length; F:\MCP\projects\CAN\canNode\Source\CAN.c0004de 50db MOVF 0xdb,0x0,0x00004e0 0808 SUBLW 0x80004e2 e203 BC 0x4ea0004e4 0e08 MOVLW 0x80004e6 6e65 MOVWF 0x65,0x00004e8 d003 BRA 0x4f00004ea 0ef6 MOVLW 0xf60004ec 50db MOVF 0xdb,0x0,0x00004ee 6e65 MOVWF 0x65,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c// Remote request F:\MCP\projects\CAN\canNode\Source\CAN.c0004f0 0ef5 MOVLW 0xf5 if (cm.remote_request==TRUE) F:\MCP\projects\CAN\canNode\Source\CAN.c0004f2 04db DECF 0xdb,0x0,0x00004f4 e102 BNZ 0x4fa{ F:\MCP\projects\CAN\canNode\Source\CAN.c_asm F:\MCP\projects\CAN\canNode\Source\CAN.c0004f6 8c65 BSF 0x65,0x6,0x0 bsf RXB0DLC, 6, 0 F:\MCP\projects\CAN\canNode\Source\CAN.c_endasm F:\MCP\projects\CAN\canNode\Source\CAN.c} F:\MCP\projects\CAN\canNode\Source\CAN.c0004f8 d001 BRA 0x4fc else F:\MCP\projects\CAN\canNode\Source\CAN.c{ F:\MCP\projects\CAN\canNode\Source\CAN.c_asm F:\MCP\projects\CAN\canNode\Source\CAN.c0004fa 9c65 BCF 0x65,0x6,0x0 bcf RXB0DLC, 6, 0 F:\MCP\projects\CAN\canNode\Source\CAN.c_endasm F:\MCP\projects\CAN\canNode\Source\CAN.c} F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c// Data one bye one, for speed F:\MCP\projects\CAN\canNode\Source\CAN.c0004fc 0ef7 MOVLW 0xf7 RXB0D0=cm.data[0]; RXB0D1=cm.data[1]; F:\MCP\projects\CAN\canNode\Source\CAN.c0004fe 50db MOVF 0xdb,0x0,0x0000500 6e66 MOVWF 0x66,0x0000502 0ef8 MOVLW 0xf8000504 50db MOVF 0xdb,0x0,0x0000506 6e67 MOVWF 0x67,0x0000508 0ef9 MOVLW 0xf9 RXB0D2=cm.data[2]; RXB0D3=cm.data[3]; F:\MCP\projects\CAN\canNode\Source\CAN.c00050a 50db MOVF 0xdb,0x0,0x000050c 6e68 MOVWF 0x68,0x000050e 0efa MOVLW 0xfa000510 50db MOVF 0xdb,0x0,0x0000512 6e69 MOVWF 0x69,0x0000514 0efb MOVLW 0xfb RXB0D4=cm.data[4]; RXB0D5=cm.data[5]; F:\MCP\projects\CAN\canNode\Source\CAN.c000516 50db MOVF 0xdb,0x0,0x0000518 6e6a MOVWF 0x6a,0x000051a 0efc MOVLW 0xfc00051c 50db MOVF 0xdb,0x0,0x000051e 6e6b MOVWF 0x6b,0x0000520 0efd MOVLW 0xfd RXB0D6=cm.data[6]; RXB0D7=cm.data[7]; F:\MCP\projects\CAN\canNode\Source\CAN.c000522 50db MOVF 0xdb,0x0,0x0000524 6e6c MOVWF 0x6c,0x0000526 0efe MOVLW 0xfe000528 50db MOVF 0xdb,0x0,0x000052a 6e6d MOVWF 0x6d,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c// set extended or not F:\MCP\projects\CAN\canNode\Source\CAN.c00052c 0ef4 MOVLW 0xf4 RXB0SIDLbits.EXID=(cm.extended==TRUE?1:0); F:\MCP\projects\CAN\canNode\Source\CAN.c00052e 04db DECF 0xdb,0x0,0x0000530 e102 BNZ 0x536000532 0e01 MOVLW 0x1000534 d001 BRA 0x538000536 0e00 MOVLW 0x0000538 b0e8 BTFSC 0xe8,0x0,0x000053a 8662 BSF 0x62,0x3,0x000053c a0e8 BTFSS 0xe8,0x0,0x000053e 9662 BCF 0x62,0x3,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c// Priority F:\MCP\projects\CAN\canNode\Source\CAN.c000540 0eef MOVLW 0xef RXB0CON = (RXB0CON & 0b11111100) | prio; F:\MCP\projects\CAN\canNode\Source\CAN.c000542 cfdb MOVFF 0xfdb,0xfe6000544 ffe6000546 0efc MOVLW 0xfc000548 1460 ANDWF 0x60,0x0,0x000054a 52e5 MOVF 0xe5,0x1,0x000054c 10e7 IORWF 0xe7,0x0,0x000054e 6e60 MOVWF 0x60,0x0F:\MCP\projects\CAN\canNode\Source\CAN.c// mark as redy to transmit F:\MCP\projects\CAN\canNode\Source\CAN.c_asm F:\MCP\projects\CAN\canNode\Source\CAN.c000550 8660 BSF 0x60,0x3,0x0 bsf RXB0CON, 3, 0 F:\MCP\projects\CAN\canNode\Source\CAN.c_endasm F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c000552 0e01 MOVLW 0x1 return TRUE; F:\MCP\projects\CAN\canNode\Source\CAN.c000554 d000 BRA 0x556F:\MCP\projects\CAN\canNode\Source\CAN.c000556 52e5 MOVF 0xe5,0x1,0x0 } F:\MCP\projects\CAN\canNode\Source\CAN.c000558 cfe7 MOVFF 0xfe7,0xfd900055a ffd900055c 0012 RETURN 0x0F:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.cF:\MCP\projects\CAN\canNode\Source\CAN.c#endif //USE_CAN F:\MCP\projects\CAN\canNode\Source\CAN.c/********************************************************************* F:\MCP\projects\CAN\canNode\Source\Main.c* F:\MCP\projects\CAN\canNode\Source\Main.c* Main application F:\MCP\projects\CAN\canNode\Source\Main.c* F:\MCP\projects\CAN\canNode\Source\Main.c********************************************************************* F:\MCP\projects\CAN\canNode\Source\Main.c* FileName: Main.c F:\MCP\projects\CAN\canNode\Source\Main.c* F:\MCP\projects\CAN\canNode\Source\Main.c* Author Date Comment F:\MCP\projects\CAN\canNode\Source\Main.c*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ F:\MCP\projects\CAN\canNode\Source\Main.c* Johan Böhlin 21-10-06 Original (Rev 1.0) F:\MCP\projects\CAN\canNode\Source\Main.c********************************************************************/ F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c#include <compiler.h> F:\MCP\projects\CAN\canNode\Source\Main.c#include <stackTasks.h> F:\MCP\projects\CAN\canNode\Source\Main.c#include <Tick.h> F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c#ifdef USE_CAN F:\MCP\projects\CAN\canNode\Source\Main.c#include <CAN.h> F:\MCP\projects\CAN\canNode\Source\Main.c#endif F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cstatic void mainInit(void); F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cunsigned int heartcnt=0; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c00055e cfd9 MOVFF 0xfd9,0xfe6 void main() F:\MCP\projects\CAN\canNode\Source\Main.c000560 ffe6000562 cfe1 MOVFF 0xfe1,0xfd9000564 ffd9000566 0e0f MOVLW 0xf000568 26e1 ADDWF 0xe1,0x1,0x0{ F:\MCP\projects\CAN\canNode\Source\Main.cstatic TICK t = 0; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c// Inits F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c00056a d9a8 RCALL 0x8bc mainInit(); F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c#ifdef USE_CAN F:\MCP\projects\CAN\canNode\Source\Main.c00056c ec22 CALL 0x44,0x0 canInit(); F:\MCP\projects\CAN\canNode\Source\Main.c00056e f000#endif F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c000570 ec26 CALL 0xa4c,0x0 tickInit(); F:\MCP\projects\CAN\canNode\Source\Main.c000572 f005F:\MCP\projects\CAN\canNode\Source\Main.cwhile(1) F:\MCP\projects\CAN\canNode\Source\Main.c{ F:\MCP\projects\CAN\canNode\Source\Main.c#ifdef USE_CAN F:\MCP\projects\CAN\canNode\Source\Main.c000574 ec30 CALL 0xa60,0x0 if ((tickGet()-t)>=5*TICK_SECOND) F:\MCP\projects\CAN\canNode\Source\Main.c000576 f005000578 0100 MOVLB 0x000057a 516c MOVF 0x6c,0x0,0x100057c 5c18 SUBWF 0x18,0x0,0x000057e 6e00 MOVWF 0x0,0x0000580 516d MOVF 0x6d,0x0,0x1000582 5819 SUBWFB 0x19,0x0,0x0000584 6e01 MOVWF 0x1,0x0000586 516e MOVF 0x6e,0x0,0x1000588 581a SUBWFB 0x1a,0x0,0x000058a 6e02 MOVWF 0x2,0x000058c 516f MOVF 0x6f,0x0,0x100058e 581b SUBWFB 0x1b,0x0,0x0000590 6e03 MOVWF 0x3,0x0000592 0ef4 MOVLW 0xf4000594 5c00 SUBWF 0x0,0x0,0x0000596 0e01 MOVLW 0x1000598 5801 SUBWFB 0x1,0x0,0x000059a 0e00 MOVLW 0x000059c 5802 SUBWFB 0x2,0x0,0x000059e 0e00 MOVLW 0x00005a0 5803 SUBWFB 0x3,0x0,0x00005a2 e3e8 BNC 0x574{ F:\MCP\projects\CAN\canNode\Source\Main.cCAN_MESSAGE cm; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c0005a4 ec30 CALL 0xa60,0x0 t = tickGet(); F:\MCP\projects\CAN\canNode\Source\Main.c0005a6 f0050005a8 c018 MOVFF 0x18,0x6c0005aa f06c0005ac c019 MOVFF 0x19,0x6d0005ae f06d0005b0 c01a MOVFF 0x1a,0x6e0005b2 f06e0005b4 c01b MOVFF 0x1b,0x6f0005b6 f06fF:\MCP\projects\CAN\canNode\Source\Main.c// Send heartbeat F:\MCP\projects\CAN\canNode\Source\Main.c0005b8 0e66 MOVLW 0x66 cm.ident=0x00000666; F:\MCP\projects\CAN\canNode\Source\Main.c0005ba 6ede MOVWF 0xde,0x00005bc 0e06 MOVLW 0x60005be 6ede MOVWF 0xde,0x00005c0 6ade CLRF 0xde,0x00005c2 6add CLRF 0xdd,0x00005c4 52dd MOVF 0xdd,0x1,0x00005c6 52dd MOVF 0xdd,0x1,0x00005c8 0e04 MOVLW 0x4 cm.extended=FALSE; F:\MCP\projects\CAN\canNode\Source\Main.c0005ca 6adb CLRF 0xdb,0x00005cc 0e05 MOVLW 0x5 cm.data_length=5; F:\MCP\projects\CAN\canNode\Source\Main.c0005ce 6ef3 MOVWF 0xf3,0x00005d0 0e06 MOVLW 0x60005d2 cff3 MOVFF 0xff3,0xfdb0005d4 ffdb0005d6 0e48 MOVLW 0x48 cm.data[0]='H'; F:\MCP\projects\CAN\canNode\Source\Main.c0005d8 6ef3 MOVWF 0xf3,0x00005da 0e07 MOVLW 0x70005dc cff3 MOVFF 0xff3,0xfdb0005de ffdb0005e0 0100 MOVLB 0x0 cm.data[1]=(BYTE)((heartcnt & 0x000000FF)); F:\MCP\projects\CAN\canNode\Source\Main.c0005e2 516a MOVF 0x6a,0x0,0x10005e4 6ee7 MOVWF 0xe7,0x00005e6 0e08 MOVLW 0x80005e8 cfe7 MOVFF 0xfe7,0xfdb0005ea ffdb0005ec 0e00 MOVLW 0x0 cm.data[2]=(BYTE)((heartcnt & 0x0000FF00)>>1); F:\MCP\projects\CAN\canNode\Source\Main.c0005ee 156a ANDWF 0x6a,0x0,0x10005f0 6e00 MOVWF 0x0,0x00005f2 0eff MOVLW 0xff0005f4 156b ANDWF 0x6b,0x0,0x10005f6 6e01 MOVWF 0x1,0x00005f8 90d8 BCF 0xd8,0x0,0x00005fa 3201 RRCF 0x1,0x1,0x00005fc 3200 RRCF 0x0,0x1,0x00005fe 0e09 MOVLW 0x9000600 c000 MOVFF 0x0,0xfdb000602 ffdb000604 c06a MOVFF 0x6a,0x3 cm.data[3]=(BYTE)((heartcnt & 0x00FF0000)>>2); F:\MCP\projects\CAN\canNode\Source\Main.c000606 f003000608 c06b MOVFF 0x6b,0x400060a f00400060c 6a05 CLRF 0x5,0x000060e 6a03 CLRF 0x3,0x0000610 6a04 CLRF 0x4,0x0000612 0e02 MOVLW 0x2000614 0b1f ANDLW 0x1f000616 c003 MOVFF 0x3,0x0000618 f00000061a c004 MOVFF 0x4,0x100061c f00100061e c005 MOVFF 0x5,0x2000620 f002000622 e006 BZ 0x630000624 90d8 BCF 0xd8,0x0,0x0000626 3202 RRCF 0x2,0x1,0x0000628 3201 RRCF 0x1,0x1,0x000062a 3200 RRCF 0x0,0x1,0x000062c 06e8 DECF 0xe8,0x1,0x000062e e1fa BNZ 0x624000630 0e0a MOVLW 0xa000632 c000 MOVFF 0x0,0xfdb000634 ffdb000636 c06a MOVFF 0x6a,0x0 cm.data[4]=(BYTE)((heartcnt & 0xFF000000)>>3); F:\MCP\projects\CAN\canNode\Source\Main.c000638 f00000063a c06b MOVFF 0x6b,0x100063c f00100063e 6a02 CLRF 0x2,0x0000640 6a03 CLRF 0x3,0x0000642 6a00 CLRF 0x0,0x0000644 6a01 CLRF 0x1,0x0000646 6a02 CLRF 0x2,0x0000648 0e03 MOVLW 0x300064a 90d8 BCF 0xd8,0x0,0x000064c 3203 RRCF 0x3,0x1,0x000064e 3202 RRCF 0x2,0x1,0x0000650 3201 RRCF 0x1,0x1,0x0000652 3200 RRCF 0x0,0x1,0x0000654 06e8 DECF 0xe8,0x1,0x0000656 e1f9 BNZ 0x64a000658 0e0b MOVLW 0xb00065a c000 MOVFF 0x0,0xfdb00065c ffdbF:\MCP\projects\CAN\canNode\Source\Main.c00065e 0100 MOVLB 0x0 heartcnt++; F:\MCP\projects\CAN\canNode\Source\Main.c000660 2b6a INCF 0x6a,0x1,0x1000662 0e00 MOVLW 0x0000664 236b ADDWFC 0x6b,0x1,0x1F:\MCP\projects\CAN\canNode\Source\Main.c000666 0e01 MOVLW 0x1 while(!canSendMessage(cm,PRIO_LOW)); F:\MCP\projects\CAN\canNode\Source\Main.c000668 6ee6 MOVWF 0xe6,0x000066a cfd9 MOVFF 0xfd9,0xfe900066c ffe900066e cfda MOVFF 0xfda,0xfea000670 ffea000672 cfee MOVFF 0xfee,0xfe6000674 ffe6000676 cfee MOVFF 0xfee,0xfe6000678 ffe600067a cfee MOVFF 0xfee,0xfe600067c ffe600067e cfee MOVFF 0xfee,0xfe6000680 ffe6000682 cfee MOVFF 0xfee,0xfe6000684 ffe6000686 cfee MOVFF 0xfee,0xfe6000688 ffe600068a cfee MOVFF 0xfee,0xfe600068c ffe600068e cfee MOVFF 0xfee,0xfe6000690 ffe6000692 cfee MOVFF 0xfee,0xfe6000694 ffe6000696 cfee MOVFF 0xfee,0xfe6000698 ffe600069a cfee MOVFF 0xfee,0xfe600069c ffe600069e cfee MOVFF 0xfee,0xfe60006a0 ffe60006a2 cfee MOVFF 0xfee,0xfe60006a4 ffe60006a6 cfee MOVFF 0xfee,0xfe60006a8 ffe60006aa cfee MOVFF 0xfee,0xfe60006ac ffe60006ae ecab CALL 0x356,0x00006b0 f0010006b2 6e00 MOVWF 0x0,0x00006b4 0e10 MOVLW 0x100006b6 5ee1 SUBWF 0xe1,0x1,0x00006b8 5000 MOVF 0x0,0x0,0x00006ba 0900 IORLW 0x00006bc e001 BZ 0x6c00006be d75a BRA 0x5740006c0 d7d2 BRA 0x666} F:\MCP\projects\CAN\canNode\Source\Main.c#endif F:\MCP\projects\CAN\canNode\Source\Main.c} F:\MCP\projects\CAN\canNode\Source\Main.c} F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c#pragma interruptlow HighISR F:\MCP\projects\CAN\canNode\Source\Main.c0006c2 cfd8 MOVFF 0xfd8,0xfe4 void HighISR(void) F:\MCP\projects\CAN\canNode\Source\Main.c0006c4 ffe40006c6 cfe0 MOVFF 0xfe0,0xfe40006c8 ffe40006ca 6ee4 MOVWF 0xe4,0x00006cc cfda MOVFF 0xfda,0xfe40006ce ffe40006d0 cfe2 MOVFF 0xfe2,0xfda0006d2 ffda0006d4 cfe9 MOVFF 0xfe9,0xfe40006d6 ffe40006d8 cfea MOVFF 0xfea,0xfe40006da ffe40006dc cff6 MOVFF 0xff6,0xfe40006de ffe40006e0 cff7 MOVFF 0xff7,0xfe40006e2 ffe40006e4 cff5 MOVFF 0xff5,0xfe40006e6 ffe40006e8 cff3 MOVFF 0xff3,0xfe40006ea ffe40006ec cff4 MOVFF 0xff4,0xfe40006ee ffe40006f0 cffa MOVFF 0xffa,0xfe40006f2 ffe40006f4 ee00 LFSR 0x0,0x140006f6 f0140006f8 0e0b MOVLW 0xb0006fa 04e8 DECF 0xe8,0x0,0x00006fc e303 BNC 0x7040006fe cfee MOVFF 0xfee,0xfe4000700 ffe4000702 d7fb BRA 0x6fa000704 ee00 LFSR 0x0,0x0000706 f000000708 0e14 MOVLW 0x1400070a 04e8 DECF 0xe8,0x0,0x000070c e303 BNC 0x71400070e cfee MOVFF 0xfee,0xfe4000710 ffe4000712 d7fb BRA 0x70a000714 52e6 MOVF 0xe6,0x1,0x0000716 cfd9 MOVFF 0xfd9,0xfe6000718 ffe600071a cfe1 MOVFF 0xfe1,0xfd900071c ffd900071e 0e0f MOVLW 0xf000720 26e1 ADDWF 0xe1,0x1,0x0{ F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c#ifdef USE_CAN F:\MCP\projects\CAN\canNode\Source\Main.c000722 ec4b CALL 0x96,0x0 canISR(); F:\MCP\projects\CAN\canNode\Source\Main.c000724 f000#endif F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c000726 50f2 MOVF 0xf2,0x0,0x0 if (INTCONbits.INT0IE && INTCONbits.INT0IF) F:\MCP\projects\CAN\canNode\Source\Main.c000728 0b10 ANDLW 0x1000072a e101 BNZ 0x72e00072c d082 BRA 0x83200072e 50f2 MOVF 0xf2,0x0,0x0000730 0b02 ANDLW 0x2000732 e101 BNZ 0x736000734 d07e BRA 0x832{ F:\MCP\projects\CAN\canNode\Source\Main.cstatic TICK t = 0; F:\MCP\projects\CAN\canNode\Source\Main.cCAN_MESSAGE cm; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c000736 ec30 CALL 0xa60,0x0 if ((tickGet()-t)>TICK_SECOND/2) F:\MCP\projects\CAN\canNode\Source\Main.c000738 f00500073a 0100 MOVLB 0x000073c 5170 MOVF 0x70,0x0,0x100073e 5c18 SUBWF 0x18,0x0,0x0000740 6e1f MOVWF 0x1f,0x0000742 5171 MOVF 0x71,0x0,0x1000744 5819 SUBWFB 0x19,0x0,0x0000746 6e20 MOVWF 0x20,0x0000748 5172 MOVF 0x72,0x0,0x100074a 581a SUBWFB 0x1a,0x0,0x000074c 6e21 MOVWF 0x21,0x000074e 5173 MOVF 0x73,0x0,0x1000750 581b SUBWFB 0x1b,0x0,0x0000752 6e22 MOVWF 0x22,0x0000754 80d8 BSF 0xd8,0x0,0x0000756 0e32 MOVLW 0x32000758 541f SUBFWB 0x1f,0x0,0x000075a 0e00 MOVLW 0x000075c 5420 SUBFWB 0x20,0x0,0x000075e 0e00 MOVLW 0x0000760 5421 SUBFWB 0x21,0x0,0x0000762 0e00 MOVLW 0x0000764 5422 SUBFWB 0x22,0x0,0x0000766 e264 BC 0x830{ F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c000768 7282 BTG 0x82,0x1,0x0 LED0_IO=~LED0_IO; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c// Send heartbeat F:\MCP\projects\CAN\canNode\Source\Main.c00076a 0e91 MOVLW 0x91 cm.ident=0x1F910091; F:\MCP\projects\CAN\canNode\Source\Main.c00076c 6ede MOVWF 0xde,0x000076e 6ade CLRF 0xde,0x0000770 6ede MOVWF 0xde,0x0000772 0e1f MOVLW 0x1f000774 6edd MOVWF 0xdd,0x0000776 52dd MOVF 0xdd,0x1,0x0000778 52dd MOVF 0xdd,0x1,0x000077a 0e01 MOVLW 0x1 cm.extended=TRUE; F:\MCP\projects\CAN\canNode\Source\Main.c00077c 6ef3 MOVWF 0xf3,0x000077e 0e04 MOVLW 0x4000780 cff3 MOVFF 0xff3,0xfdb000782 ffdb000784 0e01 MOVLW 0x1 cm.remote_request=TRUE; F:\MCP\projects\CAN\canNode\Source\Main.c000786 6ef3 MOVWF 0xf3,0x0000788 0e05 MOVLW 0x500078a cff3 MOVFF 0xff3,0xfdb00078c ffdb00078e 0e01 MOVLW 0x1 cm.data_length=1; F:\MCP\projects\CAN\canNode\Source\Main.c000790 6ef3 MOVWF 0xf3,0x0000792 0e06 MOVLW 0x6000794 cff3 MOVFF 0xff3,0xfdb000796 ffdb000798 0e01 MOVLW 0x1 cm.data[0]=0x01; F:\MCP\projects\CAN\canNode\Source\Main.c00079a 6ef3 MOVWF 0xf3,0x000079c 0e07 MOVLW 0x700079e cff3 MOVFF 0xff3,0xfdb0007a0 ffdb0007a2 6ef3 MOVWF 0xf3,0x0 cm.data[1]=0x07; F:\MCP\projects\CAN\canNode\Source\Main.c0007a4 0e08 MOVLW 0x80007a6 cff3 MOVFF 0xff3,0xfdb0007a8 ffdb0007aa 0e09 MOVLW 0x9 cm.data[2]=0x09; F:\MCP\projects\CAN\canNode\Source\Main.c0007ac 6ef3 MOVWF 0xf3,0x00007ae 6edb MOVWF 0xdb,0x00007b0 0e08 MOVLW 0x8 cm.data[3]=0x08; F:\MCP\projects\CAN\canNode\Source\Main.c0007b2 6ef3 MOVWF 0xf3,0x00007b4 0e0a MOVLW 0xa0007b6 cff3 MOVFF 0xff3,0xfdb0007b8 ffdb0007ba 0e03 MOVLW 0x3 cm.data[4]=0x03; F:\MCP\projects\CAN\canNode\Source\Main.c0007bc 6ef3 MOVWF 0xf3,0x00007be 0e0b MOVLW 0xb0007c0 cff3 MOVFF 0xff3,0xfdb0007c2 ffdbF:\MCP\projects\CAN\canNode\Source\Main.c0007c4 0e01 MOVLW 0x1 while(!canSendMessage(cm,PRIO_LOW)); F:\MCP\projects\CAN\canNode\Source\Main.c0007c6 6ee6 MOVWF 0xe6,0x00007c8 cfd9 MOVFF 0xfd9,0xfe90007ca ffe90007cc cfda MOVFF 0xfda,0xfea0007ce ffea0007d0 cfee MOVFF 0xfee,0xfe60007d2 ffe60007d4 cfee MOVFF 0xfee,0xfe60007d6 ffe60007d8 cfee MOVFF 0xfee,0xfe60007da ffe60007dc cfee MOVFF 0xfee,0xfe60007de ffe60007e0 cfee MOVFF 0xfee,0xfe60007e2 ffe60007e4 cfee MOVFF 0xfee,0xfe60007e6 ffe60007e8 cfee MOVFF 0xfee,0xfe60007ea ffe60007ec cfee MOVFF 0xfee,0xfe60007ee ffe60007f0 cfee MOVFF 0xfee,0xfe60007f2 ffe60007f4 cfee MOVFF 0xfee,0xfe60007f6 ffe60007f8 cfee MOVFF 0xfee,0xfe60007fa ffe60007fc cfee MOVFF 0xfee,0xfe60007fe ffe6000800 cfee MOVFF 0xfee,0xfe6000802 ffe6000804 cfee MOVFF 0xfee,0xfe6000806 ffe6000808 cfee MOVFF 0xfee,0xfe600080a ffe600080c ecab CALL 0x356,0x000080e f001000810 6e1f MOVWF 0x1f,0x0000812 0e10 MOVLW 0x10000814 5ee1 SUBWF 0xe1,0x1,0x0000816 501f MOVF 0x1f,0x0,0x0000818 0900 IORLW 0x000081a e0d4 BZ 0x7c4F:\MCP\projects\CAN\canNode\Source\Main.c00081c ec30 CALL 0xa60,0x0 t=tickGet(); F:\MCP\projects\CAN\canNode\Source\Main.c00081e f005000820 c018 MOVFF 0x18,0x70000822 f070000824 c019 MOVFF 0x19,0x71000826 f071000828 c01a MOVFF 0x1a,0x7200082a f07200082c c01b MOVFF 0x1b,0x7300082e f073} F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c000830 92f2 BCF 0xf2,0x1,0x0 INTCONbits.INT0IF=0; F:\MCP\projects\CAN\canNode\Source\Main.c} F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c000832 ec39 CALL 0xa72,0x0 tickUpdate(); F:\MCP\projects\CAN\canNode\Source\Main.c000834 f005000836 0e0f MOVLW 0xf } F:\MCP\projects\CAN\canNode\Source\Main.c000838 5ce1 SUBWF 0xe1,0x0,0x000083a e202 BC 0x84000083c 6ae1 CLRF 0xe1,0x000083e 52e5 MOVF 0xe5,0x1,0x0000840 6ee1 MOVWF 0xe1,0x0000842 52e5 MOVF 0xe5,0x1,0x0000844 cfe7 MOVFF 0xfe7,0xfd9000846 ffd9000848 52e5 MOVF 0xe5,0x1,0x000084a ee00 LFSR 0x0,0x1300084c f01300084e 0e14 MOVLW 0x14000850 04e8 DECF 0xe8,0x0,0x0000852 e303 BNC 0x85a000854 cfe5 MOVFF 0xfe5,0xfed000856 ffed000858 d7fb BRA 0x85000085a ee00 LFSR 0x0,0x1e00085c f01e00085e 0e0b MOVLW 0xb000860 04e8 DECF 0xe8,0x0,0x0000862 e303 BNC 0x86a000864 cfe5 MOVFF 0xfe5,0xfed000866 ffed000868 d7fb BRA 0x86000086a cfe5 MOVFF 0xfe5,0xffa00086c fffa00086e cfe5 MOVFF 0xfe5,0xff4000870 fff4000872 cfe5 MOVFF 0xfe5,0xff3000874 fff3000876 cfe5 MOVFF 0xfe5,0xff5000878 fff500087a cfe5 MOVFF 0xfe5,0xff700087c fff700087e cfe5 MOVFF 0xfe5,0xff6000880 fff6000882 cfe5 MOVFF 0xfe5,0xfea000884 ffea000886 cfe5 MOVFF 0xfe5,0xfe9000888 ffe900088a cfe5 MOVFF 0xfe5,0xfda00088c ffda00088e 50e5 MOVF 0xe5,0x0,0x0000890 cfe5 MOVFF 0xfe5,0xfe0000892 ffe0000894 cfe5 MOVFF 0xfe5,0xfd8000896 ffd8000898 0010 RETFIE 0x0#pragma code highVector=0x08 F:\MCP\projects\CAN\canNode\Source\Main.cvoid HighVector (void) F:\MCP\projects\CAN\canNode\Source\Main.c{ F:\MCP\projects\CAN\canNode\Source\Main.c000008 ef61 GOTO 0x6c2 _asm goto HighISR _endasm F:\MCP\projects\CAN\canNode\Source\Main.c00000a f00300000c 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\Main.c#pragma code // Return to default code section F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c#pragma interruptlow LowISR F:\MCP\projects\CAN\canNode\Source\Main.c00089a cfd8 MOVFF 0xfd8,0xfe4 void LowISR(void) F:\MCP\projects\CAN\canNode\Source\Main.c00089c ffe400089e cfe0 MOVFF 0xfe0,0xfe40008a0 ffe40008a2 6ee4 MOVWF 0xe4,0x00008a4 cfda MOVFF 0xfda,0xfe40008a6 ffe40008a8 52e6 MOVF 0xe6,0x1,0x0{ F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c0008aa 52e5 MOVF 0xe5,0x1,0x0 } F:\MCP\projects\CAN\canNode\Source\Main.c0008ac cfe5 MOVFF 0xfe5,0xfda0008ae ffda0008b0 50e5 MOVF 0xe5,0x0,0x00008b2 cfe5 MOVFF 0xfe5,0xfe00008b4 ffe00008b6 cfe5 MOVFF 0xfe5,0xfd80008b8 ffd80008ba 0010 RETFIE 0x0#pragma code lowVector=0x18 F:\MCP\projects\CAN\canNode\Source\Main.cvoid LowVector (void) F:\MCP\projects\CAN\canNode\Source\Main.c{ F:\MCP\projects\CAN\canNode\Source\Main.c000018 ef4d GOTO 0x89a _asm goto LowISR _endasm F:\MCP\projects\CAN\canNode\Source\Main.c00001a f00400001c 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\Main.c#pragma code // Return to default code section F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c/* F:\MCP\projects\CAN\canNode\Source\Main.c* Function: mainInit F:\MCP\projects\CAN\canNode\Source\Main.c* F:\MCP\projects\CAN\canNode\Source\Main.c* Input: none F:\MCP\projects\CAN\canNode\Source\Main.c* Output: none F:\MCP\projects\CAN\canNode\Source\Main.c* Pre-conditions: none F:\MCP\projects\CAN\canNode\Source\Main.c* Affects: Se code F:\MCP\projects\CAN\canNode\Source\Main.c* Depends: none. F:\MCP\projects\CAN\canNode\Source\Main.c*/ F:\MCP\projects\CAN\canNode\Source\Main.cvoid mainInit() F:\MCP\projects\CAN\canNode\Source\Main.c{ F:\MCP\projects\CAN\canNode\Source\Main.c0008bc 9294 BCF 0x94,0x1,0x0 LED0_TRIS=0; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c// Enable internal PORTB pull-ups F:\MCP\projects\CAN\canNode\Source\Main.c0008be 9ef1 BCF 0xf1,0x7,0x0 INTCON2bits.RBPU = 0; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c// Enable Interrupts F:\MCP\projects\CAN\canNode\Source\Main.c0008c0 8ef2 BSF 0xf2,0x7,0x0 INTCONbits.GIEH = 1; F:\MCP\projects\CAN\canNode\Source\Main.c0008c2 8cf2 BSF 0xf2,0x6,0x0 INTCONbits.GIEL = 1; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c// RB0 interrupt F:\MCP\projects\CAN\canNode\Source\Main.c0008c4 8cf1 BSF 0xf1,0x6,0x0 INTCON2bits.INTEDG0 = 1; //rising edge F:\MCP\projects\CAN\canNode\Source\Main.c0008c6 88f2 BSF 0xf2,0x4,0x0 INTCONbits.INT0IE = 1; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c// Enable interrupt prirority F:\MCP\projects\CAN\canNode\Source\Main.c0008c8 8ed0 BSF 0xd0,0x7,0x0 RCONbits.IPEN=1; F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c0008ca 0012 RETURN 0x0 } F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c/* F:\MCP\projects\CAN\canNode\Source\Main.c* Function: canParse F:\MCP\projects\CAN\canNode\Source\Main.c* F:\MCP\projects\CAN\canNode\Source\Main.c* Input: Received can message F:\MCP\projects\CAN\canNode\Source\Main.c* Output: none F:\MCP\projects\CAN\canNode\Source\Main.c* Pre-conditions: canInit and received packet. F:\MCP\projects\CAN\canNode\Source\Main.c* Affects: Sensors/actuators/etc. See code. F:\MCP\projects\CAN\canNode\Source\Main.c* Depends: none. F:\MCP\projects\CAN\canNode\Source\Main.c*/ F:\MCP\projects\CAN\canNode\Source\Main.c#ifdef USE_CAN F:\MCP\projects\CAN\canNode\Source\Main.c0008cc cfd9 MOVFF 0xfd9,0xfe6 void canParse(CAN_MESSAGE cm) F:\MCP\projects\CAN\canNode\Source\Main.c0008ce ffe60008d0 cfe1 MOVFF 0xfe1,0xfd90008d2 ffd9{ F:\MCP\projects\CAN\canNode\Source\Main.c0008d4 50e1 MOVF 0xe1,0x0,0x0 if (cm.ident==0x00000304) F:\MCP\projects\CAN\canNode\Source\Main.c0008d6 0ff0 ADDLW 0xf00008d8 6ee9 MOVWF 0xe9,0x00008da 0eff MOVLW 0xff0008dc 20da ADDWFC 0xda,0x0,0x00008de 6eea MOVWF 0xea,0x00008e0 0e04 MOVLW 0x40008e2 18ee XORWF 0xee,0x0,0x00008e4 e160 BNZ 0x9a60008e6 0e03 MOVLW 0x30008e8 18ee XORWF 0xee,0x0,0x00008ea e15d BNZ 0x9a60008ec 50ee MOVF 0xee,0x0,0x00008ee e15b BNZ 0x9a60008f0 50ee MOVF 0xee,0x0,0x00008f2 e159 BNZ 0x9a6{ F:\MCP\projects\CAN\canNode\Source\Main.c0008f4 0ef7 MOVLW 0xf7 if (cm.data[0]==0x20) LED0_IO=1; F:\MCP\projects\CAN\canNode\Source\Main.c0008f6 50db MOVF 0xdb,0x0,0x00008f8 0820 SUBLW 0x200008fa e101 BNZ 0x8fe0008fc 8282 BSF 0x82,0x1,0x00008fe 0ef7 MOVLW 0xf7 if (cm.data[0]==0x40) LED0_IO=0; F:\MCP\projects\CAN\canNode\Source\Main.c000900 50db MOVF 0xdb,0x0,0x0000902 0840 SUBLW 0x40000904 e101 BNZ 0x908000906 9282 BCF 0x82,0x1,0x0000908 0ef7 MOVLW 0xf7 if (cm.data[0]==0x80) F:\MCP\projects\CAN\canNode\Source\Main.c00090a 50db MOVF 0xdb,0x0,0x000090c 0880 SUBLW 0x8000090e e14b BNZ 0x9a6{ F:\MCP\projects\CAN\canNode\Source\Main.c000910 0e03 MOVLW 0x3 cm.ident=0x00000303; F:\MCP\projects\CAN\canNode\Source\Main.c000912 6ef3 MOVWF 0xf3,0x0000914 0ef0 MOVLW 0xf0000916 cff3 MOVFF 0xff3,0xfdb000918 ffdb00091a 0e03 MOVLW 0x300091c 6ef3 MOVWF 0xf3,0x000091e 0ef1 MOVLW 0xf1000920 cff3 MOVFF 0xff3,0xfdb000922 ffdb000924 0ef2 MOVLW 0xf2000926 6adb CLRF 0xdb,0x0000928 0ef3 MOVLW 0xf300092a 6adb CLRF 0xdb,0x000092c 0ef4 MOVLW 0xf4 cm.extended=FALSE; F:\MCP\projects\CAN\canNode\Source\Main.c00092e 6adb CLRF 0xdb,0x0000930 0e01 MOVLW 0x1 cm.data_length=1; F:\MCP\projects\CAN\canNode\Source\Main.c000932 6ef3 MOVWF 0xf3,0x0000934 0ef6 MOVLW 0xf6000936 cff3 MOVFF 0xff3,0xfdb000938 ffdb00093a 5082 MOVF 0x82,0x0,0x0 cm.data[0]=LED0_IO; F:\MCP\projects\CAN\canNode\Source\Main.c00093c 0b02 ANDLW 0x200093e e001 BZ 0x942000940 0e01 MOVLW 0x1000942 6ee7 MOVWF 0xe7,0x0000944 0ef7 MOVLW 0xf7000946 cfe7 MOVFF 0xfe7,0xfdb000948 ffdb00094a 0e01 MOVLW 0x1 while(!canSendMessage(cm,PRIO_LOW)); F:\MCP\projects\CAN\canNode\Source\Main.c00094c 6ee6 MOVWF 0xe6,0x000094e 50d9 MOVF 0xd9,0x0,0x0000950 0ff0 ADDLW 0xf0000952 6ee9 MOVWF 0xe9,0x0000954 0eff MOVLW 0xff000956 20da ADDWFC 0xda,0x0,0x0000958 6eea MOVWF 0xea,0x000095a cfee MOVFF 0xfee,0xfe600095c ffe600095e cfee MOVFF 0xfee,0xfe6000960 ffe6000962 cfee MOVFF 0xfee,0xfe6000964 ffe6000966 cfee MOVFF 0xfee,0xfe6000968 ffe600096a cfee MOVFF 0xfee,0xfe600096c ffe600096e cfee MOVFF 0xfee,0xfe6000970 ffe6000972 cfee MOVFF 0xfee,0xfe6000974 ffe6000976 cfee MOVFF 0xfee,0xfe6000978 ffe600097a cfee MOVFF 0xfee,0xfe600097c ffe600097e cfee MOVFF 0xfee,0xfe6000980 ffe6000982 cfee MOVFF 0xfee,0xfe6000984 ffe6000986 cfee MOVFF 0xfee,0xfe6000988 ffe600098a cfee MOVFF 0xfee,0xfe600098c ffe600098e cfee MOVFF 0xfee,0xfe6000990 ffe6000992 cfee MOVFF 0xfee,0xfe6000994 ffe6000996 ecab CALL 0x356,0x0000998 f00100099a 6e00 MOVWF 0x0,0x000099c 0e10 MOVLW 0x1000099e 5ee1 SUBWF 0xe1,0x1,0x00009a0 5000 MOVF 0x0,0x0,0x00009a2 0900 IORLW 0x00009a4 e0d2 BZ 0x94aF:\MCP\projects\CAN\canNode\Source\Main.c} F:\MCP\projects\CAN\canNode\Source\Main.c} F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c0009a6 52e5 MOVF 0xe5,0x1,0x0 } F:\MCP\projects\CAN\canNode\Source\Main.c0009a8 cfe7 MOVFF 0xfe7,0xfd90009aa ffd90009ac 0012 RETURN 0x0#endif F:\MCP\projects\CAN\canNode\Source\Main.cF:\MCP\projects\CAN\canNode\Source\Main.c