Elektronik ve Teknoloji Merkezi Elektrotekno.com
Elektronik ve Teknoloji Merkezi



Click here to go to the original topic

Elektrotekno.com Ana Sayfa Microchip Pic Serisi
Yazar Mesaj
fredy2005
Tarih: 19.09.2008, 13:08 Mesaj konusu: 16f628A - stack overflow executing call instruction - acil y

arkadaşlar kitabın birinde assembly komutlarda bir proje buldum işime yarayacak bir proje ama onu geliştirip biraz değiştirmem gerekiyor böyle olduğu için programın aynısını biraz daha iyi bildiğim proton dilinde yazmaya çalıştım ama proteusta karşıma ard arda "stack overflow executing call instruction" şeklinde msj çıkıyor ve program kesmeye gitmiyor.
bu arada proje ccp ve timer1 kullanarak belirli frekans aralıklarını ledlerde gösteren bir program ama protonda yazınca sürekli bu hatayı veriyor her iki dilde de yazdığım program komutlarını gönderiyorum acaba nerde hata olduğunu söyleyebilir misiniz?

**********assembly kodlar*****************

lıst p=16f628a
ınclude "p16f628a.ınc"

ledler equ h'20'
org h'0000'
goto basla
org h'0004'
goto kesme

basla

clrf portb
banksel trısb
movlw b'00001000'
movwf trısb
bsf pıe1,2
banksel portb

movlw b'00000101'
movwf ccp1con

movlw b'00000001'
movwf t1con

movlw h'c0'
movwf ıntcon
clrf ledler

dongu

goto dongu



kesme

clrf tmr1l
clrf tmr1h
bcf ıntcon,gıe

movlw b'00000000'
movwf ledler
movlw d'100'
subwf ccpr1h,w
btfsc status,c
goto anaprog

movlw b'00010000'
movwf ledler
movlw d'80'
subwf ccpr1h,w
btfsc status,c
goto anaprog



movlw b'00110000'
movwf ledler
movlw d'60'
subwf ccpr1h,w
btfsc status,c
goto anaprog


movlw b'01110000'
movwf ledler
movlw d'40'
subwf ccpr1h,w
btfsc status,c
goto anaprog



movlw b'11110000'
movwf ledler


anaprog

movf ledler,w
movwf portb
bcf pır1,2

bsf ıntcon,gıe

retfıe

end





********proton***************
device=16f628a
trısb=%00001000
portb=0
cmcon=7

on ınterrupt goto int

pıe1.2=1 'ccp1 capture modu devrede
ccp1con=%00000101 'her yükselen kenarda yakalama
t1con=%00000001 'timer1 aktif
ıntcon=$00000011 'kesmeler aktif


dongu:
goto dongu

int:

tmr1l=0
tmr1h=0

ıntcon.7=0 'yeni kesmeleri engelle

portb=%00000000

ıf ccpr1h<100 then portb=%00010000
ıf ccpr1h<80 then portb=%00110000
ıf ccpr1h<60 then portb=%01110000
ıf ccpr1h<40 then portb=%11110000

pır1.2=0 'bayrağı sıfırla
ıntcon.7=1 'kesmeler yeniden aktif

resume

end


şimdiden teşekkürler
-----------------------------------------------------

the_dalga
Tarih: 11.11.2008, 02:06 Mesaj konusu:

aynı sorunu ben su yüzden yasıyordum
Program bittikten sonra gecikme kısmına girince (girmemesi gerek call la falan cagirmiyorum
normal işleyişte giriyor) return komutu ile karşılıyordu.E döneceği bir yer yok,dolayısıyla stack sorunu cıkıyordu.

BELKİ isine yarar dedim kolay gelsn.
-------program
gecikme (dikkat etmediğim için program bitiminde giriyor)
movlw h'00'
return (döneceği yer yok )
Elektrotekno.com Ana Sayfa Microchip Pic Serisi
1. sayfa (Toplam 1 sayfa)

16f628A - stack overflow executing call instruction - acil yardım

Gizlilik Politikası

PLC programming