-
Notifications
You must be signed in to change notification settings - Fork 0
/
application.c
59 lines (48 loc) · 1.15 KB
/
application.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "TinyTimber.h"
#include "sciTinyTimber.h"
#include "canTinyTimber.h"
#include <stdlib.h>
#include <stdio.h>
typedef struct {
Object super;
int count;
char c;
} App;
App app = { initObject(), 0, 'X' };
void reader(App*, int);
void receiver(App*, int);
Serial sci0 = initSerial(SCI_PORT0, &app, reader);
Can can0 = initCan(CAN_PORT0, &app, receiver);
void receiver(App *self, int unused) {
CANMsg msg;
CAN_RECEIVE(&can0, &msg);
SCI_WRITE(&sci0, "Can msg received: ");
SCI_WRITE(&sci0, msg.buff);
}
void reader(App *self, int c) {
SCI_WRITE(&sci0, "Rcv: \'");
SCI_WRITECHAR(&sci0, c);
SCI_WRITE(&sci0, "\'\n");
}
void startApp(App *self, int arg) {
CANMsg msg;
CAN_INIT(&can0);
SCI_INIT(&sci0);
SCI_WRITE(&sci0, "Hello, hello...\n");
msg.msgId = 1;
msg.nodeId = 1;
msg.length = 6;
msg.buff[0] = 'H';
msg.buff[1] = 'e';
msg.buff[2] = 'l';
msg.buff[3] = 'l';
msg.buff[4] = 'o';
msg.buff[5] = 0;
CAN_SEND(&can0, &msg);
}
int main() {
INSTALL(&sci0, sci_interrupt, SCI_IRQ0);
INSTALL(&can0, can_interrupt, CAN_IRQ0);
TINYTIMBER(&app, startApp, 0);
return 0;
}