Blame view

Robot/main.h 1.52 KB
d2f14e3c   pfrison   Debut programme a...
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  #ifndef MAIN
  #define MAIN
  
  #define SAVE_CONTEXT()  \
  asm volatile ( \
  "push	r0				\n\t" \
  "in		r0, __SREG__		\n\t" \
  "cli					\n\t" \
  "push	r0				\n\t" \
  "push	r1				\n\t" \
  "clr	r1				\n\t" \
  "push	r2				\n\t" \
  "push	r3				\n\t" \
  "push	r4				\n\t" \
  "push	r5				\n\t" \
  "push	r6				\n\t" \
  "push	r7				\n\t" \
  "push	r8				\n\t" \
  "push	r9				\n\t" \
  "push	r10				\n\t" \
  "push	r11				\n\t" \
  "push	r12				\n\t" \
  "push	r13				\n\t" \
  "push	r14				\n\t" \
  "push	r15				\n\t" \
  "push	r16				\n\t" \
  "push	r17				\n\t" \
  "push	r18				\n\t" \
  "push	r19				\n\t" \
  "push	r20				\n\t" \
  "push	r21				\n\t" \
  "push	r22				\n\t" \
  "push	r23				\n\t" \
  "push	r24				\n\t" \
  "push	r25				\n\t" \
  "push	r26				\n\t" \
  "push	r27				\n\t" \
  "push	r28				\n\t" \
  "push	r29				\n\t" \
  "push	r30				\n\t" \
  "push	r31				\n\t" \
  );
  
  #define RESTORE_CONTEXT() \
  asm volatile ( \
  "pop	r31				\n\t" \
  "pop	r30				\n\t" \
  "pop	r29				\n\t" \
  "pop	r28				\n\t" \
  "pop	r27				\n\t" \
  "pop	r26				\n\t" \
  "pop	r25				\n\t" \
  "pop	r24				\n\t" \
  "pop	r23				\n\t" \
  "pop	r22				\n\t" \
  "pop	r21				\n\t" \
  "pop	r20				\n\t" \
  "pop	r19				\n\t" \
  "pop	r18				\n\t" \
  "pop	r17				\n\t" \
  "pop	r16				\n\t" \
  "pop	r15				\n\t" \
  "pop	r14				\n\t" \
  "pop	r13				\n\t" \
  "pop	r12				\n\t" \
  "pop	r11				\n\t" \
  "pop	r10				\n\t" \
  "pop	r9				\n\t" \
  "pop	r8				\n\t" \
  "pop	r7				\n\t" \
  "pop	r6				\n\t" \
  "pop	r5				\n\t" \
  "pop	r4				\n\t" \
  "pop	r3				\n\t" \
  "pop	r2				\n\t" \
  "pop	r1				\n\t" \
  "pop	r0				\n\t" \
  "out 		__SREG__, r0		\n\t" \
  "pop	r0				\n\t" \
  );
  
  #endif