On Sun, Mar 29, 2015 at 3:46 AM, Jesse Lackey w= rote: > Hi Josh, the extern is a declaration, telling the compiler that the > variable will be defined somewhere else in the project. The point being > that you can then use it in your code in that .c file or in numerous .c > files. > > But, you have to define it somewhere, and only once: > volatile uint32_t millicnt; > > so that millicnt actually exists. Typically you'd do this in whatever > .c file has your main(). > > > > The linker is complaining that you haven't defined it. > > In other news, I found another XC8 compiler bug today! Ah...that makes more sense. I looked at some examples of how to use extern, but most didn't show the definition and declaration as separate, and I'd guess that's where my coding was different. I will say that that the most challenging thing so far about switching from assemby to C has been variable management both internal to files and across multiple files. Yikes. Currently downloading the latest non-beta MPLABX and XC8 by the way. Josh --=20 A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. -Douglas Adams --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .