How could I represent a interrupt (for microcontrollers) in a flowchart?
Solution 1
Typically interrupts communicate with your "main" function (or other interrupts for that matter) through the use of "shared" global variables in C-based embedded systems. I think a sensible way to represent this in a flow chart is to use a dashed line between processing blocks where such "communications" impact program flow.
Solution 2
You would have to have a separate flow chart for the interrupt processing. Flowcharts are meant for showing flow of control, and interrupts, by their very nature, are a break in control flow.
Solution 3
Depending on flowchart structure, it would probably make most sense to have the interrupt originate from a node/box that doesn't derive from another, since, by definition, an interrupt doesn't spring from normal software flow (unless it's a software-triggered interrupt). It might make sense to have it on a separate flow chart, or to show it with the rest of the flowchart depending on whether it might trigger behavior in the main flow of the chart.
Solution 4
I would set up a finite state diagram that represents the normal states of control and the interrupt states; each state would be a block-level element that contained a flowcharty kind of diagram.
Comments
-
Daniel Grillo about 2 years
Does anyone have any visual examples?
-
Daniel Grillo about 14 yearsOk, the interrupt processing is a separated process. But how can I represent it in the main process, for example?
-
JustJeff about 14 yearswell, that's the thing - if the main process is free running, you don't know where it will be when the interrupt occurs. With some embedded real-time applications you sometimes see 'main processing' synchronized to an interrupt, in which case your flowchart might have a 'wait for interrupt' block, but conversely you could argue that in such systems the entire system is just a sophisticated interrupt handler.