Commit Graph

128 Commits

Author SHA1 Message Date
Dave
233cda3e25 Add back the upper/lower Apple map
Port the old .h macro-based keymap definition to new C module based
definition.
2021-11-28 23:50:28 -06:00
Dave
818acf07ed Update to 1.6.0 for new map definition scheme 2021-11-28 15:49:40 -06:00
Dave
17d5313fe9 Merge branch 'master' into newmaps 2021-11-28 15:48:03 -06:00
Dave
304022ce93 Add cmake templates for keymap setup files 2021-11-28 15:34:32 -06:00
Dave
07ff09720b Fix library-related indirection bug
Accessing library functions via function pointer seems to cause a reset.
Still investigating the cause.

- compile keymaps subdir as part of main src cmakefile, rather than as a
separate library.

- rather than setup table of function pointers and using an indirection
in the main code, set up a jump table (switch).  This is cleaner.
2021-11-28 15:28:03 -06:00
Dave
e2c2f56429 Fix extra indirection 2021-11-27 23:28:33 -06:00
Dave
52527265c0 Remove arch_init from main. 2021-11-27 23:26:47 -06:00
Dave
56d9c52edb Removed unused declaration 2021-11-27 23:26:09 -06:00
Dave
f70a6006e1 Remove redundant reset code
keymaps_init calls select, which sets the index to 0 and resets the
keymaps.
2021-11-27 23:19:16 -06:00
Dave
836d0c4a4f Initialze buffers before other subsystems
Other subsystems may want to use buffers for output, e.g., for status
and debug.
2021-11-27 23:16:51 -06:00
Dave
3e6c82830e Update comment do reflect correct DIPswitch row 2021-11-22 16:46:18 -06:00
Dave
c2fc6288da Bump version to 1.5.1 for bugfix 2021-11-08 22:47:31 -06:00
Dave
f8a314d0ca BUGFIX: 328P OUT2 output was changing OUT1
This appears to have been a cut-paste typo in the asdf_arch_out2_set() function
in asdf_arch_atmega328p.c.  The port was set to OUT2, but the bit was OUT1.
2021-11-08 22:36:09 -06:00
Dave
ebe9344c82 Clean up keymap init routine
- replace asdf_keymaps_clear() with asdf_keymaps_reset() which does the
  clear, and also resets hooks and virtual devices for the keymap
2021-09-21 21:02:37 -05:00
Dave
fc22f5be53 Fixed comment 2021-09-21 20:59:00 -05:00
Dave
123e345b6e Fix subscript on Sol map
- Change from 4 to 2, since only 3 maps for now.
2021-09-21 16:33:56 -05:00
Dave
8fa6f3f648 Fix c compile flags.
C Flags set in src and test directories were not getting set because
they were assigned to C_FLAGS, which is ignored. Changed to CFLAGS,
which is used by cmake to set default c compilation options.
2021-08-25 11:46:23 -05:00
Dave
8acb6085eb fixed C FLAGS in newmaps
C compiler flags were ignored because they were assigned to C_FLAGS
var, which is ignored.  Changed to CFLAGS.
2021-08-25 10:53:11 -05:00
Dave
63805800af firmware now compiles without errors
test suite passes
have not yet tested firmware
2021-05-19 13:32:23 -05:00
David Fenyes
23dd38b488 Fix test/CmakeLists.txt so tests compile.
Apparently some file pollution resulted in a successful compile that couldn't be
reprodued from a fresh git clone.  Fixed file copying and include paths so
compile works.  All tests pass.
2021-03-08 12:27:53 -06:00
Dave
1f2f420de0 Cleaned up generation of keymap table and NUM_KEYMAPS definition
Toward #23 and #27
2021-03-07 23:22:05 -06:00
Dave
b0c01bb0ef newmaps passes all tests with cmake build. 2021-03-07 20:56:34 -06:00
Dave
8310259cc7 Progress toward building new keymap scheme with cmake
- keymap files (c,h) are in src/Keymaps
- keymap files are added to the keymap library in src/Keymaps/CMakeLists.txt
- keymaps for the build are listed, along with positions, in /keymap_lists.cmake
- cmake generates a keymap jump table from the keymap lib and list
- tests mostly passing.  Keymap structure for testing will be used as the model
  for the app keymaps.
