I'll get back to you on this. Be patience
nice one dude! That's pretty impressive that you're managing to pull it off with next to no programming experience. That just proves my point at the beginning of the thread, anyone with the patience and interest can do this... Well not anyone...:Got it Covered..?:hehehe.
A pic is just another microcontroller made by a company called microchip.
Best time to do it! I'd never have the patience otherwise.
First time I've used a "void" was yesterday.
Void is the return type for the function. It means that the function wont return a value. A Fnc in C can pass a value back to the function it was called from to be used in that function! It's like a tree branch with main as the top level function and the all the others branching from it. If you were to put "int" before the function name then you're saying that that fnc returns an integer and the last line of that function you would put return int;. Then to pass that int back to say main you would have a line in main like variablename=functionname(); to store the int passed by the function in a variable declared in main. Equally in the prototype of the function in main, if you want to pass a variable to the function it goes inside the brackets
I.e. int functionname(int variable1, int variable2.....) would take two integer variables and return an Integer.
Functions in C can only return one value otherwise you have to use pointers which is more tricky to get to work with microcontrollers and hardware at least, can't say for software running on proper CPUs. The variables that you pass to the function are created when the function is called and then destroyed at the end of the function without effecting the variables that were originally passed to the function, (local to the function) this stops having to track the values stored in variables which would get really messy otherwise and completely screw up your program.
The basis of good programming in C, is to split each task up into simple functions and then build them up rather than having it all in main, main is often only a few lines of code. This makes it much easier to write functioning code and if anything goes wrong you can work out where that's happened because you know the lower level building blocks work, so it's most likely to do with the bit of code you've just been writing, unless its to do with the way the hardware you're programming works, and then you have to be a god to figure it out and might as well scrap it and start again! This is one of the ways arduino is great because it already has functions like digital and analogue write, which are a bit of an over simplification, at least in the case of analogue write. Analogue write actually outputs a fixed frequency (carrier wave) train of pulses and uses a timer and a value stored in a particular register that you define when you configure it. The timer value is compared to the number in the special function register say between 0 and 1024 for example and whenever the timer counts upto that number it outputs a pulse and resets the timer, hence allowing you to program the duty cycle(on off time) of the output. By varying the number it counts upto you vary the duty cycle and can create an arbitrary waveform I.e. a sine wave by modulating the carrier train of pulses. When you use the pwm function with the atmel instruction set you can configure it in multiple ways and get much more control.
I can recommend a good book that's basically the bible of C it's called: The C programming language by Brian kernighan and david ritchy i think, anyway they invented C and its really helping me. im still a noob too really just studying it on my course. The books really short and mostly focuses on writing software that would run on some proper crappy oldschool computer but it teaches a lot of stuff in a really compact and intuitive way. Check it out if you're interested. Using C libraries and chip instruction sets is really easy and you end up learning a lot more than just sticking to arduino, lots of digital electronics etc. Sounds like you're up to it and don't need to stick to arduino forever! I find arduino is really helpful for proofing a concept but if you want improved performance you can get more out of "doing it properly"!

A lot of chips have handy extra peripherals too that make life easier or better! Check out the data sheet for the chip you're using too, atmel will have loads of handy application notes on how to do stuff as well.
Peace bro keep me updated I'm really interested and am definitely going to get round to doing this sometime. If you have any questions or problems gimme a shout too, might not be able to help but I'll try!