Its a MFC dialog based application. Main dialog is created when the application is created using "New Project" wizard and the child dialog is created by inserting a "Insert Dialog" in resource view and then adding dialog controls to it.
A tooltip should be a top level window to ensure that it is visible. It is only shown when requested by the user and closed when clicking anywhere with the mouse. So it does not interfere with other GUI elements. If you have a working solution I would stay with that.
I really do not know where to post this and I hope I can explain my question , so be gentle.
I am using SAM3x8e hardware timer (TC3) as an interrupt.
The “TC3_Handler” (callback?) global function name is “hardcoded” somewhere and fires as expected at desired intervals.
I do some verification of this by outputting simple message to LCD.
The LCD “class” is declared / instantiated as a global class to the entire application and works amicably.
Simple “lcd.print(“OK”)” is executed just fine in the TC3 handler.
I also do some hardware output – turn on / off LED – just for an additional indication the handler is being executed.
Now I want to execute a method / function of ANOTHER globally defined / instantiated class, again in same TC3 handler.
Adding cpal.Run(); did not compile – undefined “cpal”.
I had to ADD extern CPAL cpal; so it would compile and execute cpal.Run();
My question is
both LCD and CPAL classes are global, the LCD can be used OK, but the CPAL has to have the extern “reference” added into the TC3 handler. Why?
Thanks for reading, appreciate any help.
makes perfect sense.
I am not sure I'll spent time to actually look for such declaration, but I need to learn more about hardware interrupts so maybe I'll run into it sooner or later.
You know, it's one thing to obfuscate, it's another to code in such a style as approaching enemy action. It's hard enough to write clear code. The style of code I posted just seems easy to break and difficult to debug. The debugger is going to treat that like one line of code.
Caveat: I freely admit that I choose to restrict how much code I put on a line. I like using ternary or conditional operator as it can make things much cleaner, as long as you don't get silly with it.
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
This is not too complex, but at the limit where I would consider breaking it up into multiple statements.
That said, if that were a while condition, I might be more inclined to leave it like that, because (a) the increment might be considered part of the loop iteration, and (b) moving part of the condition might require more than one additional line (e. g. once before the start of the loop and once inside).
Apart from that, I am more bothered with the naming
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
Last Visit: 21-Feb-20 9:23 Last Update: 21-Feb-20 9:23