um einen Einstieg in die Welt der Mikrokontoller..... zu finden habe ich u.a. das "kleine" Programm, das in dem Buch Mikromodelle (Band1) auf den Seiten 49-51 zu finden ist, sorgfälitig abgekupfert und mit der aktuellen Version des AVR-Studio 4.12528 umgewandelt. Trotz großer Sorgfalt beim ERfassen des Programms konnte das AVR-Studio keine hex-File erstellen. Ich bekomme vielmehr immer 4 Fehler angezeigt:
Undefined symbol EXT-Int Undefined symbol PCINTaddr Undefined symbol T1COMPasddr Undefined symbol EERDYaddr
Hat jemand von euch vielleicht die gleiche "Erfahrung" machen müssen und kennt die Fehlerursache oder kann mir da jemand helfen? Leider habe ich die E-Mailadresse des Programmierers (M.Christl) nicht, sonst hätte ich ihn direkt auch diesbezüglich gefragt.
Schicke auch gerne den erfassten Quellcode zu, falls ich das überhaupt darf. Aber ich denke, da das Programm in dem Buch veröffentlich wurde, darf man es auch benutzen.
VG Franz
__________________________________________________ eine lange Reise beginnt mit einem kleinen ersten Schritt....
ohne den Quellcode ist es nicht so einfach, den Fehler einzugrenzen. Ich wage trotzdem mal eine Hypothese: Irgendwo in Deinem Assembler Programm steht ja vermutlich eine Zeile wie
.include "C:\........\AVR Tools\AvrAssembler2\Appnotes\tn2313def.inc" (in diesem Fall also die Definitionsdatei für den Attiny2313).
Jetzt kommt es durchaus vor, dass ATMEL die Namen von Adressen und Konstanten umbenennt, so dass der in Deinem Beispielprogramm benutzte Name einer Konstante nicht identisch ist mit dem Namen in der Definitionsdatei. Du kannst die Definitionsdatei im Assembler-Quelltext über die rechte Maustaste anklicken und öffnen, um das nachzuprüfen. Manchmal habe ich die Namen in der Definitionsdatei geändert; manchmal ändere ich die Konstanten im Quelltext, damit sie den Namen in der neuestes Version der Definitionsdatei entsprechen .... ATMEL achtet da nicht besonders auf Rückwärtskompatibilität.
Vielleicht stimmt ja meine Vermutung - sonst poste einfach mal ein paar Zeilen mit Fehlern (unter Angabe des verwendeten Chips).
Viel Erfolg!
Fred
Time flies like an arrow, fruit flies like a banana. Groucho Marx
danke für Deine PN. Damit andere evtl. auch etwas davon haben, hier als Posting weiter. In Deinen Sprungvektoren steht: -------------------------- .include "tn15def.inc" .cseg .org 0 rjmp RESET rjmp EXT_INT rjmp PCINTaddr rjmp T1COMPaddr rjmp OVF1addr rjmp TO_OVF rjmp EERDYaddr rjmp ACIaddr rjmp ADCCaddr
; hier geht's richtig los: RESET: --------------------------
Allerdings hast Du längst nicht alle dieser Werte definiert! Wenn Du die obigen Zeilen einfach folgendermaßen änderst, müsste der Assembler es formell fressen (d.h. allerdings noch nicht, dass sonst im Programm alles OK ist), da dann keine Konstanten mehr undefiniert sind: -------------------------- .org 0 rjmp RESET nop nop nop nop rjmp TO_OVF nop rjmp ACIaddr rjmp ADCCaddr --------------------------
ADRESSE_AN_DER_MEINE_ANALOG_KOMPARATOR_ROUTINE_STEHT: ; ein bisschen Analog-Komparator-Bearbeitung reti ; wie kehren von einem Interrupt zurück!
Es sieht also sehr danach aus, als ob Du zusätzlich zu den formellen Fehlern noch ein paar logische "Würmer" im Programm hast. Berichte mal, wie Du weiterkommst; ich versuche gerne, Die hier weiterzuhelfen.
Time flies like an arrow, fruit flies like a banana. Groucho Marx