Achtung! Atmega16 und Atmega168 sind unterschiedliche µC - 40 polig
gegen 28 polig.
Man kann im AVR Studio in Assembler Programme für den Atmega168
erstellen und kann die auch in einen Atmega168 auf einem Arduinoboard
schaffen. Steht auch so in der Arduino FAQ
(http://arduino.cc/en/Main/FAQ)
Man kann dafür die Ardiuno Software anpassen so dass ein anderer Build
Prozess benutzt wird, aber die Übertragung mit der Arduino Software
erfolgt (http://code.google.com/p/arduino/wiki/BuildProcess).
Oder man verzichtet komplett auf die Arduino Software und arbeitet nur
mit anderen Tools. Stichwort ist dabei die Übertragung der erzeugten
HEX-Datei z.B. mit Avrdude zum Arduino-Bootloader im Atmega168 des
Arduino-Boards. Wie das genau geht, müsste im Netz zu finden sein.
Grundsätzlich unmöglich ist es nicht.
Voraussetzung: Im Atmega168 des Arduino-Boards befindet sich bereits der
Bootloader. Das ist bei fertig gekauften Boards i.d.R. so. Beim
Selbstbau oder Austausch des Atmega168 hat man das Henne-Ei-Problem. Wie
kann man den Bootloader in einen fabrikneuen Atmega168 schaffen - man
braucht mind. einmal einen ISP-Programmieradapter.