Problem med assemblerkod

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Problem med assemblerkod

Inlägg av MaggoT »

Hejsan, tänkte jag skulle ta och lära mig lite assembler, har läst lite på avrbeginners.net men exempelkoden jag hittade där verkar inte fungera

Kod: Markera allt

.org 0x0000
rjmp main
 
main:
ldi r16, 0xFF
out DDRB, r16
loop:
sbi PortB, 3
cbi PortB, 3
rjmp loop
Får följande felmeddelande

Kod: Markera allt

Building project...
AVRASM: AVR macro assembler 2.0.28 (build 121 Jan 11 2005 10:28:51)
Copyright (C) 1995-2005 ATMEL Corporation
D:\Avrprojekt-asm\ledblink.asm(6): error: Undefined symbol: DDRB
D:\Avrprojekt-asm\ledblink.asm(8): error: Undefined symbol: PortB
D:\Avrprojekt-asm\ledblink.asm(9): error: Undefined symbol: PortB
Assembly failed, 3 errors, 0 warnings
Hur löser jag detta? Använder AVRStudio.
frejo
Inlägg: 496
Blev medlem: 21 april 2004, 21:43:01
Ort: Linköping

Inlägg av frejo »

DDRB är ju något som ska peka på datariktningsregistret för port B. Det brukar vanligtvis vara deklarerat i en include-fil, så jag misstänker att du saknar include-filen för den typ av AVR du använder.

Det kan också vara så att AVRStudio behöver veta vilken AVR du använder för att känna igen symbolen DDRB

Nu ska du nog inte lita blint på det jag säger då jag bara jobbat i C mot avr:n :oops:
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Okej, det låter rimligt :)
Hittade endast en fil som skulle kunna vara den rätta, kopierade den och försökte inkludera såhär:

Kod: Markera allt

.include "C:\tiny26.xml"
.org 0x0000
rjmp main
 
main:
ldi r16, 0xFF
out DDRA, r16
loop:
sbi PortA, 3
cbi PortA, 3
rjmp loop
Men får:

Kod: Markera allt

Building project...
AVRASM: AVR macro assembler 2.0.28 (build 121 Jan 11 2005 10:28:51)
Copyright (C) 1995-2005 ATMEL Corporation
D:\Avrprojekt-asm\ledblink.asm(1): error: Cannot find include file: C:\tiny26.xml
Assembly failed, 1 errors, 0 warnings
Sökvägen är bombsäkert rätt :) kanske filen måste ligga på något speciellt ställe för att det skall gå att inkludera? (Är det helst rätt fil? Den låg i C:\Program Files\AVR Tools\Partdescriptionfiles\, gick inte att inkludera därifrån heller)
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Prova:
.include "C:\\tiny26.xml"
.include "C:/tiny26.xml"

Sen kommer du inte hinna marka att pinne 4 pa PortA andras savida du inte kopplar pinnen till t ex ett oscilloskop. Men det kanske du ar medveten om.
MaggoT
Inlägg: 113
Blev medlem: 28 juli 2005, 16:48:27
Ort: Finland
Kontakt:

Inlägg av MaggoT »

Jag hittade rätt fil nu,
C:\Program Files\AVR Tools\AvrAssembler2\Appnotes\tn26def.inc
fungerade utmärkt med .include "tn26def.inc" utan sökväg.

cykze> Jo jag vet, jag följer guiden steg-för-steg :) ville inte fortsätta förräns jag fick det steget att fungera så...

Anyway, tack för er hjälp.
Skriv svar