Commit Graph
786 Commits
Author SHA1 Message Date
László Monda ecf1ad2468 Don't use the extern keyword for functions because it's redundant. 2017-09-28 02:37:55 +02:00
László Monda 41c2556386 Use the static keyword wherever it's valid inside of uhk_module_driver.c 2017-09-28 02:26:56 +02:00
László Monda 5473c102ec Add per-module UHK module phases. 2017-09-28 02:24:28 +02:00
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