Commit Graph

531 Commits

Author SHA1 Message Date
László Monda
e6b5b3b3a5 Read the hardware configuration area and the user configuration area of the EEPROM into the RAM and try to apply it. 2017-09-14 09:55:29 +02:00
László Monda
6190c4d67b Rename slaveCallback to masterCallback. 2017-08-20 17:30:55 +02:00
László Monda
caf630204d Update watchdog function comment and timeout comment. 2017-08-20 16:43:58 +02:00
László Monda
894172bd50 Reduce I2C watchdog interval from 1000 ms to 100 ms. 2017-08-20 16:32:02 +02:00
László Monda
cc1ba715bc Regarding isTransferScheduled check for != kStatus_Uhk_IdleSlave which restores I2C fairly reliably upon disconnect instead of == kStatus_Success which for some reason doesn't. 2017-08-20 03:36:08 +02:00
László Monda
73239cd4f1 Rename bridgeProtocolCallback to slaveCallback. 2017-08-19 18:12:42 +02:00
László Monda
121299da29 Explicitly reinitialize previousSlaveId, currentSlaveId, Slaves[].isConnected in InitSlaveScheduler() but don't call Slaves[].init() because it'll be called by bridgeProtocolCallback() upon initialization. 2017-08-19 18:07:34 +02:00
László Monda
946d3c1451 Add kStatus_Uhk_IdleSlave and ditch the global IsI2cTransferScheduled. Make slave drivers return status_t and utilize that value instead. 2017-08-19 17:47:56 +02:00
László Monda
430c02f0ed Remove test actions and related code. 2017-08-19 13:32:02 +02:00
László Monda
a954c63f62 Rename LedDriverPhase_Initialized to LedDriverPhase_UpdateChangedLedValues 2017-08-19 13:07:21 +02:00
László Monda
67a402ed59 Make I2cAsync{Read,Write} return with status_t 2017-08-19 13:03:41 +02:00
László Monda
d22cb079b4 Rename Slave .initializer to .init and .updater to .update 2017-08-19 13:00:17 +02:00
László Monda
992fea28ad Split LED_DRIVER_STRESS_TEST as I2C_WATCHDOG and LED_DRIVER_FORCE_UPDATE 2017-08-19 12:31:49 +02:00
László Monda
58f36cf6c3 Add I2C_WatchdogOuterCounter, I2C_WatchdogInnerCounter, BridgeCounter and expose them via USB getDebugInfo() 2017-08-19 12:12:49 +02:00
László Monda
35102918b2 Only set IsI2cTransferScheduled to true if the previous I2C operation returned with kStatus_Success 2017-08-19 12:09:08 +02:00
László Monda
0751d4075a Uncomment microseconds_init() for the time being because it interferes with the PIT channel of the watchdog. 2017-08-19 12:07:20 +02:00
László Monda
f7bc6a8f82 Don't memcpy source LED values to target values when LED_DRIVER_STRESS_TEST is set because it's redundant. 2017-08-19 11:58:39 +02:00
László Monda
024c2d5cff Merge branch 'master' into macro-engine 2017-08-11 10:05:32 +02:00
Eric Tang
324f9cdadc Zero all of the macro reports when starting to play a macro 2017-08-10 23:58:24 -07:00
Eric Tang
fa0200b5a9 Fix some guard clauses 2017-08-10 22:10:08 -07:00
Eric Tang
ce84ac3e14 Implement part of the macro engine 2017-08-10 15:09:20 -07:00
László Monda
529219ee99 Init microseconds PIT counter. Can see ticks, but cannot convert them down to microseconds and milliseconds yet. 2017-08-10 23:45:36 +02:00
László Monda
04e3532961 Remove unneeded comments. 2017-08-10 19:09:57 +02:00
László Monda
58f17ba344 Remove microseconds_sysclk.c because we'll use the PIT instead for maintaining time. 2017-08-10 18:04:09 +02:00
László Monda
f56290aa62 Branch based on LED_DRIVER_STRESS_TEST in is31fl3731_driver.c 2017-08-10 15:42:02 +02:00
László Monda
31b01864eb Make sure to send no more than LED_DRIVER_LED_COUNT LED values to the LED driver IC even if LED_DRIVER_LED_COUNT is not an exact multiple of PMW_REGISTER_UPDATE_CHUNK_SIZE. 2017-08-10 15:07:03 +02:00
László Monda
f9583eb4f4 Copy source LED values to target LED values after LedDriverPhase_InitLedValues finished executing. 2017-08-10 13:25:15 +02:00
László Monda
9c5e86df11 Place curly in the same line as LedDriverPhase_Initialized. 2017-08-10 13:20:35 +02:00
László Monda
e9976f6888 Explicitly initialize all LED values in LedDriverPhase_InitLedValues before moving on to LedDriverPhase_Initialized. 2017-08-10 13:16:37 +02:00
László Monda
c81291346f Initialize target LED values with zeros, so that they'll be explicitly set to non-zero values by the LED updater algorithm. This makes the desired LEDs light up. 2017-08-10 01:13:04 +02:00
Eric Tang
968a9b13a4 Move the opening braces of the macro parser functions onto their own lines 2017-08-09 13:31:13 -07:00
Eric Tang
b1fb5f62c1 Make macro_reference_t store the offset of the first macro action and expose ParseMacroAction 2017-08-09 13:13:50 -07:00
Eric Tang
22e49c50d1 Make the macro parser store the data it extracts into macro_action_t variables 2017-08-09 13:09:17 -07:00
Eric Tang
c342f75031 Check the value of macroIndex 2017-08-09 11:50:02 -07:00
Eric Tang
abc0b994a4 Fully implement parsePlayMacroAction 2017-08-09 11:21:45 -07:00
Eric Tang
b0b659940d Limit the number of macros to 255 2017-08-09 11:13:52 -07:00
Eric Tang
558089f856 Check the value of macroCount 2017-08-09 10:02:33 -07:00
Eric Tang
71b43b8625 Use MAX_KEYMAP_NUM instead of a magic value 2017-08-09 09:54:58 -07:00
Eric Tang
c983e58d8e When parsing a macro, store its offset and number of actions 2017-08-09 09:49:30 -07:00
Eric Tang
1c91a7d5d9 Move the opening brace of ParseKeymap onto its own line and remove a stray semicolon 2017-08-08 17:44:57 -07:00
Eric Tang
332f1d9b5a Check the value of abbreviationLen 2017-08-08 17:40:41 -07:00
Eric Tang
220654876a Convert the abbreviationLen member of keymap_reference_t to uint8_t 2017-08-08 17:40:41 -07:00
Eric Tang
1ef10e9a1a Check the values of moduleConfigurationCount and keymapCount 2017-08-08 17:40:41 -07:00
Eric Tang
7306073cee Use 8-bit instead of 16-bit loop indices where they will suffice 2017-08-08 17:40:41 -07:00
Eric Tang
2b97758ad2 Move the opening braces of some functions onto their own lines 2017-08-08 16:20:48 -07:00
László Monda
17fd91c203 Make InitSlaveScheduler() and SetLeds() extern. 2017-08-09 00:17:05 +02:00
László Monda
7a45fd7e6c Add uhk_module_id_t. Use UhkModuleId_LeftKeyboardHalf in the Slaves array. Set UHK_MODULE_MAX_COUNT to 3. 2017-08-09 00:02:44 +02:00
László Monda
670c6b6e82 Delete the unused slave_type_t enum type. 2017-08-08 23:59:24 +02:00
László Monda
c53f3a1c3f Use LedDriverId_* enum values for the Slaves array. 2017-08-08 23:58:24 +02:00
László Monda
dd5a0e058d Split config_state.[ch] to config_globals.[ch] and basic_types.[ch] 2017-08-08 23:22:18 +02:00