Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

sayıcı problemi

Başlatan imuhtar, 04 Nisan 2012, 21:29:07

imuhtar

Arkadaşlar sayım ile ilgili bir problemim var.bir arkadaş bu projeyi karpuz saymak için istedi fakat ben KARPUZ=KARPUZ+1 yazıyorum.lcd de birer birer ilerlemesi lazım ken 2 şer ilerliyor.(bu gidişle arkadaş zarar edecek)
KARPUZ=KARPUZ+10 yazıyorum.lcd de 20 şer ilerliyor
kesme kullanmassam problem yok normal sayım yapıyor.
TRISA=%000000
TRISB=%11000000
TRISC=%00000000
TRISD=%00000000
TRISE=%000
'-----------------------------------------------------------------
Device = 16F877A                              
Xtal 10

@ CONFIG_REQ 
@ __config CP_ALL & CPD_ON & WDT_OFF & HS_OSC & PWRTE_OFF & BODEN_OFF & WRT_1FOURTH & LVP_OFF & DEBUG_OFF 
'-------------------------------------------------------------------

Declare LCD_DTPin PORTD.4
Declare LCD_RSPin PORTC.6
Declare LCD_ENPin PORTC.7
Declare LCD_Interface 4
Declare LCD_Lines 2		                          
CMCON=7        
'OPTION_REG.6=1
OPTION_REG.7=0   
On_Interrupt GoTo KESME 
Dim KARPUZ   As Byte

PORTA=0
'PORTB=O
PORTC=0
PORTD=0
PORTE=0  

''''''''''''''
GoTo   ANA

KESME:                                         
Context Save         
Clear INTCON.0     

If PORTB.7 = 0 Then
If PORTB.6 = 1 Then
 KARPUZ=KARPUZ+1 
EndIf
EndIf

If PORTB.7 = 1 Then
If PORTB.6 = 0 Then
 KARPUZ=KARPUZ-1 
EndIf
EndIf                          
Context Restore 

'''''''''''''''''''''
   ANA:  
Print $fe, 1  
DelayMS 200                 
TRISB=%11000000
SAYI=0  
INTCON=%10001000                    
  
While 1=1         
   Print At 1,1,# KARPUZ,"ADET" 
  Wend 

Maxim

kesmenin içindeki Clear INTCON.0 satırını silin

onun yerine If INTCON.0 = 1 Then koyun

tabi en sonra endif ekleyin

ve

kesme çıkışınada INTCON.0 = 0 satırını ekleyin

Maxim

yani şu


KESME:                                         
Context Save         
If INTCON.0 = 1 Then     

If PORTB.7 = 0 Then
If PORTB.6 = 1 Then
KARPUZ=KARPUZ+1
EndIf
EndIf

If PORTB.7 = 1 Then
If PORTB.6 = 0 Then
KARPUZ=KARPUZ-1
EndIf
EndIf

Endif
INTCON.0 = 0                         
Context Restore


imuhtar

#3
teşekkür ederim sorun çözüldü.