diff options
author | Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> | 2019-10-17 02:26:43 +0900 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2019-10-16 10:26:43 -0700 |
commit | f360c27f9302b1f916985dc32f68657ec22b3b9c (patch) | |
tree | b3c3210e6c0c450b5d27d643c6d6817309ac83fc /keyboards/naked60/serial.h | |
parent | 2fc3494fd967bb2d8ffba3dcd33fa4a7ef1066ed (diff) |
[Keyboard] Add keyboard Naked60 (#6527)
* Add Naked60
* readme Update
* Update keyboards/naked60/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Updated keymaps
Changed the alias.
* updated rule.mk
Unnecessary part was deleted and explanation was added to the boot loader.
* Update keyboards/naked60/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/rev1/rev1.h
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/rev1/rev1.h
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/rev1/config.h
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/rev1/config.h
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Updated keymaps rules.mk.
Cleaned up declarations in rules.mk.
* Updated keymap
Changed remaining aliases.
* Update rev1.c
Cleaned up declarations in rev1.c.
* Update readme
The appearance has been adjusted.
* Update keyboards/naked60/keymaps/default/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/default_with_nafuda/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/default_with_nafuda/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic_with_nafuda/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic_with_nafuda/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic_with_setta21/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic_with_setta21/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/rev1/rev1.c
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/default_with_nafuda/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/salicylic/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/default_with_nafuda/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/default_with_setta21/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/naked60/keymaps/default_with_setta21/rules.mk
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Updated keymaps
The appearance has been adjusted.
Unnecessary rules.mk was deleted.
* Update keyboards/naked60/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update readme
Changed to markdown format.
* Update keyboards/naked60/keymaps/default/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/keymaps/salicylic/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/naked60/keymaps/salicylic/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/naked60/serial.h')
-rw-r--r-- | keyboards/naked60/serial.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/keyboards/naked60/serial.h b/keyboards/naked60/serial.h new file mode 100644 index 0000000000..5deaf789e3 --- /dev/null +++ b/keyboards/naked60/serial.h @@ -0,0 +1,86 @@ +#pragma once + +#include <stdbool.h> + +// ///////////////////////////////////////////////////////////////// +// Need Soft Serial defines in config.h +// ///////////////////////////////////////////////////////////////// +// ex. +// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6 +// OPTIONAL: #define SELECT_SOFT_SERIAL_SPEED ? // ? = 1,2,3,4,5 +// // 1: about 137kbps (default) +// // 2: about 75kbps +// // 3: about 39kbps +// // 4: about 26kbps +// // 5: about 20kbps +// +// //// USE OLD API (compatible with let's split serial.c) +// ex. +// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +// #define SERIAL_MASTER_BUFFER_LENGTH 1 +// +// //// USE NEW API +// //// USE simple API (using signle-type transaction function) +// #define SERIAL_USE_SINGLE_TRANSACTION +// //// USE flexible API (using multi-type transaction function) +// #define SERIAL_USE_MULTI_TRANSACTION +// +// ///////////////////////////////////////////////////////////////// + + +//////////////// for backward compatibility //////////////////////////////// +#if !defined(SERIAL_USE_SINGLE_TRANSACTION) && !defined(SERIAL_USE_MULTI_TRANSACTION) +/* --- USE OLD API (compatible with let's split serial.c) */ + #if SERIAL_SLAVE_BUFFER_LENGTH > 0 + extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; + #endif + #if SERIAL_MASTER_BUFFER_LENGTH > 0 + extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + #endif + + void serial_master_init(void); + void serial_slave_init(void); + int serial_update_buffers(void); + +#endif // end of USE OLD API +//////////////////////////////////////////////////////////////////////////// + +// Soft Serial Transaction Descriptor +typedef struct _SSTD_t { + uint8_t *status; + uint8_t initiator2target_buffer_size; + uint8_t *initiator2target_buffer; + uint8_t target2initiator_buffer_size; + uint8_t *target2initiator_buffer; +} SSTD_t; +#define TID_LIMIT( table ) (sizeof(table) / sizeof(SSTD_t)) + +// initiator is transaction start side +void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size); +// target is interrupt accept side +void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size); + +// initiator resullt +#define TRANSACTION_END 0 +#define TRANSACTION_NO_RESPONSE 0x1 +#define TRANSACTION_DATA_ERROR 0x2 +#define TRANSACTION_TYPE_ERROR 0x4 +#ifndef SERIAL_USE_MULTI_TRANSACTION +int soft_serial_transaction(void); +#else +int soft_serial_transaction(int sstd_index); +#endif + +// target status +// *SSTD_t.status has +// initiator: +// TRANSACTION_END +// or TRANSACTION_NO_RESPONSE +// or TRANSACTION_DATA_ERROR +// target: +// TRANSACTION_DATA_ERROR +// or TRANSACTION_ACCEPTED +#define TRANSACTION_ACCEPTED 0x8 +#ifdef SERIAL_USE_MULTI_TRANSACTION +int soft_serial_get_and_clean_status(int sstd_index); +#endif |