Witam,
Mam mały problem z programem pod AVR'a. Jestem poczatkojącym użytkownikiem układów AT90.... Napisałem prosty program, który ma zapalać i po pewnym czasie gasić diodę. Niestety program nie działa. Stąd moje pytanie dlaczego nie działa i gdzie popełniłem błąd.Poniżej umieszczam listing programu. Program w linii 14 zapala diodę,następnie w linii 16 przechodzi do procedury opóźnienia (linie 24-34). Z procedury powinien powrócić do linii 18 a rozpoczyna od linii 10. Co tu jest nie tak??? Prosze o pomoc i wskazówki. Używam programu AVR Studio 4.08
1 .include "8515def.inc"
2 .dseg
3 .def tmp_2=R17
4 .def tmp_3=R18
5 .def temp=R19
6 .def ust=R20
7 .cseg
8 .org 0x00
9 start:
10 ldi temp,0xff
11 out DDRC,temp
12 nowy:
13 ldi temp,0x00
14 out PORTC,temp
15
16 rcall led_wait
17
18 ldi temp,0xff
19 out PORTC,temp
20 rjmp nowy
21 bbb:
22 ldi tmp_3,0xff
23 wait:
24 dec tmp_3
25 brne cont
26 dec tmp_2
27 brne wait
28 ret
29 led_wait:
30 ldi tmp_2,0xff
31 rcall wait
32 ldi tmp_2,0xff
33 rcall wait
34 ret
35 .exit
.org 0x100
ZNAKI:
.db 23,45,67,87,56,34
.exit
Przeniesiono z Programowanie Ogólne. - arnoldziq
Mam mały problem z programem pod AVR'a. Jestem poczatkojącym użytkownikiem układów AT90.... Napisałem prosty program, który ma zapalać i po pewnym czasie gasić diodę. Niestety program nie działa. Stąd moje pytanie dlaczego nie działa i gdzie popełniłem błąd.Poniżej umieszczam listing programu. Program w linii 14 zapala diodę,następnie w linii 16 przechodzi do procedury opóźnienia (linie 24-34). Z procedury powinien powrócić do linii 18 a rozpoczyna od linii 10. Co tu jest nie tak??? Prosze o pomoc i wskazówki. Używam programu AVR Studio 4.08
1 .include "8515def.inc"
2 .dseg
3 .def tmp_2=R17
4 .def tmp_3=R18
5 .def temp=R19
6 .def ust=R20
7 .cseg
8 .org 0x00
9 start:
10 ldi temp,0xff
11 out DDRC,temp
12 nowy:
13 ldi temp,0x00
14 out PORTC,temp
15
16 rcall led_wait
17
18 ldi temp,0xff
19 out PORTC,temp
20 rjmp nowy
21 bbb:
22 ldi tmp_3,0xff
23 wait:
24 dec tmp_3
25 brne cont
26 dec tmp_2
27 brne wait
28 ret
29 led_wait:
30 ldi tmp_2,0xff
31 rcall wait
32 ldi tmp_2,0xff
33 rcall wait
34 ret
35 .exit
.org 0x100
ZNAKI:
.db 23,45,67,87,56,34
.exit
Przeniesiono z Programowanie Ogólne. - arnoldziq
