Hilfe für das Assemblerprogramm:

Nachdem man Atmel Studio 6 oder 7 gestartet hat, wählt man "vorhandene Datei laden" aus und verweist auf die DLA_mini Assembler Datei.
Jetzt sollte sich das File "DLA-mini.asm" öffnen und der Quellcode sichtbar werden.
Wenn nicht, eventuell mal in dem Fenster "Solution Explorer" auf der rechten Seite die Datei "DLA_mini.asm" anklicken.

Der Quellcode ist auf 32k Byte eingestellt. 
Wo kann ich das Ändern, bzw. was habe ich zu machen wenn ich weniger als 32k als Speichergröße habe?

Sobald die PC Software gestartet wird, fragt diese über die ausgewählte virtuelle COM Schnittstelle nach,
was denn an Hardware da "dran hängt". 
Diese Information bekommt die PC Software von dem Eintrag: 
".equ RAM_SIZE = 0x32"
Wichtig hierzu, der Wert der Größe des Speichers muß immer Hexadezimal angegeben werden!
Für 4k wären das also dann 0x04 für 16k wären das 0x16!
Dieser Wert bzw. Eintrag informiert aber nur die PC Software, um wieviel Speicher es sich handelt.
Den Wert für die wirkliche Verwendung des Speichers wird hier eingetragen:	
"load_p  Y, 32768"
load_p ist ein Macro welches den hier vorgegebenen Wert lädt und in das interne SRAM des ATmega zur späteren Verwendung abspeichert.
Jetzt ist auch die Firmware darüber informiert, wieviel SRAM sie zu bedienen hat, bzw. wieviele Bytes sie z.B. Auslesen muß.
Damit ist es aber noch nicht getan. Denn es müssen auch die Wartezeiten des ATmega16 noch für die entsprechende Speichergröße 
und Samplefrequenzen angepasst werden. Dieses wird ganz am Ende der Datei in der Tabelle "tab_timer_intervall:" gemacht.
Hier findet man jeweils zur Samplefrequenz an zweiter Stelle einen Zahleneintrag.
".dw 648" bedeutet, das der Wert 648 nun für die 80MHz ausgewählt sind.
Wenn ein ";" davor steht, bedeutet das, das dieser Eintrag zur Zeit nicht genutzt wird!
Möchte man die Assembler Software auf kleinere SRAM Werte wie 16k oder 4k ändern, so muß man nur die Semikoleons verändern.
Z.B. für 40 MHZ bei 4k muß ".dw 163" aktiviert und ".dw 1304" deaktiviert werden!
Das Ganze muß dann für alle Samplefrequenzen durchgeführt werden. 
Welcher Wert für welche Größe von SRAM aktiviert werden muß, steht jeweils hinter den Zahlen.

Der Wechsel der Speichergröße ist normalerweise das einzigste was man hier verändern müßte.
Alles andere bleibt im Normalfall wie es ist.

In der Software sind viele Kommentare eingfügt, die das Erkennen der Funktionen der Software leichter Beschreiben sollen.
Auch existieren noch Testprogrammteile die Michael Ulbrich noch drin gelassen hatte, die aber nicht durch die PC Software aufgerufen werden. 
Die man aber bei Bedarf auch aktivieren könnte. Aber das Testprogramm "test_bin_count" wird von der PC Software aufgerufen (unter TEST / Pattern auswählen)
und erzeugt einen 8-Bit Zähler im externen SRAM Speicher und liest diesen dann wieder aus, um die Werte in der PC Software anzuzeigen.
Da der Quellcode nicht allzugroß ist und der ATmega16 gerade einmal zu 6,1% seines Flash ausgelastete ist, ist es auch egal ob diese 
Testprogrammteile noch mit drin sind oder nicht.

Das Speichern bzw. brennen der Software geschieht dann aus Atmel Studio heraus 
bzw. kann ein beliebiges andere Brenntool die erzeugte HEX Datei in den ATmega16 brennen.
Brenner können sein AVR ISP MKII oder Atmel ICE. 
Es gibt aber noch jede Menge andere Programmer wo man sich gerne bei "Mikrocontroller.net" schlau machen kann.