12f675 ile tustakimini kullanabilirmiyim

Başlatan toprak, 19 Mayıs 2011, 20:44:44

toprak

@   device  pic12F675, xt_osc, wdt_off, pwrt_on, mclr_off, protect_off   

DEFINE ADC_BITS 10       ' ADC 10 bit kullanýlacak
DEFINE ADC_CLOCK 3      ' ANSEL.4  ANSEL.5  ANSEL.6 yý ayarlar
DEFINE ADC_SAMPLEUS 50  ' örnekleme


TRISIO = %00000111      ' giriþ çýkýþ atamasý

CMCON = %00000111       ' Giriþlerdeki Comparatorlar kapalý
ANSEL=0
ANSEL.0=%1          ' GPIO.1, GPIO.0 ,GPIO.2 Analog secildi, diðerleri digital
ANSEL.1=%1       
ANSEL.2=%1
ANSEL.3=%0

INTCON=%10000000
ON INTERRUPT GOTO KESME

TUS VAR WORD
DAK VAR BYTE
ZAMAN VAR BYTE
STUN1 VAR WORD
STUN2 VAR WORD
STUN3 VAR WORD
SAYAC VAR BYTE
SURE VAR BYTE
SN VAR BYTE
I VAR BYTE     
clear
PAUSE 100

BASLA:
IF SURE<>0 AND DAK=SURE THEN
GPIO.5=1:PAUSE 200:GPIO.5=0
ENDIF
  adcin 0,STUN1 
    if STUN1>=199 AND STUN1<397 THEN TUS=1:GPIO.4=1:PAUSE 100:GPIO.4=0 'goto DONGU
    if STUN1>=397 and STUN1<600 then TUS=4:goto DONGU
    if STUN1>=600 and STUN1<802 then TUS=7:goto DONGU

    if STUN1>=802 and STUN1<1000 then
    tus=0:dak=0:zaman=0:sayac=0:sure=0:sn=0:i=0
     endif
   
  adcin 1,STUN2 
    if STUN2>=199  and STUN2<397 THEN TUS=2:goto DONGU
    if STUN2>=397  and STUN2<600 THEN TUS=5:goto DONGU
    if STUN2>=600  and STUN2<802 THEN TUS=8:goto DONGU
    if STUN2>=802  and STUN2<1000 then TUS=10:goto DONGU

  adcin 2,STUN3
    if STUN3>=199 AND STUN3<397 THEN TUS=3:goto DONGU
    if STUN3>=397 and STUN3<600 THEN TUS=6:goto DONGU
    if STUN3>=600 and STUN3<802 then TUS=9:goto DONGU
    if STUN3>=802 and STUN3<1000 then TUS=12:goto DONGU '#
 
   
DONGU:
FOR I=0 TO 6
GPIO.4=1:PAUSE 100:GPIO.4=0:PAUSE 100
NEXT I
SURE=TUS 
INTCON.5=1:dak=0:zaman=0:sayac=0:sure=0:sn=0:i=0   
  GOTO BASLA 
'********************************************************************************   
       DISABLE
KESME:
    INTCON.7=0 'tüm interruptlar? kapat yani INTCON.7=0
      SAYAC=SAYAC+1         'kesme sayac?  1 sn= 61(sayac) x 256 (Tmr0) x 64 (bölme)
      IF SAYAC=61 then         '61 adet kesme olunca 1 sn. süre geçiyor.(999424 us)
         SAYAC=0               'sayaç s?f?rlan?yor
         SN=SN+1              'saniye de?eri bir art?r?l?yor
            IF SN=60 THEN        'saniye 60 olmu? ise 1 dakika süre geçti o halde
               SN=0              ' saniye s?f?rlan?yor
               DAK=DAK+1         ' dakika de?eri bir art?r?l?yor
            ENDIF
       ENDIF
       IF  DAK=SURE THEN  INTCON.5=0                       
    INTCON.2=0 'kesme bayragi sifirlanacak                             
    INTCON.7=1 'Yani INTCON.7=1 kesmeleri açt?k.
    RESUME
    ENABLE 
    END
12f675 ile tustakimini kullandim tustakimin da okunan degerlere gore adc de okutup yukaridaki kodlari yazdim fakat calismadi hata nerdedir ben bulamadim acaba neden olabilir.