kinda OT: latest fun with Arduino, UI with a single knob/button and screen.
levipearson at gmail.com
Sun Feb 3 22:12:27 MST 2013
On Feb 3, 2013, at 8:19 PM, Michael Torrie <torriem at gmail.com> wrote:
> On 02/03/2013 01:51 PM, Levi Pearson wrote:
>> Arduino is awesome to introduce people to embedded programming, but
>> experienced programmers ought to branch out and see what else is available.
> I may look down that road eventually. However, Arduino itself is not
> locked to any particular platform or microprocessor. It's been ported
> to a variety of chips with great success. On Arm, for example, you can
> do ISRs and interrupt masking as you describe. There's nothing inherent
> in Arduino that limits this. You're free to use as much of the
> abstraction framework or as little as you'd like. I for one am not
> interested in the nitty gritty details of setting registers to get a
> read on a signal on a wire.
Well, those details are usually not all that involved. I whipped up a set of macros that make it easy to read and write register fields, and the registers are typically mapped into a regular memory region. If you are not concerned about portability, you can even convince your compiler to map the device registers into a C structure. Many vendor-provided SDKs do just that, though I prefer the portability and explicit nature of the macro approach.
Part of the fun of coding on a microcontroller, at least for me, is to strip away the typical OS abstractions and program the chip to do exactly what I want. It's like a return to the early days of the PC, where there wasn't a massive pile of software between you and the CPU, and to get anything interesting done you had to PEEK and POKE the magic memory-mapped peripheral locations yourself.
More information about the PLUG