X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=int%2Finterface.c;h=810694526ade5023cf51e8f6b90eb0c5a2f557f1;hb=f90517d738696125a067f113edf93f404873115b;hp=5c9b500a124766faf4b2e07491df0dbdeaaf84b6;hpb=fb5465ae10e39a9505634e0aaf8e1cab9710f5d7;p=mTask.git diff --git a/int/interface.c b/int/interface.c index 5c9b500..8106945 100644 --- a/int/interface.c +++ b/int/interface.c @@ -2,22 +2,21 @@ #include #include #include +#include #include "interface.h" #include "ch.h" #include "hal.h" -//char buf[1024]; - //Globals bool input_available(void) { - return qSizeX(&(&SD3)->iqueue) > 0; + return iqGetFullI(&(&SD3)->iqueue)>0; } uint8_t read_byte(void) { - return sdGet(&SD3); + return (uint8_t)sdGet(&SD3); } void write_byte(uint8_t b) @@ -25,22 +24,27 @@ void write_byte(uint8_t b) sdPut(&SD3, b); } +uint64_t dpins[] = {LINE_ARD_D0, LINE_ARD_D1, LINE_ARD_D2, LINE_ARD_D3, + LINE_ARD_D4, LINE_ARD_D5, LINE_ARD_D6, LINE_ARD_D7, LINE_ARD_D8, + LINE_ARD_D9, LINE_ARD_D10, LINE_ARD_D11, LINE_ARD_D12, LINE_ARD_D13, + LINE_ARD_D14, LINE_ARD_D15}; void write_dpin(uint8_t i, bool b) { - (void) i; - (void) b; + palWriteLine(dpins[i], b ? PAL_HIGH : PAL_LOW); } bool read_dpin(uint8_t i) { - return 0; - (void) i; + if(i == 3){ + return palReadLine(LINE_BUTTON) == PAL_HIGH; + } + return palReadLine(dpins[i]) == PAL_HIGH; } void write_apin(uint8_t i, uint8_t a) { - (void)i; - (void)a; + (void) i; + (void) a; } uint8_t read_apin(uint8_t i) @@ -49,6 +53,28 @@ uint8_t read_apin(uint8_t i) (void) i; } +void led_on(uint8_t i) +{ + if(i == 0){ + palWriteLine(LINE_LED1, PAL_HIGH); + } else if(i == 1){ + palWriteLine(LINE_LED2, PAL_HIGH); + } else if(i == 2){ + palWriteLine(LINE_LED3, PAL_HIGH); + } +} + +void led_off(uint8_t i) +{ + if(i == 0){ + palWriteLine(LINE_LED1, PAL_LOW); + } else if(i == 1){ + palWriteLine(LINE_LED2, PAL_LOW); + } else if(i == 2){ + palWriteLine(LINE_LED3, PAL_LOW); + } +} + long millis(void){ return ST2MS(chVTGetSystemTime()); } @@ -65,6 +91,29 @@ void setup(void) sdStart(&SD3, NULL); } -void test(void) +void debug(char *fmt, ...) +{ +// unsigned int i; +// write_byte((uint8_t)'m'); +// for(i = 0; i