Re: atmega 128 portd problémák
Laurinyecz Zoltán
lauri at mail.globonet.hu
Mon Sep 13 23:17:09 CEST 2004
Szia!
> > Igazad van én nem erre gondoltam. De ezeket a funkciókat össze lehet
kavarni
> > egy sima SEI utasítással? Mert ha nem akkor nem tudom mitol van.
És még
>
> Igen ossze, ha az external interrupt engedelyezve van, de nincs
> kiszolgalo rutinja. ekkor elugrik akarhova aztan csinal amit akar. De
> ezt nem tartom valoszinunek, hogy ez lenne a baj. Kuld el a progit
ami
Pedig igencsak lehet, hogy ez lesz a megfejtés mivel úgy gondolkoztam hogy
ha nincs kiszolgáló rutin a külso megszakításhoz de az nem is következik be
attól még a progi többi részének muködnie kell. Egy köztes tesztet próbáltam
meg lefuttatni, természetesen készül a kiszolgáló rutin is. Íme a progi
.org 0x0000
rjmp init
reti
rjmp INT0
reti
rjmp INT1
reti
rjmp INT2
reti
rjmp INT3
init:
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16
ldi r16, 0xFF ;PORTA
out DDRA, r16 ;kimenet
ldi r16, 0x00 ;POTRD
out DDRD, r16 ;bemenet
sei ;megszakítások engedélyezve
(általános)
ldi r16, 0x0F ;int0-3
out EIMSK, r16 ;engedélyezve
flashing_line:
ldi r16, 0xFF
out PORTA, r16
rcall delay
ldi r16, 0x00
out PORTA, r16
rcall delay
rjmp flashing_line
delay: ;ez itt egy szoftveres
késleltetés akar lenni
ldi r16, 8 ;ha igaz 4 MHz-es órajelnél 0.5
sec
outer_loop: ;forrás: www.avrbeginners.net
ldi r24, low(3037)
ldi r25, high(3037)
delay_loop:
adiw r24, 1
brne delay_loop
dec r16
brne outer_loop
ret
More information about the Elektro
mailing list