Subversion Repositories HomeAutomation

Rev

Rev 339 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 339 Rev 342
Line 2... Line 2...
2
 *
2
 *
3
 *                  CAN module
3
 *                  CAN module
4
 *
4
 *
5
 *********************************************************************
5
 *********************************************************************
6
 * FileName:        $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/CAN.c $
6
 * FileName:        $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/CAN.c $
7
 * Last changed:    $LastChangedDate: 2007-02-25 20:51:08 +0100 (Sun, 25 Feb 2007) $
7
 * Last changed:    $LastChangedDate: 2007-02-26 21:38:37 +0100 (Mon, 26 Feb 2007) $
8
 * By:              $LastChangedBy: johboh $
8
 * By:              $LastChangedBy: johboh $
9
 * Revision:        $Revision: 339 $
9
 * Revision:        $Revision: 342 $
10
 ********************************************************************/
10
 ********************************************************************/
11
 
11
 
12
#include <CANdefs.h>
12
#include <CANdefs.h>
13
#include <stackTasks.h>
13
#include <stackTasks.h>
14
#include <CAN.h>
14
#include <CAN.h>
Line 125... Line 125...
125
 
125
 
126
    // Send user program startup heatbeat
126
    // Send user program startup heatbeat
127
    outCp.type=ptPGM;
127
    outCp.type=ptPGM;
128
    outCp.pgm.class=pcCTRL;
128
    outCp.pgm.class=pcCTRL;
129
    outCp.pgm.id=pctAPPBOOT;
129
    outCp.pgm.id=pctAPPBOOT;
130
    outCp.length=0;
130
    outCp.length=2;
-
 
131
    outCp.data[1]=(BYTE)((APP_VERSION & 0xFF00)>>8);
-
 
132
    outCp.data[0]=(BYTE)(APP_VERSION & 0xFF);
131
    while(!canSendMessage(outCp,PRIO_HIGH));
133
    while(!canSendMessage(outCp,PRIO_HIGH));
132
}
134
}
133
 
135
 
134
 
136
 
135
/*
137
/*
Line 190... Line 192...
190
        //RXB0SIDL 20 19 18 xx xx xx 17 16
192
        //RXB0SIDL 20 19 18 xx xx xx 17 16
191
        //RXB0EIDH 15 14 13 12 11 10 09 08
193
        //RXB0EIDH 15 14 13 12 11 10 09 08
192
        //RXB0EIDL 07 06 05 04 03 02 01 00
194
        //RXB0EIDL 07 06 05 04 03 02 01 00
193
 
195
 
194
 
196
 
195
        cp.type = ((RXB0SIDH&0xC)>>6);
197
        cp.type = (BYTE)((RXB0SIDH&0xC0)>>6);
196
 
198
 
197
 
199
 
198
        if (cp.type==ptBOOT)
200
        if (cp.type==ptBOOT)
199
        {
201
        {
200
            cp.boot.type  = ((RXB0SIDH&0x38)>>3);
202
            cp.boot.type  = ((RXB0SIDH&0x38)>>3);
Line 202... Line 204...
202
            cp.boot.rid   = RXB0EIDH;
204
            cp.boot.rid   = RXB0EIDH;
203
        }
205
        }
204
        else
206
        else
205
        {
207
        {
206
            cp.pgm.class= ((RXB0SIDH&0x3C)>>2);
208
            cp.pgm.class= ((RXB0SIDH&0x3C)>>2);
207
            cp.pgm.id   = (((WORD)RXB0SIDH&0x3)<<13)+(((WORD)RXB0SIDL&0xE0)<<5)+((RXB0SIDL&0x3)<<8)+RXB0EIDH;
209
            cp.pgm.id   = (((WORD)RXB0SIDH&0x3)<<13)+(((WORD)RXB0SIDL&0xE0)<<5)+(((WORD)RXB0SIDL&0x3)<<8)+(WORD)RXB0EIDH;
208
        }
210
        }
209
        cp.sid   = RXB0EIDL;
211
        cp.sid   = RXB0EIDL;
210
 
212
 
211
 
213
 
212
        // Data length
214
        // Data length