August 7th, 2009 The NerdKit seems like a great layout for people who are newbies. You can a project up and running in less than a half hour (assembly and programming), this is great! The kit does not include a firmware loaded/programmer (cannot fully learn about AVR, but good for starting out). You will be limited to source codes and working samples. Do not get me wrong, if you are a hobbyist, the limited www.Nerdkits.com kit will do what it promises.
QUESTIONS ABOUT NERDKIT:
I notice that when programming in C that there are include files, 3 types in fact as you can see below.
include <stdio.h>
include <avr/io.h>
include "../libnerdkits/uart.h"
#1. Can any of these be included in the same directory you build your c file to make?
#2. Are some of these include files on the actual MCU? I do not find any directory called libnerdkits on my PC, but in the WinARV install, I see io.h and similar, do these get included from WinAVR and added to the chip or are these files supposed to be on the chip first?
#3. Can I program with AVR Studio (or use source codes) and get it to work on NerdKit?
ANSWERS to 1 & 2:
<Blu3> #include <abc.h>
<Blu3> the compiler will look for abc.h a) in all of it's predefined include directories, and b) in all -Ix/x/x paths you put on the compile line
<Blu3> #include <abc/def.h> means the same as above, but look in /default/include/paths/plus/abc/ for the file def.h
<Blu3> example:
<Blu3> #include <avr/aaa.h>
<Blu3> gcc-avr is my compiler
<Blu3> let's say my default include path is /usr/include
<Blu3> and i have added -I/usr/local/include in my makefile
<Blu3> so gcc-avr will look for the file aaa.h in /usr/include/avr/ and /usr/local/include/avr
<Blu3> now, #include "abc.h" means look in the current working directory for abc.h
<Blu3> grummund, i'm answering this because it's a question on his webpage
<Blu3> so nerdful, if you are compiling your code in /usr/src/project with no subdirectories, then gcc-avr would look for /usr/src/project/abc.h
<Blu3> #include <x> means to look in defined include paths, and #include "x" means to look based on the current working directory
<Blu3> if you had #include "monkey/abc.h", it would look for /usr/src/project/monkey/abc.h
<Nerdful> so then /usr/src/project/monkey/abc.h would be on my pc to be included?
<Blu3> there are no files on the mcu
<Nerdful> that musta been added when i install winavr
<Blu3> yep
<Blu3> (should have)
<Nerdful> ahhh
<grummund> the <abc.h> files are installed with winavr
<Nerdful> what about #include "../libnerdkits/delay.h"
<Nerdful> i cant find any directory on my pc that matches that
<Blu3> ok, ../ means go up one directory
<grummund> the "abc.h" files you will write with your project
<Blu3> in the above example, it would become /usr/src/libnerdkits/delay.h
<Nerdful> o wait, duh
<Nerdful> i do, its up 1 directory from my source code folder
<Nerdful> now it all makes sense
<Blu3> or, it's +1 level inside the project
<Nerdful> i searched drive c for that directory, but not my other 4 harddrives
<Nerdful> i get it!
<Nerdful> thnx
<Blu3> i.e. /usr/src/project/src/... has a file that has that include line in it, and you'd also have /usr/src/project/libnerdkits/
ANSWER #3: Start with http://www.itee.uq.edu.au/~cse/_atmel/AVR_Studio_Tutorial/ and http://www.ladyada.net/learn/index.html to get a better feel...