60 Commits

Author SHA1 Message Date
Vasily Davydov
26fcad218b log: add logging lib 2023-05-11 17:04:27 +03:00
Vasily Davydov
366010ed02 master: [#9] remove redundant code 2023-05-11 16:45:50 +03:00
Vasily Davydov
7f2945efc9 master: [#9] route setpoint to relay 2023-05-11 16:12:10 +03:00
Vasily Davydov
4853e4993c master: [#9] forward temp event to manager and relay 2023-05-11 16:11:14 +03:00
Vasily Davydov
2240d6ce09 master: [#9] parse event in master to route it fwd 2023-05-11 01:22:05 +03:00
RedHawk
80a89806f7 UI: [#35] Remove redundant fix.
*DigitalIoPin now handles pin muxing properly.
2023-05-10 13:47:06 +03:00
RedHawk
0e64099a56 DigitalIoPin: Added LPC11U68 specific pin functions
*In order for pin to act as IO, it must be configured with
according function. Usually it is IOCON_FUNC0,
but some pins on port 0 are an exception (IOCON_FUNC1).
2023-05-10 13:45:47 +03:00
RedHawk
356b3ebbe9 LiquidCrystal.cpp: [#35] LCD now wraps text. 2023-05-10 13:12:13 +03:00
RedHawk
2b02a786fa Menu & UI: [#25, #35] Fixed UI.
*String in Menu are static. Temperature is limited by -99 and 99 bounds.
*UserInterface cleaned a bit.
2023-05-10 13:11:41 +03:00
RedHawk
ea1139567a UI: [#35] Fixing issues.
*Send UserInterface::InterfaceWithData in the queue instead of Event.
*Remove pointer madness for LCD.
*Timeout for Idle Event from Master thread.
2023-05-09 01:14:47 +03:00
RedHawk
f0bbfb22ab Menu & UI: [#25, #35]Communication between these tasks.
* The code is a mess for now. I'm not sure if there is any reason to
send a whole event to UI, it's better to send InterfaceWithData.
* Sending to queue from Menu isn't great as well.
2023-05-08 16:09:31 +03:00
RedHawk
052d015425 LiquidCrystal: Added destructor. 2023-05-08 15:35:46 +03:00
RedHawk
20fe16b46e UI: [#35] Added UserInterface task. 2023-05-08 15:35:16 +03:00
RedHawk
d3f5cdebbc menu: [#25] Made states. Moved logic to Menu.
*Menu class now is responsible for the whole logic with
temperature and set_point.
*void NotifyAndRefreshUI (const char *str) is a placeholder
for sending a string value on a queue to UI task,
which will handle the lcd screen.
*Added error return value to Manager::parseEvent(Event* e)
2023-05-08 13:08:01 +03:00
Vasily Davydov
fad70c9f37 menu: [#25] rename event to state 2023-05-07 17:45:23 +03:00
Vasily Davydov
bd2f6b32f1 menu: [#25] fix warnings and add assertions 2023-05-07 17:45:23 +03:00
vas-dav
83de15ce5b menu: [#25] handle eventpair with rotary 2023-05-07 17:45:23 +03:00
Vasily Davydov
01855e2f52 manager: [#25] menu class init 2023-05-07 17:45:23 +03:00
Vasily Davydov
df6411c76b manager: [#25] add Counter template for set_point 2023-05-07 17:45:23 +03:00
Vasily Davydov
a2b07be73b manager: [#25] add Event parser 2023-05-07 17:45:23 +03:00
Vasily Davydov
df04fc9107 shoh: rename threads according to thread-name 2023-05-07 17:45:23 +03:00
Vasily Davydov
e003820710 manager: [#25] listen on master 2023-05-07 17:45:23 +03:00
Vasily Davydov
ddc9be976a manager: [#25] init simple task 2023-05-07 17:45:23 +03:00
RedHawk
c421af2f8c main.cpp: [#22] Example LCD code.
*Checked it - works like a charm.
2023-05-07 17:43:20 +03:00
RedHawk
6787f03f0a LiquidCrystal.cpp: [#22] Fixed the interrupt. 2023-05-07 17:42:39 +03:00
RedHawk
4532191da6 LCD:[#22] rewritten delayMicroseconds().
* Now it uses timer peripheral with interrupt.
* It sets interrupt to trigger after certain time and waits for it to clear the "interrupt pending" flag.
2023-05-07 17:42:39 +03:00
RedHawk
01604edcfd LpcUart:[#22] Added USART0 wrapper. (LpcDebugUart)
* Refactored LpcUart for USART0, the handling is a bit different,
so it would have been painful to add that to LpcUart class.
* scanf() still doesn't work, but hey, we have debug prints now!
* Can't believe it actually worked.
2023-05-06 12:37:25 +03:00
RedHawk
13e392f37b LpcUart: [#22] This could have worked.
* It appears that LPC11u68 has ony USART0 redirected to USB as debug UART.
* The code here was written only for USART1-4.
2023-05-05 19:31:30 +03:00
RedHawk
620439fff4 LpcUart: [#22] rewritten wrapper for lpc11u68.
* We have UART1-4 (from UARTN, UART0 handling is different.)
* Added Fmutex
* Removed movable pins.
* Disabled handshakes. (Not sure how to configure those.)
* 1 and 4, as well as 2 and 3 share their interrupts with each other. (Again, not sure how it should work.)
2023-04-28 14:32:25 +03:00
RedHawk
0c04ccf2e0 rotary:[#9] small cleanup. 2023-04-27 02:08:24 +03:00
Vasily Davydov
2ed0653056 rotary:[#9] process interrupts and send to master 2023-04-27 01:44:17 +03:00
Vasily Davydov
da50fa4de1 rotary:[#9] enable interrupts on three pins 2023-04-27 00:47:55 +03:00
Vasily Davydov
a57f814875 digitalio: add interrupt support and append to rotary 2023-04-26 18:19:42 +03:00
Vasily Davydov
809358b341 rotary: init task [#9] 2023-04-26 16:56:15 +03:00
Vasily Davydov
b8935a9bdc eeprom: [#22] remove <map> dependency 2023-04-26 16:14:42 +03:00
Vasily Davydov
1b6cbdb725 eeprom:[#22] fix lib to be compatible for 11u6x 2023-04-26 16:11:18 +03:00
RedHawk
3517f171f3 shoh: Fix project includes
main: Remove unused variable.
2023-04-26 11:36:43 +03:00
Vasily Davydov
daec484c01 event: separate event
Give container-type implementation
2023-04-26 02:53:47 +03:00
Vasily Davydov
ad4a100989 thread-manager: create on heap
Add a simple queue-manager test
2023-04-26 01:03:40 +03:00
Vasily Davydov
4a553e3093 queue-manager: wrap send & receive 2023-04-26 00:56:18 +03:00
RedHawk
34f6b5b694 Master.cpp: Fixing uninitialised memory. 2023-04-26 00:03:13 +03:00
RedHawk
98e9e11355 QueueManager & Master: Base for queues. 2023-04-25 23:57:18 +03:00
Vasily Davydov
927409d2a8 thread-manager: create master task with manager 2023-04-25 22:47:31 +03:00
RedHawk
f85bf8ef8d FreeRTOS: Removed FreeRTOSCPP and fixed build.
*Rewritten Master class to create C-style FreeRTOS task.
2023-04-24 20:49:41 +03:00
RedHawk
c5ad41556d Master.h: Project should be buildable 2023-04-18 15:53:06 +03:00
RedHawk
99677b2bd5
Merge pull request #18 from vas-dav/thread-master
Create Event
2023-04-18 15:51:08 +03:00
RedHawk
48d577f8fb I2C: Fixing pin Muxing. #15 2023-04-18 12:01:12 +03:00
RedHawk
88d68aac56 I2C: Adapted 15xx wrapper to 11u6x. #15
* Refactured class initialisation.
* Refactured I2C::I2CM_XferBlocking() function.
* (!Chip_I2CM_IsMasterPending(pI2C)) -> (Chip_I2CM_StateChanged(pI2C) == 0)
2023-04-16 16:00:35 +03:00
Vasily Davydov
b88a1dd2ee threads: add Event class for master communication #6 2023-04-13 19:20:38 +03:00
RedHawk
8977eeb8f6 DigitalIoPin: Fine 2023-04-06 11:43:42 +03:00