Subversion Repositories HomeAutomation

Rev

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

Rev 95 Rev 100
Line 2... Line 2...
2
 *
2
 *
3
 *                  Main application
3
 *                  Main application
4
 *
4
 *
5
 *********************************************************************
5
 *********************************************************************
6
 * FileName:        $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Main.c $
6
 * FileName:        $HeadURL: https://svn.auml.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Main.c $
7
 * Last changed:    $LastChangedDate: 2006-11-14 21:11:28 +0100 (Tue, 14 Nov 2006) $
7
 * Last changed:    $LastChangedDate: 2006-11-15 09:40:52 +0100 (Wed, 15 Nov 2006) $
8
 * By:              $LastChangedBy: johboh $
8
 * By:              $LastChangedBy: johboh $
9
 * Revision:        $Revision: 95 $
9
 * Revision:        $Revision: 100 $
10
 ********************************************************************/
10
 ********************************************************************/
11
 
11
 
12
 
12
 
13
#include <compiler.h>
13
#include <compiler.h>
14
#include <stackTasks.h>
14
#include <stackTasks.h>
Line 20... Line 20...
20
    #include <CAN.h>
20
    #include <CAN.h>
21
#endif
21
#endif
22
 
22
 
23
static void mainInit(void);
23
static void mainInit(void);
24
 
24
 
-
 
25
 
-
 
26
static int MY_ID = DEFAULT_ID;
-
 
27
static BYTE MY_NID = DEFAULT_NID;
25
 
28
 
26
void main()
29
void main()
27
{
30
{
28
    static TICK t = 0;
31
    static TICK t = 0;
29
    CAN_MESSAGE cm2;
32
    CAN_MESSAGE cm2;
30
 
33
 
31
    // Inits
34
    // Inits
32
 
35
 
33
    mainInit();
36
    mainInit();
34
 
37
 
35
    #ifdef USE_CAN
38
    #ifdef USE_CAN
36
        canInit();
39
        canInit();
37
    #endif
40
    #endif
38
 
41
 
39
    tickInit();
42
    tickInit();
-
 
43
 
-
 
44
    // Read ID and NID if exist.
-
 
45
    if (EERead(NODE_ID_EE)==NODE_HAS_ID)
-
 
46
    {
-
 
47
        MY_ID=(((WORD)EERead(NODE_ID_EE + 1))<<8)+EERead(NODE_ID_EE + 2);
-
 
48
        MY_NID=EERead(NODE_ID_EE + 3);
-
 
49
    }
40
 
50
 
41
    // Dummy bootmessage
51
    // Dummy bootmessage
42
    cm2.data[0]=0x91;
52
    cm2.data[0]=0x91;
43
    cm2.data_length=1;
53
    cm2.data_length=1;
44
    canSendMessage(cm2,PRIO_HIGH);
54
    canSendMessage(cm2,PRIO_HIGH);
Line 116... Line 126...
116
    ClrWdt();
126
    ClrWdt();
117
 
127
 
118
    switch(cm.funct)
128
    switch(cm.funct)
119
    {
129
    {
120
        case FUNCT_BOOTLOADER:
130
        case FUNCT_BOOTLOADER:
121
            if (cm.funcc==FUNCC_BOOT_INIT) { Reset(); }
131
            if (cm.funcc==FUNCC_BOOT_INIT && cm.nid==MY_NID && ((((unsigned int)cm.data[BOOT_DATA_RID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_RID_LOW_INDEX])==MY_ID) { Reset(); }
122
        break;
132
        break;
123
    }
133
    }
124
}
134
}
125
#endif
135
#endif
126
 
136