www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OSCCAL automatisieren


Autor: peter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe eine inline assembler routine geschrieben um das OSCCAL Byte
während der Programmausführung aus dem Flash in das OSCCAL register zu
schreiben.Nun zu meinem Problem: Wie kann ich testen ob die routine so
funktioniert. Das AVR Studio will irgendeine .s datei um den attiny15
zu simulieren. Jemand ne idee ?
Gruss
peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

welcher C-Compiler unterstützt den den ATTiny15? Der hat ja schließlich
kein SRAM? Und warum mit Inline-ASM? Bietet dein Compiler keine Funktion
zum Lesen aus dem Flash?

Matthias

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi..

Mal von C ganz angesehen, sowas ist doch eigentlich normal. Nur teste
ich noch, ob ein gültiges Calibrationsbyte im Flash liegt, wobei ich
darauf spekuliere, dass $ff als Calibrationsbyte nicht vorkommt.

reset:            ;Initialisierung
 ldi zl,low(1022)  ;Pointer auf
 ldi zh,high(1022)  ;Calibrationsbyte
 lpm      ;nach r0 holen
 ldi zl,255    ;Referenz
 cpse zl,r0    ;Calibrationsbyte gültig (<>$ff)?
 out osccal,r0    ;ja, kalibrieren
 ...                    ;weitere Initialisierungen...

Gilt so für Tiny12 und Tiny15, kostet außer 6 Worten Flash keine
Ressourcen, da zu diesem Zeitpunkt noch kein Register für andere Zwecke
benutzt wird und die Inhalte der hierfür benutzten Register nicht mehr
gebraucht werden...

Übrigens vermisst AVR-Studio (4.08) bei mir keine .s Datei, ich
programmiere aber auch in Assembler.

Testen, ob die Calibration erfolgreich ist, kannst du durch ein
Programm. Aktiviere einen Timer, lass in seiner ISR einen Pin toggeln,
miss dessen Frequenz und errechne anhand der Timereinstellungen die
AVR-Taktfrequenz. Diese sollte der kalibrierten Oscillatorfrequenz
entsprechen (Tiny12: 1,2MHz, Tiny15: 1,6MHz).

Da mein ISP-Programm beim Löschen gleich das Calibrationsbyte ausliest
und ins Flash schreibt, komme ich mit dieser Automatisierung sehr gut
zurecht,zumindest solange ich die AVRs selbst update.

...HanneS...

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups...

Iss ja schlimm, wie die Tab-Formatierung zerrissen wird, werde beim
nächsten mal alles mit Leerzeichen machen...

...HanneS...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.