12 bool input_available(void)
14 return iqGetFullI(&(&SD3
)->iqueue
)>0;
17 uint8_t read_byte(void)
19 return (uint8_t)sdGet(&SD3
);
22 void write_byte(uint8_t b
)
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
)
33 palWriteLine(dpins
[i
], b
? PAL_HIGH
: PAL_LOW
);
36 bool read_dpin(uint8_t i
)
39 return palReadLine(LINE_BUTTON
) == PAL_HIGH
;
41 return palReadLine(dpins
[i
]) == PAL_HIGH
;
44 void write_apin(uint8_t i
, uint8_t a
)
50 uint8_t read_apin(uint8_t i
)
56 void led_on(uint8_t i
)
59 palWriteLine(LINE_LED1
, PAL_HIGH
);
61 palWriteLine(LINE_LED2
, PAL_HIGH
);
63 palWriteLine(LINE_LED3
, PAL_HIGH
);
67 void led_off(uint8_t i
)
70 palWriteLine(LINE_LED1
, PAL_LOW
);
72 palWriteLine(LINE_LED2
, PAL_LOW
);
74 palWriteLine(LINE_LED3
, PAL_LOW
);
79 return ST2MS(chVTGetSystemTime());
84 chThdSleepMilliseconds(ms
);
94 void debug(char *fmt
, ...)
97 // write_byte((uint8_t)'m');
98 // for(i = 0; i<strlen(fmt); i++){
99 // write_byte((uint8_t)fmt[i]);
110 void die(char *fmt
, ...)
112 palWriteLine(LINE_LED1
, PAL_HIGH
);
113 palWriteLine(LINE_LED2
, PAL_HIGH
);
114 palWriteLine(LINE_LED3
, PAL_HIGH
);