Forum: Offtopic AN HANNES


von Klaus (Gast)


Lesenswert?

Sehe das du sehr viel im forum bist und du dich sehr gut mit attiny15
und weiter auskennst! möchte dich deshalb um unterlagen also gute links
oder um einen buchtipp bitten!
will den 15er oder 13er nämlich in asembler programmieren.
mfg klaus

von thilo (Gast)


Lesenswert?

hallo..weiss zwar nicht ob hannes sich gemeldet hat,
aber eigentlich ist es bei microcontrollern ein einheitsbrei. zumindest
wenn sie aus der selben famile stammen.
wer zB nen mega8 programmieren kann wird sicher auch keine probleme
beim tiny haben. man muss sich halt immer vor augen führen das im µC
eigentlich immer irgendwelche register mit logischen werten beschrieben
werden die die funktionalität ändern. wenn man das beherzt und nach und
nach ein paar programme durchgeht...diese evtl erweitert findet man
dort schnell rein.
vor knapp 4 monaten war ich genau vor dem gleichen problem...habe es
mir aber verkniffen ein buch zu kaufen...und bereue es absolut nicht.
das geld kann man sich finde ich wirklich sparen :)
auch wenn man anfangs nicht gleich jedes problem in den datenblättern
versteht, immer an die register denken die nur durch werte beschrieben
werden, das hat mir sehr geholfen.
so long

von anfänger (Gast)


Lesenswert?

ich kenn foren, da würde so ein post ne verwarnung vom moderator
geben...aber jeder macht mal fehler ;-)

hast du dir schonmal das tutorial hier auf der seite angeguckt? das
lässt sich auf fast alle controller aus der avr-reihe anwenden. an
deiner stelle würde ich direkt mit was größerem anfangen (atmega16 zum
beispiel). dann hast du direkt alle features zur verfügung und kannst
alles ausprobieren und so.

achja: datenblätter gibts auf der herstellerseite (www.atmel.com)

von ...HanneS... (Gast)


Lesenswert?

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...

von ...HanneS... (Gast)


Lesenswert?

Hi Anfänger,

Sorry, erst jetzt sah ich deine Emfehlung zu "was größerem" wie dem
Mega16...

Warum eigentlich??
Damit man nach WINDOWS-Manier mit einem saumäßig strukturiertem
(BASCOM-) Programm alle Ressourcen sinlos verschwendet?

Es ist doch gerade der Reiz, den Controller zu benutzen, der seiner
Aufgabe gerade so gerecht wird, was I/Os und andere Features betrifft.


Zum Beispiel wurde ein Modellbau-Fahrtregler für H-Brücke mit
Bremslicht und Rückfahrlicht, sowie Programmiertaste mit Prog-LED zum
Speichern von Neutralpunkt, Vollgas und Fahrtrichtung mit einem Tiny15
realisiert, wobei die Auflösung der Kanalimpulsmessung 10µs beträgt.
Warum soll man dafür einen Mega16 nehmen??? Verstehe ich nicht...

Oder ein Soundgenerator (8-Bit-PCM) für ein fahrstromabhängiges
Dieselgeräusch (ohne Anlasser) und eine Hupe (gleichzeitig, digital
gemischt) mit einem 2313? Warum dafür einen Mega16 verschwenden???

Denn irgendwie ist es doch wie beim PC: Überdimensionierte Rechner
begünstigen schlampige, ressourcenverschwendende Programmierung.

Gruß...
Bit- & Bytebruch...
...HanneS...

(Sorry, wenn ich nicht gleich antworte, bin paar Tage nicht da...)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.