Hallo Klaus...
Welchen "HANNES" meinst du? Hier schreiben etliche unter diesem
Namen, aber jeder etwas anders...
Ich unterschreibe immer so: ...HanneS...
Kannst du als "Warenzeichen" sehen, "nur echt mit Pünktchen und
großem 'S'"...
So richtig gut kenne ich mich aber mit dem Tiny15 und den anderen
AVRs auch nicht aus. Ich betreibe das nur als Hobby und bin da
relativer Anfänger. Allerdings bin ich auch mit kleineren Fortschritten
zufrieden und will nicht alles auf einmal...
Nun zu deiner Frage...
Ich kann dir leider kein Buch empfehlen, das von Volpe ist zu alt und
zu fehlerhaft, es enthält eigentlich nur die Übersetzung der Hilfedatei
einer alten Version von AVR-Studio. Andere Bücher habe ich bisher nicht
aus der Nähe gesehen.
Meine Quellen sind Datenblatt, Instruction-set und einige Appnotes.
Dazu kommt regelmäßiges Lesen der Beiträge hier im Forum.
Unterm Strich ist das Programmieren für den Tiny15 (auch Tiny12)
einfacher als für größere Typen, denn man muss weniger Ressourcen im
Auge behalten. Da es kein RAM gibt, kann man sich damit nicht
verzetteln. Es gibt nunmal nur die 32 Register, einige I/O-Register,
Konstanten im Quelltext und den ASM-Befehlssatz. Eine gute Hilfe ist
AVR-Studio ab 4.08 und dessen Hilfe sowie der Simulator.
Ich gehe immer so vor:
- Zu lösendes Problem grob analysieren und AVR-Typ auswählen
- I/O-Pins verteilen (nicht jeder kann alles)
- Ressourcen (Timer, ADC...) auflisten und deren Einstellungen
aus Datenblatt ermitteln und aufschreiben
- Zu lösendes Problem genauer analysieren und Pseudo-Code zu Papier
bringen (Mischung aus Text, BASIC und Programmablaufplan)
- Dabei die zu bewältigen Aufgaben sinnvoll auf die einzelnen ISR
und das Hauptprogramm aufteilen.
- Bei zyklisch aufgerufenen ISR durch Taktezählen und Rechnen
sicherstellen, dass noch genügend Pause zwischen den Aufrufen
bleibt.
- Das Programm in ASM (AVR-Studio) schreiben und zwischendurch immer
wieder mit F7 assemblieren und den Output (Text) überprüfen um
Flüchtigkeitsfehler zu erkennen und zu korregieren.
- Das Programm im Simulator testen, dabei mit Haltepunkten arbeiten.
- Das Programm per ISP in den AVR brennen und diesen in Echtzeit
testen.
- Zum Debuggen evtl. temporäre Programmteile einbauen, die Werte
ins EEPROM schreiben und dann in Endlosschleife enden.
- Mit ISP-Programm Werte aus EEPROM auslesen und mit den erwarteten
Werten vergleichen.
- Evtl. im Simulator durch Ändern der Werte in Registern und Testen
einzelner Routinen per Einzelschritt Fehlern auf die Spur kommen.
- Programm wechselweise im ACR und Simulator debuggen und
fertigstellen.
Sehr hilfreich ist eine Registerliste auf Papier, in die mit
Bleistift die Aliasnamen und der Verwendungszweck eingetragen
werden.
Viel Erfolg,
Bit- & Bytebruch...
...HanneS...