Issue 270: EQ Answers

The answers to the Circuit Cellar 270 Engineering Quotient are now available. The problems and answers are listed below.

Problem 1: Given a microprocessor that has hardware support for just one level of priority for interrupts, is it possible to implement multiple priorities in software? If so, what are the prerequisites that are required?

Answer 1: Yes, given a few basic capabilities, it is possible to implement multiple levels of interrupt priority in software. The basic requirements are that it must be possible to reenable interrupts from within an interrupt service routine (ISR) and that the different interrupt sources can be individually masked.

Question 2: What is the basic scheme for implementing software interrupt priorities?

Answer 2: In normal operation, all the interrupt sources are enabled, along with the processor’s global-interrupt mask.

When an interrupt occurs, the global interrupt mask is disabled and the “master” ISR is entered. This code must (quickly) determine which interrupt occurred, disable that interrupt and all lower-priority interrupts at their sources, then reenable the global-interrupt mask before jumping to the ISR for that interrupt. This can often be facilitated by precomputing a table of interrupt masks for each priority level.

Question 3: What are some of the problems associated with software interrupt priorities?

Answer 3: For one thing, the start-up latency of all the ISRs is increased by the time spent in the “master” ISR. This can be a problem in time-critical systems. This scheme enables interrupts to be nested, so the stack must be large enough to handle the worst-case nesting of ISRs, on top of the worst-case nesting of non-interrupt subroutine calls.

Finally, it is very tricky to do this in anything other than Assembly language. If you want to use a high-level language, you’ll need to be intimately familiar with the language’s run-time library and how it handles interrupts and reentrancy, in general.

Answer 4: Yes, on most such processors, you can execute a subroutine call to a “return from interrupt” instruction while still in the master ISR, which will then return to the master ISR, but with interrupts enabled.

Check to see whether the “return from interrupt” affects any other processor state (e.g., popping a status word from the stack) and prepare the stack accordingly.

Also, beware that another interrupt could occur immediately thereafter, and make sure the master ISR is reentrant beyond that point.


Contributed by David Tweed

Baltimore Hackerspace: Four Years in the “Making”

Baltimore Hackerspace is a non-profit group founded by David Powell, Jason McMahon, Paul King , Miles Pekala, and Chris Cockrum. Though making things since January 2009, Baltimore Hackerspace just recently revamped its logo and name to better reflect the city they call home to their 1250 square feet of space. Currently, Baltimore Hackerspace has more than 20 members who all contribute their share of knowledge, talent, and money to keep the hackerspace open and exciting.

The group participates in several competition each year. These competitions give them a reason to work on projects as a group. The following links showcase some of the group’s projects, as well as some individual projects.

Group Projects

Power Wheels Racing – World Maker Faire

Zen Garden – 2012 RedBull Creation Entry and Chill-a-Piller – 2011 RedBull Creation Competiton

RobotFest – 2012 Robot Head Game



Tron Disc Mod


CNC Mill

Individual Projects





LaserShark – Laser Light Show





LED Fire Flys



Fox News


Book – Hack This: 24 incredible hackerspace projects from the DIY movement

Client Profile: Anaren Inc.

Anaren, Inc.
6635 Kirkville Road
Syracuse, NY 13057

Anaren, Inc.Anaren Integrated Radio (AIR) modules are tiny, surface-mountable, pre-certified transceiver modules based on Texas Instruments’s (TI) low-power RF chips—and they are designed to ease development of wireless functionality for non-RF savvy OEMs. More information is available at

AIR modules reduce time and costs associated with adding wireless capability to a wide range of electronic products, given that they are easy-to-implement (e.g., small format, SMT technology), pre-certified to FCC, IC, or ESTI (saving many certification expenses), and supported by a range of development tools (e.g., the new CC2530 BoosterPack kit for development of ZigBee standard applications using TI’s MSP430 or Stellaris LaunchPad kits).

Anaren, Inc.

Engineer Survey: Skills, Topics, & Preferences

The electrical engineers, academics, and students who read Circuit Cellar hail from a wide range locations across the globe, such as the US, Brazil, India, The Netherlands, Germany, the UK, and Japan. Despite having different languages and cultures, the readers share a common dedication to and passion for electrical engineering.

This is a portion of our survey results. Link to the full set of results below.

In late 2012, we surveyed a random sample of more than 1,000 members of our community on their technical interests and preferences. We asked questions such as the following: How often do you solder? How many milliamps have you felt? Do you know more than three programming languages? Do you use FPGAs? Which companies make the best embedded products? And more!

Check out the results.

Read CC25 for more survey information, as well as interesting essays on the past, present, and future electrical engineering by engineers, business leaders, professors, and students.