László Monda
|
d43bbbbf51
|
Not being an extern function, lowerCamelCase uhkModuleTargetStates.
|
2017-09-28 02:14:40 +02:00 |
|
László Monda
|
9a4c49e9a6
|
Extract MAX_PWM_BRIGHTNESS.
|
2017-09-28 01:35:04 +02:00 |
|
László Monda
|
d4124d8331
|
Cache UHK module state variables and only tranfer them when changed.
|
2017-09-28 01:30:27 +02:00 |
|
László Monda
|
5769f66994
|
Introduce currentSlave when initializing the slaves.
|
2017-09-27 00:27:14 +02:00 |
|
László Monda
|
8f830f7d9f
|
Make sure that all slaves are initialized upon startup.
|
2017-09-27 00:22:28 +02:00 |
|
László Monda
|
1839be81b6
|
Improve the description of slots.
|
2017-09-26 20:08:57 +02:00 |
|
László Monda
|
9dde9ee917
|
Replace SLOT_ID_* macros with SlotId_* enum values.
|
2017-09-26 20:01:18 +02:00 |
|
László Monda
|
065a19fdc8
|
Remove redundant SLOT_I2C_* macros from slot.h because they're present in i2c_addresses.h
|
2017-09-26 19:40:53 +02:00 |
|
László Monda
|
3bd943aa85
|
Extract rx() and tx().
|
2017-09-26 19:19:44 +02:00 |
|
László Monda
|
b88c6e4291
|
Add i2c_message_t and use it all across the codebase. This will allow handling variable-length I2C messages and validation with minimal effort. The test LED and brightness PWM update features got temporarily broken and will fix them soon.
|
2017-09-25 03:03:14 +02:00 |
|
László Monda
|
ef9d9ee9a7
|
Add kStatus_Uhk_NoOp and make the scheduler handle it.
|
2017-09-22 14:32:43 +02:00 |
|
László Monda
|
2aa74853b5
|
Add UhkModulePhase_ProcessKeystates and extract relevant code into its section.
|
2017-09-22 03:13:53 +02:00 |
|
László Monda
|
cc57daa674
|
Rename UhkModulePhase_SendTestLedCommand to UhkModulePhase_SetTestLed
|
2017-09-22 02:59:12 +02:00 |
|
László Monda
|
2e33a83e29
|
Rename UhkModulePhase_SendPwmBrightnessCommand to UhkModulePhase_SetLedPwmBrightness
|
2017-09-22 02:55:00 +02:00 |
|
László Monda
|
43c07dde21
|
Rename UhkModulePhase_SendKeystatesRequestCommand to UhkModulePhase_RequestKeyStates
|
2017-09-22 02:51:01 +02:00 |
|
László Monda
|
ac138d2da6
|
Rename SlaveCommand_GetKeyStates to SlaveCommand_RequestKeyStates
|
2017-09-22 02:47:05 +02:00 |
|
László Monda
|
2227508130
|
Use __WFI() instead of asm("wfi") for better readability.
|
2017-09-22 02:19:16 +02:00 |
|
László Monda
|
8924c36cb3
|
Implement I2C watchdog for the left half. Disable the watchdog because it causes a hard fault. Don't update the test LED inside of SlaveCommand_SetTestLed due to testing purposes until the watchdog issue gets resolved.
|
2017-09-21 23:40:49 +02:00 |
|
László Monda
|
5c8138f123
|
Be more specific by using IC names instead of generic names like LED driver or touchpad.
|
2017-09-20 13:13:57 +02:00 |
|
László Monda
|
4d5214fdc9
|
Add I2C addresses for add-ons and touchpad modules.
|
2017-09-20 02:21:39 +02:00 |
|
László Monda
|
e3d407e14d
|
Assign the I2C and USB interrupts a lower interrupt priority than the PIT interrupt. This should make the I2C watchdog always recover within the PIT interrupt.
|
2017-09-18 04:05:41 +02:00 |
|
László Monda
|
2f90e40c92
|
Set chip type, so that EmbSys Register View can show the content of MCU-specific registers in debug mode.
|
2017-09-14 10:44:31 +02:00 |
|
László Monda
|
aea07f8605
|
Merge branch 'master' of github.com:UltimateHackingKeyboard/firmware
|
2017-09-14 09:58:36 +02:00 |
|
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 |
|
Erich Styger
|
399847510e
|
added configuration and launch configuration to debug the right half keyboard without the need for the bootloader
|
2017-09-06 16:09:22 +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 |
|