Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 3 Antworten
und wurde 982 mal aufgerufen
 Probleme
FRK Offline




Beiträge: 482

05.07.2007 17:38
Einstieg in die Mikrocontrollertechnik Antworten

Hallo erstmal,

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


Fred Offline




Beiträge: 182

05.07.2007 18:32
#2 RE: Einstieg in die Mikrocontrollertechnik Antworten

Hallo Franz,

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


Fred Offline




Beiträge: 182

05.07.2007 19:05
#3 RE: Einstieg in die Mikrocontrollertechnik Antworten
Hallo Franz,

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


Identisch, aber formell etwas "schöner" wäre:


--------------------------
.org 0
rjmp RESET
.org 5
rjmp TO_OVF
.org 7
rjmp ACIaddr
rjmp ADCCaddr
--------------------------

Viel Spaß und Erfolg!

Fred

PS:

ACIaddr z.B. ist in der ATMEL Defintionsdatei angegeben. Wenn Du diese Adresse benutzen willst, müsste es eher heißen:

.org ACIaddr
rjmp ADRESSE_AN_DER_MEINE_ANALOG_KOMPARATOR_ROUTINE_STEHT


irgendwo gefolgt von:


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


FRK Offline




Beiträge: 482

05.07.2007 19:18
#4 RE: Einstieg in die Mikrocontrollertechnik Antworten

Hallo Fred,

danke für deine Hilfe.

Werde mich morgen weiter damit beschäfitgen.

VG
Franz

__________________________________________________
eine lange Reise beginnt mit einem kleinen ersten Schritt....


 Sprung  

disconnected Mikromodell-Chat Mitglieder Online 4
Xobor Xobor Community Software
Datenschutz