diff options
author | skullY <skullydazed@gmail.com> | 2019-08-30 11:19:03 -0700 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2019-09-17 11:39:43 +0900 |
commit | f8fe33acfac01064112fd2b5da680abfb5190b97 (patch) | |
tree | fcf75ef930800a948e5a3ba015d6759889f2284d /tmk_core/protocol/iwrap | |
parent | c339d670684674165b422a0168bfd2016ff2e6ef (diff) |
clang-format changes
Diffstat (limited to 'tmk_core/protocol/iwrap')
-rw-r--r-- | tmk_core/protocol/iwrap/iwrap.c | 202 | ||||
-rw-r--r-- | tmk_core/protocol/iwrap/iwrap.h | 16 | ||||
-rw-r--r-- | tmk_core/protocol/iwrap/main.c | 312 | ||||
-rw-r--r-- | tmk_core/protocol/iwrap/suart.h | 4 | ||||
-rw-r--r-- | tmk_core/protocol/iwrap/wd.h | 134 |
5 files changed, 327 insertions, 341 deletions
diff --git a/tmk_core/protocol/iwrap/iwrap.c b/tmk_core/protocol/iwrap/iwrap.c index 71ccc493e2..05e632da38 100644 --- a/tmk_core/protocol/iwrap/iwrap.c +++ b/tmk_core/protocol/iwrap/iwrap.c @@ -37,43 +37,39 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "iwrap.h" #include "print.h" - /* iWRAP MUX mode utils. 3.10 HID raw mode(iWRAP_HID_Application_Note.pdf) */ -#define MUX_HEADER(LINK, LENGTH) do { \ - xmit(0xbf); /* SOF */ \ - xmit(LINK); /* Link */ \ - xmit(0x00); /* Flags */ \ - xmit(LENGTH); /* Length */ \ -} while (0) -#define MUX_FOOTER(LINK) xmit(LINK^0xff) - +#define MUX_HEADER(LINK, LENGTH) \ + do { \ + xmit(0xbf); /* SOF */ \ + xmit(LINK); /* Link */ \ + xmit(0x00); /* Flags */ \ + xmit(LENGTH); /* Length */ \ + } while (0) +#define MUX_FOOTER(LINK) xmit(LINK ^ 0xff) static uint8_t connected = 0; -//static uint8_t channel = 1; +// static uint8_t channel = 1; /* iWRAP buffer */ #define MUX_BUF_SIZE 64 -static char buf[MUX_BUF_SIZE]; +static char buf[MUX_BUF_SIZE]; static uint8_t snd_pos = 0; #define MUX_RCV_BUF_SIZE 256 -static char rcv_buf[MUX_RCV_BUF_SIZE]; +static char rcv_buf[MUX_RCV_BUF_SIZE]; static uint8_t rcv_head = 0; static uint8_t rcv_tail = 0; - /* receive buffer */ -static void rcv_enq(char c) -{ +static void rcv_enq(char c) { uint8_t next = (rcv_head + 1) % MUX_RCV_BUF_SIZE; if (next != rcv_tail) { rcv_buf[rcv_head] = c; - rcv_head = next; + rcv_head = next; } } -static char rcv_deq(void) -{ +static char rcv_deq(void) { char c = 0; if (rcv_head != rcv_tail) { c = rcv_buf[rcv_tail++]; @@ -91,38 +87,33 @@ static char rcv_peek(void) } */ -static void rcv_clear(void) -{ - rcv_tail = rcv_head = 0; -} +static void rcv_clear(void) { rcv_tail = rcv_head = 0; } /* iWRAP response */ -ISR(PCINT1_vect, ISR_BLOCK) // recv() runs away in case of ISR_NOBLOCK +ISR(PCINT1_vect, ISR_BLOCK) // recv() runs away in case of ISR_NOBLOCK { - if ((SUART_IN_PIN & (1<<SUART_IN_BIT))) - return; + if ((SUART_IN_PIN & (1 << SUART_IN_BIT))) return; static volatile uint8_t mux_state = 0xff; - static volatile uint8_t mux_link = 0xff; - uint8_t c = recv(); + static volatile uint8_t mux_link = 0xff; + uint8_t c = recv(); switch (mux_state) { - case 0xff: // SOF - if (c == 0xbf) - mux_state--; + case 0xff: // SOF + if (c == 0xbf) mux_state--; break; - case 0xfe: // Link + case 0xfe: // Link mux_state--; mux_link = c; break; - case 0xfd: // Flags + case 0xfd: // Flags mux_state--; break; - case 0xfc: // Length + case 0xfc: // Length mux_state = c; break; case 0x00: mux_state = 0xff; - mux_link = 0xff; + mux_link = 0xff; break; default: if (mux_state--) { @@ -132,12 +123,10 @@ ISR(PCINT1_vect, ISR_BLOCK) // recv() runs away in case of ISR_NOBLOCK } } - /*------------------------------------------------------------------* * iWRAP communication *------------------------------------------------------------------*/ -void iwrap_init(void) -{ +void iwrap_init(void) { // reset iWRAP if in already MUX mode after AVR software-reset iwrap_send("RESET"); iwrap_mux_send("RESET"); @@ -147,43 +136,34 @@ void iwrap_init(void) iwrap_check_connection(); } -void iwrap_mux_send(const char *s) -{ +void iwrap_mux_send(const char *s) { rcv_clear(); MUX_HEADER(0xff, strlen((char *)s)); iwrap_send(s); MUX_FOOTER(0xff); } -void iwrap_send(const char *s) -{ - while (*s) - xmit(*s++); +void iwrap_send(const char *s) { + while (*s) xmit(*s++); } /* send buffer */ -void iwrap_buf_add(uint8_t c) -{ +void iwrap_buf_add(uint8_t c) { // need space for '\0' - if (snd_pos < MUX_BUF_SIZE-1) - buf[snd_pos++] = c; + if (snd_pos < MUX_BUF_SIZE - 1) buf[snd_pos++] = c; } -void iwrap_buf_del(void) -{ - if (snd_pos) - snd_pos--; +void iwrap_buf_del(void) { + if (snd_pos) snd_pos--; } -void iwrap_buf_send(void) -{ +void iwrap_buf_send(void) { buf[snd_pos] = '\0'; - snd_pos = 0; + snd_pos = 0; iwrap_mux_send(buf); } -void iwrap_call(void) -{ +void iwrap_call(void) { char *p; iwrap_mux_send("SET BT PAIR"); @@ -193,7 +173,7 @@ void iwrap_call(void) while (!strncmp(p, "SET BT PAIR", 11)) { p += 7; strncpy(p, "CALL", 4); - strncpy(p+22, " 11 HID\n\0", 9); + strncpy(p + 22, " 11 HID\n\0", 9); print_S(p); iwrap_mux_send(p); // TODO: skip to next line @@ -224,20 +204,21 @@ void iwrap_call(void) iwrap_check_connection(); } -void iwrap_kill(void) -{ +void iwrap_kill(void) { char c; iwrap_mux_send("LIST"); _delay_ms(500); - while ((c = rcv_deq()) && c != '\n') ; + while ((c = rcv_deq()) && c != '\n') + ; if (strncmp(rcv_buf + rcv_tail, "LIST ", 5)) { print("no connection to kill.\n"); return; } // skip 10 'space' chars for (uint8_t i = 10; i; i--) - while ((c = rcv_deq()) && c != ' ') ; + while ((c = rcv_deq()) && c != ' ') + ; char *p = rcv_buf + rcv_tail - 5; strncpy(p, "KILL ", 5); @@ -249,47 +230,34 @@ void iwrap_kill(void) iwrap_check_connection(); } -void iwrap_unpair(void) -{ +void iwrap_unpair(void) { iwrap_mux_send("SET BT PAIR"); _delay_ms(500); char *p = rcv_buf + rcv_tail; if (!strncmp(p, "SET BT PAIR", 11)) { - strncpy(p+29, "\n\0", 2); + strncpy(p + 29, "\n\0", 2); print_S(p); iwrap_mux_send(p); } } -void iwrap_sleep(void) -{ - iwrap_mux_send("SLEEP"); -} +void iwrap_sleep(void) { iwrap_mux_send("SLEEP"); } -void iwrap_sniff(void) -{ -} +void iwrap_sniff(void) {} -void iwrap_subrate(void) -{ -} +void iwrap_subrate(void) {} -bool iwrap_failed(void) -{ +bool iwrap_failed(void) { if (strncmp(rcv_buf, "SYNTAX ERROR", 12)) return true; else return false; } -uint8_t iwrap_connected(void) -{ - return connected; -} +uint8_t iwrap_connected(void) { return connected; } -uint8_t iwrap_check_connection(void) -{ +uint8_t iwrap_check_connection(void) { iwrap_mux_send("LIST"); _delay_ms(100); @@ -300,44 +268,31 @@ uint8_t iwrap_check_connection(void) return connected; } - /*------------------------------------------------------------------* * Host driver *------------------------------------------------------------------*/ static uint8_t keyboard_leds(void); -static void send_keyboard(report_keyboard_t *report); -static void send_mouse(report_mouse_t *report); -static void send_system(uint16_t data); -static void send_consumer(uint16_t data); - -static host_driver_t driver = { - keyboard_leds, - send_keyboard, - send_mouse, - send_system, - send_consumer -}; - -host_driver_t *iwrap_driver(void) -{ - return &driver; -} +static void send_keyboard(report_keyboard_t *report); +static void send_mouse(report_mouse_t *report); +static void send_system(uint16_t data); +static void send_consumer(uint16_t data); -static uint8_t keyboard_leds(void) { - return 0; -} +static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_system, send_consumer}; -static void send_keyboard(report_keyboard_t *report) -{ +host_driver_t *iwrap_driver(void) { return &driver; } + +static uint8_t keyboard_leds(void) { return 0; } + +static void send_keyboard(report_keyboard_t *report) { if (!iwrap_connected() && !iwrap_check_connection()) return; MUX_HEADER(0x01, 0x0c); // HID raw mode header xmit(0x9f); - xmit(0x0a); // Length - xmit(0xa1); // DATA(Input) - xmit(0x01); // Report ID + xmit(0x0a); // Length + xmit(0xa1); // DATA(Input) + xmit(0x01); // Report ID xmit(report->mods); - xmit(0x00); // reserved byte(always 0) + xmit(0x00); // reserved byte(always 0) xmit(report->keys[0]); xmit(report->keys[1]); xmit(report->keys[2]); @@ -347,16 +302,15 @@ static void send_keyboard(report_keyboard_t *report) MUX_FOOTER(0x01); } -static void send_mouse(report_mouse_t *report) -{ +static void send_mouse(report_mouse_t *report) { #if defined(MOUSEKEY_ENABLE) || defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) if (!iwrap_connected() && !iwrap_check_connection()) return; MUX_HEADER(0x01, 0x09); // HID raw mode header xmit(0x9f); - xmit(0x07); // Length - xmit(0xa1); // DATA(Input) - xmit(0x02); // Report ID + xmit(0x07); // Length + xmit(0xa1); // DATA(Input) + xmit(0x02); // Report ID xmit(report->buttons); xmit(report->x); xmit(report->y); @@ -366,18 +320,14 @@ static void send_mouse(report_mouse_t *report) #endif } -static void send_system(uint16_t data) -{ - /* not supported */ -} +static void send_system(uint16_t data) { /* not supported */ } -static void send_consumer(uint16_t data) -{ +static void send_consumer(uint16_t data) { #ifdef EXTRAKEY_ENABLE static uint16_t last_data = 0; - uint8_t bits1 = 0; - uint8_t bits2 = 0; - uint8_t bits3 = 0; + uint8_t bits1 = 0; + uint8_t bits2 = 0; + uint8_t bits3 = 0; if (!iwrap_connected() && !iwrap_check_connection()) return; if (data == last_data) return; @@ -458,9 +408,9 @@ static void send_consumer(uint16_t data) MUX_HEADER(0x01, 0x07); xmit(0x9f); - xmit(0x05); // Length - xmit(0xa1); // DATA(Input) - xmit(0x03); // Report ID + xmit(0x05); // Length + xmit(0xa1); // DATA(Input) + xmit(0x03); // Report ID xmit(bits1); xmit(bits2); xmit(bits3); diff --git a/tmk_core/protocol/iwrap/iwrap.h b/tmk_core/protocol/iwrap/iwrap.h index ffaad9395d..51f2b5670b 100644 --- a/tmk_core/protocol/iwrap/iwrap.h +++ b/tmk_core/protocol/iwrap/iwrap.h @@ -22,11 +22,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include <stdbool.h> #include "host_driver.h" - /* enable iWRAP MUX mode */ #define MUX_MODE - host_driver_t *iwrap_driver(void); void iwrap_init(void); @@ -36,13 +34,13 @@ void iwrap_buf_send(void); void iwrap_buf_add(uint8_t c); void iwrap_buf_del(void); -void iwrap_call(void); -void iwrap_kill(void); -void iwrap_unpair(void); -void iwrap_sleep(void); -void iwrap_sniff(void); -void iwrap_subrate(void); -bool iwrap_failed(void); +void iwrap_call(void); +void iwrap_kill(void); +void iwrap_unpair(void); +void iwrap_sleep(void); +void iwrap_sniff(void); +void iwrap_subrate(void); +bool iwrap_failed(void); uint8_t iwrap_connected(void); uint8_t iwrap_check_connection(void); diff --git a/tmk_core/protocol/iwrap/main.c b/tmk_core/protocol/iwrap/main.c index 3abdce8dfc..7ba780ede7 100644 --- a/tmk_core/protocol/iwrap/main.c +++ b/tmk_core/protocol/iwrap/main.c @@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include <avr/interrupt.h> #include <avr/io.h> //#include <avr/wdt.h> -#include "wd.h" // in order to use watchdog in interrupt mode +#include "wd.h" // in order to use watchdog in interrupt mode #include <avr/sleep.h> #include <util/delay.h> #include <avr/power.h> @@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "action.h" #include "iwrap.h" #ifdef PROTOCOL_VUSB -# include "vusb.h" -# include "usbdrv.h" +# include "vusb.h" +# include "usbdrv.h" #endif #include "uart.h" #include "suart.h" @@ -38,13 +38,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "keycode.h" #include "command.h" - -static void sleep(uint8_t term); -static bool console(void); -static bool console_command(uint8_t c); +static void sleep(uint8_t term); +static bool console(void); +static bool console_command(uint8_t c); static uint8_t key2asc(uint8_t key); - /* static void set_prr(void) { @@ -78,37 +76,32 @@ static void pullup_pins(void) } */ - #ifdef PROTOCOL_VUSB -static void disable_vusb(void) -{ +static void disable_vusb(void) { // disable interrupt & disconnect to prevent host from enumerating USB_INTR_ENABLE &= ~(1 << USB_INTR_ENABLE_BIT); usbDeviceDisconnect(); } -static void enable_vusb(void) -{ +static void enable_vusb(void) { USB_INTR_ENABLE |= (1 << USB_INTR_ENABLE_BIT); usbDeviceConnect(); } -static void init_vusb(void) -{ +static void init_vusb(void) { uint8_t i = 0; usbInit(); disable_vusb(); /* fake USB disconnect for > 250 ms */ - while(--i){ + while (--i) { _delay_ms(1); } enable_vusb(); } #endif -void change_driver(host_driver_t *driver) -{ +void change_driver(host_driver_t *driver) { /* host_clear_keyboard_report(); host_swap_keyboard_report(); @@ -120,20 +113,18 @@ void change_driver(host_driver_t *driver) host_set_driver(driver); } - -static bool sleeping = false; -static bool insomniac = false; // TODO: should be false for power saving +static bool sleeping = false; +static bool insomniac = false; // TODO: should be false for power saving static uint16_t last_timer = 0; -int main(void) -{ +int main(void) { MCUSR = 0; clock_prescale_set(clock_div_1); WD_SET(WD_OFF); // power saving: the result is worse than nothing... why? - //pullup_pins(); - //set_prr(); + // pullup_pins(); + // set_prr(); #ifdef PROTOCOL_VUSB disable_vusb(); @@ -146,11 +137,11 @@ int main(void) print("suart init\n"); // suart init // PC4: Tx Output IDLE(Hi) - PORTC |= (1<<4); - DDRC |= (1<<4); + PORTC |= (1 << 4); + DDRC |= (1 << 4); // PC5: Rx Input(pull-up) - PORTC |= (1<<5); - DDRC &= ~(1<<5); + PORTC |= (1 << 5); + DDRC &= ~(1 << 5); // suart receive interrut(PC5/PCINT13) PCMSK1 = 0b00100000; PCICR = 0b00000010; @@ -164,18 +155,16 @@ int main(void) last_timer = timer_read(); while (true) { #ifdef PROTOCOL_VUSB - if (host_get_driver() == vusb_driver()) - usbPoll(); + if (host_get_driver() == vusb_driver()) usbPoll(); #endif keyboard_task(); #ifdef PROTOCOL_VUSB - if (host_get_driver() == vusb_driver()) - vusb_transfer_keyboard(); + if (host_get_driver() == vusb_driver()) vusb_transfer_keyboard(); #endif // TODO: depricated if (matrix_is_modified() || console()) { last_timer = timer_read(); - sleeping = false; + sleeping = false; } else if (!sleeping && timer_elapsed(last_timer) > 4000) { sleeping = true; iwrap_check_connection(); @@ -184,7 +173,7 @@ int main(void) // TODO: suspend.h if (host_get_driver() == iwrap_driver()) { if (sleeping && !insomniac) { - _delay_ms(1); // wait for UART to send + _delay_ms(1); // wait for UART to send iwrap_sleep(); sleep(WDTO_60MS); } @@ -192,8 +181,7 @@ int main(void) } } -static void sleep(uint8_t term) -{ +static void sleep(uint8_t term) { WD_SET(WD_IRQ, term); cli(); @@ -207,51 +195,46 @@ static void sleep(uint8_t term) WD_SET(WD_OFF); } -static bool console(void) -{ - // Send to Bluetoot module WT12 - static bool breaked = false; - if (!uart_available()) - return false; - else { - uint8_t c; - c = uart_getchar(); - uart_putchar(c); - switch (c) { - case 0x00: // BREAK signal - if (!breaked) { - print("break(? for help): "); - breaked = true; - } - break; - case '\r': - uart_putchar('\n'); - iwrap_buf_send(); - break; - case '\b': - iwrap_buf_del(); - break; - default: - if (breaked) { - print("\n"); - console_command(c); - breaked = false; - } else { - iwrap_buf_add(c); - } - break; - } - return true; +static bool console(void) { + // Send to Bluetoot module WT12 + static bool breaked = false; + if (!uart_available()) + return false; + else { + uint8_t c; + c = uart_getchar(); + uart_putchar(c); + switch (c) { + case 0x00: // BREAK signal + if (!breaked) { + print("break(? for help): "); + breaked = true; + } + break; + case '\r': + uart_putchar('\n'); + iwrap_buf_send(); + break; + case '\b': + iwrap_buf_del(); + break; + default: + if (breaked) { + print("\n"); + console_command(c); + breaked = false; + } else { + iwrap_buf_add(c); + } + break; } + return true; + } } -bool command_extra(uint8_t code) -{ - return console_command(key2asc(code)); -} +bool command_extra(uint8_t code) { return console_command(key2asc(code)); } -static bool console_command(uint8_t c) -{ +static bool console_command(uint8_t c) { switch (c) { case 'h': case '?': @@ -287,11 +270,11 @@ static bool console_command(uint8_t c) print("USB mode\n"); init_vusb(); change_driver(vusb_driver()); - //iwrap_kill(); - //iwrap_sleep(); + // iwrap_kill(); + // iwrap_sleep(); // disable suart receive interrut(PC5/PCINT13) PCMSK1 &= ~(0b00100000); - PCICR &= ~(0b00000010); + PCICR &= ~(0b00000010); return 1; case 'w': print("iWRAP mode\n"); @@ -299,7 +282,7 @@ static bool console_command(uint8_t c) disable_vusb(); // enable suart receive interrut(PC5/PCINT13) PCMSK1 |= 0b00100000; - PCICR |= 0b00000010; + PCICR |= 0b00000010; return 1; #endif case 'k': @@ -315,62 +298,115 @@ static bool console_command(uint8_t c) } // convert keycode into ascii charactor -static uint8_t key2asc(uint8_t key) -{ +static uint8_t key2asc(uint8_t key) { switch (key) { - case KC_A: return 'a'; - case KC_B: return 'b'; - case KC_C: return 'c'; - case KC_D: return 'd'; - case KC_E: return 'e'; - case KC_F: return 'f'; - case KC_G: return 'g'; - case KC_H: return 'h'; - case KC_I: return 'i'; - case KC_J: return 'j'; - case KC_K: return 'k'; - case KC_L: return 'l'; - case KC_M: return 'm'; - case KC_N: return 'n'; - case KC_O: return 'o'; - case KC_P: return 'p'; - case KC_Q: return 'q'; - case KC_R: return 'r'; - case KC_S: return 's'; - case KC_T: return 't'; - case KC_U: return 'u'; - case KC_V: return 'v'; - case KC_W: return 'w'; - case KC_X: return 'x'; - case KC_Y: return 'y'; - case KC_Z: return 'z'; - case KC_1: return '1'; - case KC_2: return '2'; - case KC_3: return '3'; - case KC_4: return '4'; - case KC_5: return '5'; - case KC_6: return '6'; - case KC_7: return '7'; - case KC_8: return '8'; - case KC_9: return '9'; - case KC_0: return '0'; - case KC_ENTER: return '\n'; - case KC_ESCAPE: return 0x1B; - case KC_BSPACE: return '\b'; - case KC_TAB: return '\t'; - case KC_SPACE: return ' '; - case KC_MINUS: return '-'; - case KC_EQUAL: return '='; - case KC_LBRACKET: return '['; - case KC_RBRACKET: return ']'; - case KC_BSLASH: return '\\'; - case KC_NONUS_HASH: return '\\'; - case KC_SCOLON: return ';'; - case KC_QUOTE: return '\''; - case KC_GRAVE: return '`'; - case KC_COMMA: return ','; - case KC_DOT: return '.'; - case KC_SLASH: return '/'; - default: return 0x00; + case KC_A: + return 'a'; + case KC_B: + return 'b'; + case KC_C: + return 'c'; + case KC_D: + return 'd'; + case KC_E: + return 'e'; + case KC_F: + return 'f'; + case KC_G: + return 'g'; + case KC_H: + return 'h'; + case KC_I: + return 'i'; + case KC_J: + return 'j'; + case KC_K: + return 'k'; + case KC_L: + return 'l'; + case KC_M: + return 'm'; + case KC_N: + return 'n'; + case KC_O: + return 'o'; + case KC_P: + return 'p'; + case KC_Q: + return 'q'; + case KC_R: + return 'r'; + case KC_S: + return 's'; + case KC_T: + return 't'; + case KC_U: + return 'u'; + case KC_V: + return 'v'; + case KC_W: + return 'w'; + case KC_X: + return 'x'; + case KC_Y: + return 'y'; + case KC_Z: + return 'z'; + case KC_1: + return '1'; + case KC_2: + return '2'; + case KC_3: + return '3'; + case KC_4: + return '4'; + case KC_5: + return '5'; + case KC_6: + return '6'; + case KC_7: + return '7'; + case KC_8: + return '8'; + case KC_9: + return '9'; + case KC_0: + return '0'; + case KC_ENTER: + return '\n'; + case KC_ESCAPE: + return 0x1B; + case KC_BSPACE: + return '\b'; + case KC_TAB: + return '\t'; + case KC_SPACE: + return ' '; + case KC_MINUS: + return '-'; + case KC_EQUAL: + return '='; + case KC_LBRACKET: + return '['; + case KC_RBRACKET: + return ']'; + case KC_BSLASH: + return '\\'; + case KC_NONUS_HASH: + return '\\'; + case KC_SCOLON: + return ';'; + case KC_QUOTE: + return '\''; + case KC_GRAVE: + return '`'; + case KC_COMMA: + return ','; + case KC_DOT: + return '.'; + case KC_SLASH: + return '/'; + default: + return 0x00; } } diff --git a/tmk_core/protocol/iwrap/suart.h b/tmk_core/protocol/iwrap/suart.h index 7d92be0692..c634bbc2f4 100644 --- a/tmk_core/protocol/iwrap/suart.h +++ b/tmk_core/protocol/iwrap/suart.h @@ -1,8 +1,8 @@ #ifndef SUART #define SUART -void xmit(uint8_t); +void xmit(uint8_t); uint8_t rcvr(void); uint8_t recv(void); -#endif /* SUART */ +#endif /* SUART */ diff --git a/tmk_core/protocol/iwrap/wd.h b/tmk_core/protocol/iwrap/wd.h index 12395bf696..083d6d44d6 100644 --- a/tmk_core/protocol/iwrap/wd.h +++ b/tmk_core/protocol/iwrap/wd.h @@ -61,55 +61,58 @@ cleared on every power up or reset, along with disabling the watchdog- */ -//reset registers to the same name (MCUCSR) +// reset registers to the same name (MCUCSR) #if !defined(MCUCSR) -#define MCUCSR MCUSR +# define MCUCSR MCUSR #endif -//watchdog registers to the same name (WDTCSR) +// watchdog registers to the same name (WDTCSR) #if !defined(WDTCSR) -#define WDTCSR WDTCR +# define WDTCSR WDTCR #endif -//if enhanced watchdog, define irq values, create disable macro +// if enhanced watchdog, define irq values, create disable macro #if defined(WDIF) -#define WD_IRQ 0xC0 -#define WD_RST_IRQ 0xC8 -#define WD_DISABLE() do{ \ - MCUCSR &= ~(1<<WDRF); \ - WD_SET(WD_OFF); \ - }while(0) +# define WD_IRQ 0xC0 +# define WD_RST_IRQ 0xC8 +# define WD_DISABLE() \ + do { \ + MCUCSR &= ~(1 << WDRF); \ + WD_SET(WD_OFF); \ + } while (0) #endif -//all watchdogs -#define WD_RST 8 -#define WD_OFF 0 - -//prescale values -#define WDTO_15MS 0 -#define WDTO_30MS 1 -#define WDTO_60MS 2 -#define WDTO_120MS 3 -#define WDTO_250MS 4 -#define WDTO_500MS 5 -#define WDTO_1S 6 -#define WDTO_2S 7 - -//prescale values for avrs with WDP3 +// all watchdogs +#define WD_RST 8 +#define WD_OFF 0 + +// prescale values +#define WDTO_15MS 0 +#define WDTO_30MS 1 +#define WDTO_60MS 2 +#define WDTO_120MS 3 +#define WDTO_250MS 4 +#define WDTO_500MS 5 +#define WDTO_1S 6 +#define WDTO_2S 7 + +// prescale values for avrs with WDP3 #if defined(WDP3) -#define WDTO_4S 0x20 -#define WDTO_8S 0x21 +# define WDTO_4S 0x20 +# define WDTO_8S 0x21 #endif -//watchdog reset -#define WDR() __asm__ __volatile__("wdr") +// watchdog reset +#define WDR() __asm__ __volatile__("wdr") -//avr reset using watchdog -#define WD_AVR_RESET() do{ \ - __asm__ __volatile__("cli"); \ - WD_SET_UNSAFE(WD_RST); \ - while(1); \ - }while(0) +// avr reset using watchdog +#define WD_AVR_RESET() \ + do { \ + __asm__ __volatile__("cli"); \ + WD_SET_UNSAFE(WD_RST); \ + while (1) \ + ; \ + } while (0) /*set the watchdog- 1. save SREG @@ -119,41 +122,40 @@ cleared on every power up or reset, along with disabling the watchdog- 5. write watchdog value 6. restore SREG (restoring irq status) */ -#define WD_SET(val,...) \ - __asm__ __volatile__( \ - "in __tmp_reg__,__SREG__" "\n\t" \ - "cli" "\n\t" \ - "wdr" "\n\t" \ - "sts %[wdreg],%[wden]" "\n\t" \ - "sts %[wdreg],%[wdval]" "\n\t" \ - "out __SREG__,__tmp_reg__" "\n\t" \ - : \ - : [wdreg] "M" (&WDTCSR), \ - [wden] "r" ((uint8_t)(0x18)), \ - [wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \ - : "r0" \ -) +#define WD_SET(val, ...) \ + __asm__ __volatile__("in __tmp_reg__,__SREG__" \ + "\n\t" \ + "cli" \ + "\n\t" \ + "wdr" \ + "\n\t" \ + "sts %[wdreg],%[wden]" \ + "\n\t" \ + "sts %[wdreg],%[wdval]" \ + "\n\t" \ + "out __SREG__,__tmp_reg__" \ + "\n\t" \ + : \ + : [ wdreg ] "M"(&WDTCSR), [ wden ] "r"((uint8_t)(0x18)), [ wdval ] "r"((uint8_t)(val | (__VA_ARGS__ + 0))) \ + : "r0") /*set the watchdog when I bit in SREG known to be clear- 1. reset watchdog timer 2. enable watchdog change 5. write watchdog value */ -#define WD_SET_UNSAFE(val,...) \ - __asm__ __volatile__( \ - "wdr" "\n\t" \ - "sts %[wdreg],%[wden]" "\n\t" \ - "sts %[wdreg],%[wdval]" "\n\t" \ - : \ - : [wdreg] "M" (&WDTCSR), \ - [wden] "r" ((uint8_t)(0x18)), \ - [wdval] "r" ((uint8_t)(val|(__VA_ARGS__+0))) \ -) - - -//for compatibility with avr/wdt.h -#define wdt_enable(val) WD_SET(WD_RST,val) -#define wdt_disable() WD_SET(WD_OFF) - +#define WD_SET_UNSAFE(val, ...) \ + __asm__ __volatile__("wdr" \ + "\n\t" \ + "sts %[wdreg],%[wden]" \ + "\n\t" \ + "sts %[wdreg],%[wdval]" \ + "\n\t" \ + : \ + : [ wdreg ] "M"(&WDTCSR), [ wden ] "r"((uint8_t)(0x18)), [ wdval ] "r"((uint8_t)(val | (__VA_ARGS__ + 0)))) + +// for compatibility with avr/wdt.h +#define wdt_enable(val) WD_SET(WD_RST, val) +#define wdt_disable() WD_SET(WD_OFF) #endif /* _AVR_WD_H_ */ |