Subversion Repositories HomeAutomation

Rev

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

Rev 26 Rev 31
Line 23... Line 23...
23
#endif
23
#endif
24
 
24
 
25
 
25
 
26
 
26
 
27
static void mainInit(void);
27
static void mainInit(void);
-
 
28
 
-
 
29
static BOOL heartBeatEnabled = TRUE;
28
 
30
 
29
void main()
31
void main()
30
{
32
{
31
    static TICK t = 0;
33
    static TICK t = 0;
32
 
34
 
Line 38... Line 40...
38
        canInit();
40
        canInit();
39
    #endif
41
    #endif
40
 
42
 
41
    #ifdef USE_UART
43
    #ifdef USE_UART
42
        uartInit();
44
        uartInit();
43
        uartPutrs("BOOT OK!");
-
 
44
    #endif
45
    #endif
45
 
46
 
46
    tickInit();
47
    tickInit();
47
 
48
 
48
    while(1)
49
    while(1)
49
    {
50
    {
50
        if ((tickGet()-t)>=10*TICK_SECOND)
51
        if ((tickGet()-t)>=5*TICK_SECOND && heartBeatEnabled==TRUE)
51
        {
52
        {
52
            CAN_MESSAGE cm;
53
            CAN_MESSAGE cm;
53
 
54
 
54
            t = tickGet();
55
            t = tickGet();
55
       
56
       
56
            // Send heartbeat
57
            // Send heartbeat
57
            cm.ident=0x00000707;
58
            cm.ident=0x00000666;
58
            cm.extended=FALSE;
59
            cm.extended=FALSE;
59
            cm.data_length=1;
60
            cm.data_length=1;
60
            cm.data[0]='H';
61
            cm.data[0]='H';
61
 
62
 
62
            while(!canSendMessage(cm));
63
            while(!canSendMessage(cm));
Line 107... Line 108...
107
*
108
*
108
*   Input:  none
109
*   Input:  none
109
*   Output: none
110
*   Output: none
110
*   Pre-conditions: none
111
*   Pre-conditions: none
111
*   Affects: Se code
112
*   Affects: Se code
112
*   Depends: none.
113
*   Depends: none.
113
*/
114
*/
114
void mainInit()
115
void mainInit()
115
{
116
{
116
    LED0_TRIS=0;   
117
    LED0_TRIS=0;   
117
 
118
 
118
    // Enable internal PORTB pull-ups
119
    // Enable internal PORTB pull-ups
119
    INTCON2bits.RBPU = 0;
120
    INTCON2bits.RBPU = 0;
120
   
121
   
121
    // Enable Interrupts
122
    // Enable Interrupts
122
    INTCONbits.GIEH = 1;
123
    INTCONbits.GIEH = 1;
123
    INTCONbits.GIEL = 1;
124
    INTCONbits.GIEL = 1;
124
 
125
 
125
}
126
}
126
 
127
 
127
/*
128
/*
128
*   Function: canParse
129
*   Function: canParse
129
*
130
*
Line 135... Line 136...
135
*/
136
*/
136
#ifdef USE_CAN
137
#ifdef USE_CAN
137
void canParse(CAN_MESSAGE cm)
138
void canParse(CAN_MESSAGE cm)
138
{
139
{
139
    int i=0;
140
    int i=0;
140
 
141
   
141
    if (cm.extended==TRUE)
142
    uartPutc(UART_START_BYTE);
142
    {
143
    uartPutc((BYTE)(cm.ident));
-
 
144
    uartPutc((BYTE)(cm.ident>>8));
-
 
145
    uartPutc((BYTE)(cm.ident>>16));
143
        uartPutc((BYTE)(cm.ident>>24));
146
    uartPutc((BYTE)(cm.ident>>24));
144
        uartPutc((BYTE)(cm.ident>>16));
-
 
145
    }
-
 
146
    uartPutc((BYTE)(cm.ident>>8));
147
    uartPutc(cm.extended);
147
    uartPutc((BYTE)(cm.ident));
148
    uartPutc(cm.data_length);
148
 
-
 
149
    for(i=0;i<cm.data_length && i<8;i++)
149
    for(i=0;i<8;i++) uartPutc(cm.data[cm.data_length-i-1]);
150
        uartPutc(cm.data[cm.data_length-i-1]);
150
    uartPutc(UART_END_BYTE);
151
 
151
 
152
}
152
}
153
#endif
153
#endif
154
 
154
 
155
 
155
 
156
/*
156
/*
157
*   Function: uartParse
157
*   Function: uartParse
158
*
158
*
159
*   Input:  Received uart message
159
*   Input:  Received uart message
160
*   Output: none
160
*   Output: none
Line 162... Line 162...
162
*   Affects: Sensors/actuators/etc. See code.
162
*   Affects: Sensors/actuators/etc. See code.
163
*   Depends: none.
163
*   Depends: none.
164
*/
164
*/
165
#ifdef USE_UART
165
#ifdef USE_UART
166
void uartParse(BYTE c)
166
void uartParse(BYTE c)
167
{
167
{
168
 
168
 
169
 
169
 
170
    if (c=='1')
170
    if (c=='1')
171
    {
171
    {
172
        CAN_MESSAGE cm;
172
        CAN_MESSAGE cm;
173
        cm.ident=0x00000123;
173
        cm.ident=0x00000123;
174
        cm.extended=FALSE;
174
        cm.extended=FALSE;
175
        cm.data_length=4;
175
        cm.data_length=4;
176
        cm.data[0]='!';
176
        cm.data[0]='!';
Line 194... Line 194...
194
        cm.data[4]=' ';
194
        cm.data[4]=' ';
195
        cm.data[5]='d';
195
        cm.data[5]='d';
196
        cm.data[6]='o';
196
        cm.data[6]='o';
197
        cm.data[7]='G';
197
        cm.data[7]='G';
198
 
198
 
199
 
199
 
-
 
200
        while(!canSendMessage(cm));
-
 
201
    }
-
 
202
 
-
 
203
    if (c=='3')
-
 
204
    {
-
 
205
        CAN_MESSAGE cm;
-
 
206
        cm.ident=0x00000010;
-
 
207
        cm.extended=FALSE;
-
 
208
        cm.data_length=6;
-
 
209
        cm.data[0]='0';
-
 
210
        cm.data[1]='1';
-
 
211
        cm.data[2]='2';
-
 
212
        cm.data[3]='3';
-
 
213
        cm.data[4]='4';
-
 
214
        cm.data[5]='5';
-
 
215
 
200
        while(!canSendMessage(cm));
216
        while(!canSendMessage(cm));
201
    }
217
    }
202
 
218
 
203
    if (c=='d')
219
    if (c=='d')
204
    {
220
    {
205
        uartPutc('D');
221
        //uartPutc('D');
206
    }
222
    }
207
 
223
 
208
    if (c=='D')
224
    if (c=='D')
209
    {
225
    {
210
        uartPutrs("Debug? Debug!");
226
        //uartPutrs("Debug? Debug!");
-
 
227
    }
-
 
228
 
-
 
229
    if (c=='T')
-
 
230
    {
-
 
231
        heartBeatEnabled=(heartBeatEnabled==TRUE?FALSE:TRUE);
211
    }
232
    }
212
 
233
 
213
    if (c=='3')
234
    if (c=='4')
214
    {
235
    {
-
 
236
        /*
215
        uartPutc(RXB0CON);
237
        uartPutc(RXB0CON);
216
        uartPutc(RXB1CON);
238
        uartPutc(RXB1CON);
217
        uartPutc(123);
239
        uartPutc(123);
218
        uartPutc(B0CON);
240
        uartPutc(B0CON);
219
        uartPutc(B1CON);
241
        uartPutc(B1CON);
Line 250... Line 272...
250
        uartPutc(RXFBCON6);
272
        uartPutc(RXFBCON6);
251
        uartPutc(RXFBCON7);
273
        uartPutc(RXFBCON7);
252
        uartPutc(123);
274
        uartPutc(123);
253
        uartPutc(TXBIE);
275
        uartPutc(TXBIE);
254
        uartPutc(BIE0);
276
        uartPutc(BIE0);
-
 
277
        */
255
    }
278
    }
256
 
279
 
257
}
280
}
258
#endif
281
#endif