Problem z AVR Studio 4.13 i .hex

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Problem z AVR Studio 4.13 i .hex

Post autor: GrzesiekG » 22 sie 2007, 16:20

Wiatm!
Napisałem taki program:

Kod: Zaznacz cały

;
;*************************************
;**   Stuka programowania ATmega16  **
;**         Pierwszy program        **
;**         made by: Greg G.        **
;*************************************
;

.nolist
.include "m16def.inc"
.list

;-------------------------------------

.def acc = R0
.def acc2 = R1
.def keyport = DDRA
.def keystatus = PORTA
.def keiin = PinA
.def ledport = DDRB
.def ledstatus = PortB

;-------------------------------------

.cseg
.org $000
rjmp Reset
.org $002
reti
.org $004
reti
.org $006
reti
.org $008
reti
.org $00a
reti
.org $00c
reti
.org $00e
reti
.org $010
reti
.org $012
reti
.org $014
reti
.org $016
reti
.org $018
reti
.org $01a
reti
.org $01c
reti
.org $01e
reti
.org $020
reti
.org $022
reti
.org $024
reti
.org $026
reti
.org $028
reti

;-------------------------------------

Reset:

ldi acc,LOW(RAMEND)
out SPL, acc
ldi acc,HIGH(RAMEND)
out SPH, acc

ldi acc, 0xff
out ledport, acc
out ledstatus, acc

ldi acc, 0x00
out keyport, acc
out keystatus, acc
ldi r2, 0x00

;-------------------------------------

main:

in acc, keyin
out ledstatus, acc
rjmp main

;-------------------------------------
.exit
na ATMEGA16 i chciałem go skompilować i przetestować na symulatorze, ale wyskakuje mi takie coś:

FATAL ERROR: Cannot open output file D:\Documents and Settings\U¬ytkownik\Moje dokumenty\projekty_asm\drugi.hex: No such file or directory

wiem co to znaczy, ale co z tym zrobić?
Ustawiłem na AVR Symulator i tyle. ver 4.13
Proszę o pomoc!

Listingi i kody źródłowe programów proszę umieszczać w tagach CODE. Z góry dziękuję.
(tasza)
Ostatnio zmieniony 22 sie 2007, 16:36 przez GrzesiekG, łącznie zmieniany 1 raz.

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 22 sie 2007, 16:54

A czy ten program w ogóle Ci się kompiluje?
U mnie wyskoczyło:
D:\temp\grzesiekg\grzesiekg.asm(18): error: syntax error, unexpected SYMBOL, expecting REGISTER
w linijce

Kod: Zaznacz cały

.def keyport = DDRA
po zamianie na dyrektywy .equ

Kod: Zaznacz cały

.equ keyport = DDRA
.equ keystatus = PORTA
.equ keiin = PinA
.equ ledport = DDRB
.equ ledstatus = PortB
pojawiły się inne błędy, np:
D:\temp\grzesiekg\grzesiekg.asm(73): error: Invalid register
w linijce:

Kod: Zaznacz cały

ldi acc,LOW(RAMEND)
i słusznie - rozkaz LDI operuje na rejestrach 16...31, a "acc" to u Ciebie R0

A wspomniany FATAL ERROR...no cóż - nie ma pliku wynikowego, więc symulator
AVR Studio marudzi.
Chyba musisz jeszcze popracować nad tym programem, szczególnie w kontekście
jakie rozkazy operują na jakich rejestrach....

[ Dodano: 2007-08-22, 18:02 ]
A i jeszcze jedno:

Kod: Zaznacz cały

.equ keiin = PinA
chyba keyin raczej...? Takiego symbolu używasz dalej....

Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Post autor: GrzesiekG » 22 sie 2007, 17:22

naniosłem poprawki i zmieniłem ścieżke dostępu na taką gdzie w adresie nie ma polskich znaków. Działa.
THX

ODPOWIEDZ