Skocz do zawartości

Błąd podczas kompilacj


tpankanin

Pomocna odpowiedź

Witam,

To mój pierwszy post. Próbuję napisać swój pierwszy program polegający na naprzemiennym zgaszaniu i zapalaniu diody. Program jest napisany na 2 pętlach (żeby zapalanie i zgaszanie diody było widoczne dla oczu powinna być jeszcze jedna pętla, ale nie to jest najważniejsze). Podczas kompilacji kodu występują dwa błędy, na temat których nie mam pojęcia co może być przyczyną. Czy ktoś z fachowców, progarmujacych AVRki w ASM mógłby mi pomóc.

Oto kod:

*   Author: AAA
*/ 
.include "2313def.inc"                     ;dołączenie pliku z definicjami rejestrów
.def Licznik1 = R16						; licznik 1 petli
.def Licznik2 = R17						; licznik 2 petli
.def Licznik3 = R18						; licznik 3 petli
.def Wyzerowany = R19						; do porównania z licznikami - zero
 out DDRD, 0xFF							;port D jako wyjście
 out PORTD; 0b11011111						;zapal jedną z diod


.org 0x0000                                ;podanie adresu początku programu - pamięć programu
Petla1: 
ldi Licznik1,0xFF
Odejmij1: 
dec Licznik1;
CPSE Licznik1,Wyzerowany				; porównaj czy licznik zero, jeśli tak przeskocz następny rozkaz
rjmp Odejmij1								; to jest rozkaz, jeżeli licznik1 nie jest zero
Petla2:
ldi Licznik2;0xFF
Odejmij2:  dec Licznik2
CPSE Licznik2,Wyzerowany				; porównaj czy licznik zero, jeśli tak przeskocz następny rozkaz
rjmp Odejmij2							; to jest rozkaz, jeżeli licznik1 nie jest zero

CPSE PORTd; 0b11011111
rjmp zapal								;to robi, gdy dioda zgaszona

Zgas:
out PORTD;0b11111111
rjmp Petla1
Zapal:
out PORTD;0b11011111					;zapal diode
rjmp Petla1

I błędy wyskakujące podczas kompilacji:

Error 1 Overlap in .cseg: addr=0x0 conflicts with 0x0:0x2 C:\Documents and Settings\AAA\Moje dokumenty\AVRStudio\Mig dioda\Mig dioda\Mig dioda.asm 18 0 Mig dioda

Error 2 Overlap in .cseg: addr=0x1 conflicts with 0x0:0x2 C:\Documents and Settings\AAA\Moje dokumenty\AVRStudio\Mig dioda\Mig dioda\Mig dioda.asm 20 0 Mig dioda

PS. Byś może program ma jakieś błędy i nie działa, do tego sobie dojdę, ale co oznaczają powyższe błędy ?

Z góy dziękuję

Link do komentarza
Share on other sites

.org 0x0000 ;podanie adresu początku programu - pamięć programu

powinno być .cseg (zamiast .org) i jest wstawione w złym miejscu ,powinno być na samym początku programu ,przed ustawianiem jakichkolwiek portow ,czy czegokolwiek innego ,zaraz za definicjami nazw rejestrów .Dla jasności:

.include "2313def.inc" ;dołączenie pliku z definicjami rejestrów
.def Licznik1 = R16 ; licznik 1 petli
.def Licznik2 = R17 ; licznik 2 petli
.def Licznik3 = R18 ; licznik 3 petli
.def Wyzerowany = R19 ; do porównania z licznikami - zero
.cseg
out DDRD, 0xFF ;port D jako wyjście
out PORTD; 0b11011111 ;zapal jedną z diod



Petla1:
ldi Licznik1,0xFF
Odejmij1:
dec Licznik1;
CPSE Licznik1,Wyzerowany ; porównaj czy licznik zero, jeśli tak przeskocz następny rozkaz
rjmp Odejmij1 ; to jest rozkaz, jeżeli licznik1 nie jest zero
Petla2:
ldi Licznik2;0xFF
Odejmij2: dec Licznik2
CPSE Licznik2,Wyzerowany ; porównaj czy licznik zero, jeśli tak przeskocz następny rozkaz
rjmp Odejmij2 ; to jest rozkaz, jeżeli licznik1 nie jest zero

CPSE PORTd; 0b11011111
rjmp zapal ;to robi, gdy dioda zgaszona

Zgas:
out PORTD;0b11111111
rjmp Petla1
Zapal:
out PORTD;0b11011111 ;zapal diode
rjmp Petla1

__________

Komentarz dodany przez: Nawyk

Kolego, staraj się proszę używać znaczników [ code] i [ /code]

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.