Subversion Repositories HomeAutomation

Rev

Rev 268 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 268 Rev 290
1
#include <inttypes.h>
1
#include <inttypes.h>
2
#include <avr/interrupt.h>
2
#include <avr/interrupt.h>
3
#include <stdio.h>
3
#include <stdio.h>
4
#include <bios.h>
4
#include <bios.h>
5
 
5
 
6
static int app_putchar(char c, FILE *stream);
6
static int app_putchar(char c, FILE *stream);
7
static int app_getchar(FILE *stream);
7
static int app_getchar(FILE *stream);
8
 
8
 
9
static FILE mystdio = FDEV_SETUP_STREAM(app_putchar, app_getchar,
9
static FILE mystdio = FDEV_SETUP_STREAM(app_putchar, app_getchar,
10
                                         _FDEV_SETUP_RW);
10
                                         _FDEV_SETUP_RW);
11
 
11
 
12
static int app_putchar(char c, FILE *stream) {
12
static int app_putchar(char c, FILE *stream) {
13
    bios->debug_putchar(c);
13
    bios->debug_putchar(c);
14
    return 0;
14
    return 0;
15
}
15
}
16
   
16
   
17
static int app_getchar(FILE *stream) {
17
static int app_getchar(FILE *stream) {
18
    return bios->debug_getchar();
18
    return bios->debug_getchar();
-
 
19
}
-
 
20
 
-
 
21
void can_receive(Can_Message_t *msg) {
-
 
22
    printf("candata!\n");
19
}
23
}
20
 
24
 
21
int main(void)
25
int main(void)
22
{
26
{
23
    unsigned long time;
27
    unsigned long time;
24
    unsigned long time1 = 0;
28
    unsigned long time1 = bios->timebase_get();
25
    unsigned long time2 = 0;
29
    unsigned long time2 = bios->timebase_get();
26
   
30
   
27
    sei();
31
    sei();
28
   
32
   
29
    stdout = &mystdio;
33
    stdout = &mystdio;
30
    stdin = &mystdio;
34
    stdin = &mystdio;
-
 
35
 
-
 
36
    Can_Message_t txMsg;
-
 
37
    txMsg.Id = 100;
-
 
38
    txMsg.DataLength = 0;
-
 
39
    txMsg.RemoteFlag = 0;
-
 
40
    txMsg.ExtendedFlag = 1;
-
 
41
   
-
 
42
    //set up callback for candata
-
 
43
    bios->can_callback = &can_receive;
31
   
44
   
32
    printf("AVR Test Application\n");
45
    printf("AVR Test Application\n");
33
    printf("Using AVR BIOS version %x\n", bios->version);
46
    printf("Using AVR BIOS version %x\n", bios->version);
34
   
47
   
35
    while (1) {
48
    while (1) {
36
        time = bios->timebase_get();
49
        time = bios->timebase_get();
37
        if ((time - time1) >= 2000) {
50
        if ((time - time1) >= 2000) {
-
 
51
            //test-send a canmessage
-
 
52
            bios->can_send(&txMsg);
38
            time1 = time;
53
            time1 = time;
39
            printf("Two seconds passed, time is now %d.\n", (int)time);
54
            printf("Two seconds passed, time is now %d.\n", (int)time);
40
        }
55
        }
41
 
56
 
42
        if ((time - time2) >= 20000) {
57
        if ((time - time2) >= 20000) {
43
            time2 = time;
58
            time2 = time;
44
            printf("Will now hang node.\n");
59
            printf("Will now hang node.\n");
45
            cli();
60
            cli();
46
        }
61
        }
47
    }
62
    }
48
   
63
   
49
    return 0;
64
    return 0;
50
}
65
}
51
 
66