Kesme ve lcd kullanım sorunu

Başlatan ylmz, 11 Mart 2013, 15:33:45

ylmz

Arkadaşlar merhaba
Programda lcd ye komut gönderdıgım zaman kesme kayıyor sapıtıyor daha doğrusu bu neden olur ?

TRISB=%00000001   'PortB.0 giriş diğerleri çıkış yapıldı.
TRISC=%00000000   'A portu tamamı çıkış yapıldı.
TRISD=%00000000
'-----------------------------------------------------------------
portb.0 = 1
portc.4 = 0


DEFINE LCD_DREG		PORTD	'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT		4		'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG		PORTD	'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT		3		'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG	PORTD	'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT	2		'LCD RS bacağı Hangi Bite bağlı  ?
DEFINE LCD_BITS		4		'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES	2		'LCD Kaç sıra yazabiliyor
DEFINE	ADC_CLOCK	3

'-----------------------------------------------------------------
ON INTERRUPT GoTo KESME   'kesme oluşursa KESME adlı etikete git.
OPTION_REG=%00000101   'dahili Pull up dirençleri aktif edildi ayrıca pullup direncine gerek yok.
INTCON=%10010000  'Kesmeler aktif ve RB0/INT kesmesi aktif
ADCON1=%10000010 '7. bit 1 yapıldı 10 bit sonuç almak için.
OPTION_REG.6=1  'portB deki dahili PULL-UP lar iptal edildi.
'-----------------------------------------------------------------

'----------------------A---------------------------------------------

BASLA: 'Ana program bölümünde program bir şey yapmayacak
   
 LCDOUT $FE,2,   " DENEMEE"
 PAUSEUS 200



   goto basla
   
     
      
   
DISABLE  'yeniden kesme oluşması önleniyor  

KESME: 'program buraya geldiğinde kesme oluşmuş demektir.


if intcon.1 = 1 then goto kesme_frekans
if intcon.2 = 1 then goto kesmezaman
     
 
    
    
    
kesmezaman 

    intcon.2 = 0  
    intcon.5 = 0 
    portc.4  = 1
  
    resume 
       
    
kesme_frekans ; 
     
       
       if option_reg.6 = 0 then 
       option_reg.6 = 1
       else
       option_reg.6 = 0
       endif
       portc.4 = 0
       
      

       
     tmr0 = 150 ; 105 idi
       intcon.5 = 1 
       intcon.2 = 0
       intcon.7 = 1
       INTCON.1=0  'RB0/INT Bayrağı (flag) silindi.
       Resume      'geldiğin yere dön.
	   Enable      'kesmeler yeniden aktif.
End		
	                
   
Regülatör Dns Trafo | Regülatör | Redresör | Ups