What resources are there for learning intermediate embedded programming concepts?
I have a project I have invested a significant amount of time in and have come to a hard stop in progress when it comes time to tie everything together. I realize that I likely missing some concepts, but no longer have any idea where to go to for assistance or education.
In particular, I have written a control system in what I believe is an object oriented manner. It works reasonably well, but now I want to interface it with an LCD menu using an encoder to change parameters of the system.
I have no idea how to tie this together, and I have spent months researching this. Delegators, interfaces, linked lists, design patterns and so forth.
I can get the doubly linked list to work fine, I can scroll through a single level menu, but cannot figure out how to make it modular enough to interact with more than one object, and then modifying the variables becomes an issue.
So I am completely stuck with no idea how to proceed, and this thing has been sitting on my desk for months.
I have looked into TcMenu, different callback menu libraries, I have posted on the various sites StackExchange, Reddit, and so forth but minimal/no response so I am either misunderstanding something, missing a fundamental concept, or googling the wrong thing. Any recommendations?
High level overview of my architecture
Hardware Driver Class -> Software Subclass -> DAQ (Opens multiple instances of hardware for multi-channels) -> Main.cpp
Instance of controlSystem, passed &DAQ to access low level hardware components. There will be three different classes of controlSystem depending on what mode it is in as they are completely different logic.
Then we have main.cpp -> Menu/Display. I need to have the menu talk to DAQ, and controlSystem to adjust parameters. DAQ might be changing units, or hardware tasks, control system would be setpoints/limits/etc.
Any help greatly appreciated. I'm at my wits end!