Killerawft schrieb:
> Hi,
>
> Ich habe vor einiger Zeit eine Schaltung im Internet gefunden, in der
> ein ATTiny 15L verbaut ist. Die Schaltung habe ich auf einer Platine
> aufgebaut und angeschlossen. Bei der Schaltung war auch die Software in
> Assembler dabei, die auf den µC kommt. Ich konnte die auch übertragen,
> jedoch muss man den internen Takt auf 1,6 Mhz einstellen und da fängt
> mein Problem an.
>
> Ich weiss, dass ich das Taktbyte auslesen muss und in das erste und
> letzte Register des Programmes schreiben muss, was ich auch getan habe.
Falsch, in der ersten Speicherzelle steht der Reset-Vektor, der darf
nicht verändert werden. Ich gehe mal davon aus, dass das L-Byte und
H-Byte der letzten Flash-Adresse gemeint ist, denn da steht das
"Taktkorrekturbyte" auch bei einem neuen Tiny15 drin.
> Des weiteren muss ich das Taktbyte ebenfalls in dem Programm an eine
> bestimmte stelle schreiben, die ich auch gefunden habe.
Auch falsch, der von Dir auskommentierte Teil des Programms liest ja das
L-Byte der letzten Flash-Zelle aus, prüft es auf Plausiblität (ein
"leeres" Byte hätte den Wert FFh) und schreibt es, falls nicht FFh, in
das OSCCAL-Register.
Aber: Mit der von Dir gemachten Änderung müsste es auch gehen, ist zwar
nicht so elegant wie das Original und lässt sich auch nicht
automatisieren, erfüllt aber (mit beträchtlichem Mehraufwand beim
Flashen) auch seinen Zweck.
> Jedoch
> funktioniert das nicht. Ich habe das auch schon mit einem zweiten µC
> versucht und beide auch noch nicht gelöscht, jedoch ändert sich am Takt
> rein garnichts.
Woran erkennst Du, dass sich am Takt nichts ändert?
> Ich verstehe NICHTS von Assembler und bin gerade erst dabei mich mit µC
> und Bascom auseinander zu setzten.
Das hat eigentlich nichts mit Assembler zu tun, sondern lediglich mit
dem gewöhnungsbedürftigen Umgang mit einem (inzwischen veralteten)
Mikrocontroller, dessen interner Taktgeber noch per Hand korrigiert
werden muss, um die Fertigungstoleranzen zu kompensieren.
> Ich habe schon seit fast zwei Wochen im internet gesucht, das Datenblatt
> durchgelesen und auch schon den Programmierer der Software gefragt (Der
> mir nicht viel helfen konnte, da er nicht PonyProg benutzt). Jedoch ohne
> Ergebniss. Ich hoffe ihr könnt mir da weiter helfen.
Also Deine Programmänderung erfüllt denselben Zweck wie das Original.
Damit müsste der Taktgeber korrekt laufen. Wenn das nicht der Fall ist,
dann bedienst Du Ponyprog oder AVR-Studio falsch. Da auch ich kein
Ponyprog benutze, kann ich Dir auch nicht sagen, was Du falsch machst.
Im Prinzip musst Du das exemplarabhängige "Calibrationsbyte" (nicht das
Fusebyte, auch nicht eines der Signature-Bytes und auch nicht den
aktuellen Wasserstand an der Loreley) auslesen. Dies muss dann in den
Programmcode übernommen werden. Bei Deiner Variante muss das Programm
danach auch noch (mit AVR-Studio4) neu übersetzt (assembliert) werden,
ehe es in den Controller übertragen werden kann.
>
> PS: Ich Flashe den µC mit PonyProg unter Windows XP mit dem Pollin
> Evaluations-Board.
Ich hoffe, es findet sich jemand, der sich mit Ponyprog auskennt und Dir
erklären kann, welche Mausklicks nötig sind, um Dein Problem zu lösen.
MfG