Subversion Repositories HomeAutomation

Rev

Details | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
61 jimmy 1
/**
386 eqlazer 2
 * CAN Test.
3
 * Tests if sending CAN messages is ok.
61 jimmy 4
 *
144 jimmy 5
 * @date    2006-11-21
61 jimmy 6
 * @author  Jimmy Myhrman
7
 *  
8
 */
9
 
10
/*-----------------------------------------------------------------------------
11
 * Includes
12
 *---------------------------------------------------------------------------*/
13
/* system files */
14
#include <avr/io.h>
15
#include <avr/interrupt.h>
16
#include <avr/wdt.h>
17
#include <stdio.h>
18
/* lib files */
19
#include <can.h>
20
#include <timebase.h>
21
 
386 eqlazer 22
#define INTERVAL 1000
23
#define SENDER_ID 0xff
61 jimmy 24
/*-----------------------------------------------------------------------------
25
 * Main Program
26
 *---------------------------------------------------------------------------*/
27
int main(void) {
127 jimmy 28
    Timebase_Init();
208 jimmy 29
 
61 jimmy 30
    sei();
31
 
386 eqlazer 32
    Can_Init();
61 jimmy 33
 
34
    uint32_t timeStamp = 0;
35
 
127 jimmy 36
    Can_Message_t txMsg;
386 eqlazer 37
 
38
    txMsg.Id = SENDER_ID;
61 jimmy 39
    txMsg.RemoteFlag = 0;
386 eqlazer 40
    txMsg.ExtendedFlag = 1;
41
    txMsg.DataLength = 1;
42
    txMsg.Data.bytes[0] = 0xff;
61 jimmy 43
 
44
    /* main loop */
45
    while (1) {
142 jimmy 46
        /* service the CAN routines */
47
        Can_Service();
61 jimmy 48
 
386 eqlazer 49
        /* send CAN message */
50
        if (Timebase_PassedTimeMillis(timeStamp) >= INTERVAL) {
142 jimmy 51
            timeStamp = Timebase_CurrentTime();
127 jimmy 52
            /* send txMsg */
144 jimmy 53
            Can_Send(&txMsg);
142 jimmy 54
        }
61 jimmy 55
    }
56
 
57
    return 0;
58
}