2021-03-07 20:38:40 -06:00
Dave
3a854d97f2 Get tests to pass with CMake build system
progress on issues #23 (new mechanism to add keymaps) and #27 (Cmake build)
2021-03-05 01:17:33 -06:00
Dave
a95a8ddb8d Remove redundant NUM_ROWS and NUM_COLS definition from test keymap 2021-03-05 01:00:40 -06:00
Dave
8088c0e157 Convert more keymaps to new scheme (untested)
- Replace asdf_keymap_defs_xxx.h files with asdf_keymap_xxx.[c,h] modules
- add _clang_format in keymaps directory
2021-03-05 01:00:40 -06:00
Dave
952e425986 New map scheme passes all tests. (Issue #25) 2021-03-05 01:00:40 -06:00
Dave
b688f1c56f Get virtual devices in new maps scheme to pass tests
Remove initialization from data structure.

Replace the previous virtual_init() with a virtual_init() that initializes the
data structures to a default state

Create virtual_sync() function to push the state of virtual devices to the
physical outputs.  Moved from the previous virtual_init() function.

The virtual device table is now built by direct calls to virtual_add() from the
setup function.

Toward issue [#23]
2021-03-05 01:00:39 -06:00
Dave
bcde21f3a8 Get keymap tests to pass (issues [#23] and [#25])
Clean compile of asdf_keymaps.c/h and tests

Clean up keymap pointer notation

Reduce number of keymaps to 16, matching number of DIP switches allocated for
keymap selection.
2021-03-05 01:00:19 -06:00
Dave
14ad7c4cc2 More keymap updates toward [#23] amd [#25]
App code now compiles clean, but test code still needs to be updated to set up
the test keymaps.  So, no passing tests yet.
2021-11-30 13:11:48 -06:00
David Fenyes
daa6ff672f WIP - non-compiling keymap updates
Please see ARCHITECTURE-keymaps.org for general idea and TODO list.
2021-03-05 00:59:46 -06:00
David Fenyes
99610395fc Get new keymap scheme to pass keymap tests
Toward issue #23
2021-03-05 00:59:40 -06:00
Dave
d6edb15734 Rebase newmaps branch to master
(WARNING: WIP) Gathered Work-in-progress on alternate keymap defs

Exploratory branch.  Code is messy and untested.
Examining creating a module for each keymap rather than header file.
2021-03-05 00:58:06 -06:00
Dave
859a5e03d1 Change order of version and architecture in build target name 2021-03-04 22:44:09 -06:00
Dave
fb3627e3a2 Change firmware version to 1.5 (in anticipation of 2.0 release) 2021-03-04 22:36:46 -06:00
Dave
e9c38e3c51 Replace Makefiles with CMake build system
- CMake build process handles dependencies much more effectively

- Cleaner separation of test and binary builds

- permit co-existing test and multiple architecture builds

- add support for AVR from cmake-avr:
      https://github.com/mkleemann/cmake-avr

- new build process avoids creating files in the src directory
2021-03-04 22:27:15 -06:00
Dave
b37f8165a4 Allow settling time for each row output change. 2020-08-06 15:22:52 -05:00
Dave
217d78a798 Physical devices attached to virtual dev change synchronously
Apply virtual device functions to each associated physical device synchronously
instead of sequentially.
2020-08-06 15:20:19 -05:00
Dave
098ae72f5f atmega2560: Increase row output settling time from 2 usec to 4 usec 2020-08-06 15:18:40 -05:00
Dave
2a02f74171 Notation fixes for pointers to functions 2020-08-06 15:17:28 -05:00
Dave
11fd44c0cb BUGFIX: repeat apparatus not initiazized on keymap switch.
Added call to asdf_repeat_init() form asdf_keymaps_select_keymap()
2020-07-20 14:13:53 -05:00
Dave
01731197af Add spaces arounce concatenation operator 2020-06-17 01:03:18 -05:00
Dave
7b05b6eadb Bug fix: long delay should invoke _delay_ms(), not _delay_us(). 2020-05-23 23:28:00 -05:00
Dave
25d0693eda minor hook cleanups
- Rename asdf_hook_do() to asdf_hook_execute()
- asdf.c: Call asdf_hook_execute() for ASDF_HOOK_EACH_SCAN hook call in the scan
  routine, instead of getting then calling the function via hook_get()
- asdf.c: move the fetch of scan function hook outside the scan loop.
2020-05-19 17:58:58 -05:00
Dave
b3b2a93cdb Added dummy strobe-set functions to arch_test.c,h. 2020-05-15 14:52:18 -05:00
Dave
97890eaf63 Apply clang-format to files 2020-05-15 14:48:40 -05:00
Dave
c9cc1a76fe Add missing DIP switch definition file to repository. 2020-05-15 14:45:42 -05:00
Dave
7801a17f56 Add DIP switch select for strobe polarity and autorepeat
- arch-* files: replace private arch_strobe_init() function with public
arch_set_neg_strobe() and arch_set_pos_strobe() functions

- asdf.c,h: add ACTION hooks to set strobe polarity and enable/disable
autorepeat

- break out DIP switch definitions into a separate header file, included by each
keymap.  This ensures consistent DIP switch behavior across keymaps.
2020-05-15 14:42:06 -05:00
Dave
64437908f7 Remove asdf_arch.[ch], which are copied from Arch directory 2020-05-14 01:36:20 -05:00
dfnr2
dff329ea42 Delete asdf_keymap_defs.h
Not a source file.  This file is copied from keymaps directory during build.
2020-05-13 15:53:22 -05:00