13 bool input_available(void)
15 return iqGetFullI(&(&SD3
)->iqueue
)>0;
18 uint8_t read_byte(void)
20 return (uint8_t)sdGet(&SD3
);
23 void write_byte(uint8_t b
)
28 uint64_t dpins
[] = {LINE_ARD_D0
, LINE_ARD_D1
, LINE_ARD_D2
, LINE_ARD_D3
,
29 LINE_ARD_D4
, LINE_ARD_D5
, LINE_ARD_D6
, LINE_ARD_D7
, LINE_ARD_D8
,
30 LINE_ARD_D9
, LINE_ARD_D10
, LINE_ARD_D11
, LINE_ARD_D12
, LINE_ARD_D13
,
31 LINE_ARD_D14
, LINE_ARD_D15
};
32 void write_dpin(uint8_t i
, bool b
)
34 palWriteLine(dpins
[i
], b
? PAL_HIGH
: PAL_LOW
);
37 bool read_dpin(uint8_t i
)
39 return palReadLine(dpins
[i
]) == PAL_HIGH
;
42 void write_apin(uint8_t i
, uint8_t a
)
48 uint8_t read_apin(uint8_t i
)
54 void led_on(uint8_t i
)
57 palWriteLine(LINE_LED1
, PAL_HIGH
);
59 palWriteLine(LINE_LED2
, PAL_HIGH
);
61 palWriteLine(LINE_LED3
, PAL_HIGH
);
65 void led_off(uint8_t i
)
68 palWriteLine(LINE_LED1
, PAL_LOW
);
70 palWriteLine(LINE_LED2
, PAL_LOW
);
72 palWriteLine(LINE_LED3
, PAL_LOW
);
77 return ST2MS(chVTGetSystemTime());
82 chThdSleepMilliseconds(ms
);
92 void debug(char *fmt
, ...)
96 chvprintf((BaseSequentialStream
*)&SD3
, fmt
, ap
);
105 void die(char *fmt
, ...)
107 palWriteLine(LINE_LED1
, PAL_HIGH
);
108 palWriteLine(LINE_LED2
, PAL_HIGH
);
109 palWriteLine(LINE_LED3
, PAL_HIGH
);