9ddd214e13cecf82f0de2518fc461dfabeb3a235
[mTask.git] / client / interface.c
1 #include <stdbool.h>
2 #include <stdint.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <stdarg.h>
6
7 #include "interface.h"
8 #include "ch.h"
9 #include "hal.h"
10
11 //Globals
12 bool input_available(void)
13 {
14 return iqGetFullI(&(&SD3)->iqueue)>0;
15 }
16
17 uint8_t read_byte(void)
18 {
19 return (uint8_t)sdGet(&SD3);
20 }
21
22 void write_byte(uint8_t b)
23 {
24 sdPut(&SD3, b);
25 }
26
27 uint64_t dpins[] = {LINE_ARD_D0, LINE_ARD_D1, LINE_ARD_D2, LINE_ARD_D3,
28 LINE_ARD_D4, LINE_ARD_D5, LINE_ARD_D6, LINE_ARD_D7, LINE_ARD_D8,
29 LINE_ARD_D9, LINE_ARD_D10, LINE_ARD_D11, LINE_ARD_D12, LINE_ARD_D13,
30 LINE_ARD_D14, LINE_ARD_D15};
31 void write_dpin(uint8_t i, bool b)
32 {
33 palWriteLine(dpins[i], b ? PAL_HIGH : PAL_LOW);
34 }
35
36 bool read_dpin(uint8_t i)
37 {
38 return palReadLine(dpins[i]) == PAL_HIGH;
39 }
40
41 void write_apin(uint8_t i, uint8_t a)
42 {
43 (void) i;
44 (void) a;
45 }
46
47 uint8_t read_apin(uint8_t i)
48 {
49 return 0;
50 (void) i;
51 }
52
53 void led_on(uint8_t i)
54 {
55 if(i == 0){
56 palWriteLine(LINE_LED1, PAL_HIGH);
57 } else if(i == 1){
58 palWriteLine(LINE_LED2, PAL_HIGH);
59 } else if(i == 2){
60 palWriteLine(LINE_LED3, PAL_HIGH);
61 }
62 }
63
64 void led_off(uint8_t i)
65 {
66 if(i == 0){
67 palWriteLine(LINE_LED1, PAL_LOW);
68 } else if(i == 1){
69 palWriteLine(LINE_LED2, PAL_LOW);
70 } else if(i == 2){
71 palWriteLine(LINE_LED3, PAL_LOW);
72 }
73 }
74
75 long millis(void){
76 return ST2MS(chVTGetSystemTime());
77 }
78
79 void delay(long ms)
80 {
81 chThdSleepMilliseconds(ms);
82 }
83
84 void setup(void)
85 {
86 halInit();
87 chSysInit();
88 sdStart(&SD3, NULL);
89 }
90
91 void debug(char *fmt, ...)
92 {
93 (void)fmt;
94 }
95
96 void pdie(char *s)
97 {
98 (void)s;
99 }
100
101 void die(char *fmt, ...)
102 {
103 palWriteLine(LINE_LED1, PAL_HIGH);
104 palWriteLine(LINE_LED2, PAL_HIGH);
105 palWriteLine(LINE_LED3, PAL_HIGH);
106 while(1){
107 delay(100);
108 }
109 (void)fmt;
110 }