avatar_ewreka

sensördeki sürekli algılama problemi

Başlatan ewreka, 26 Nisan 2016, 02:54:24

ewreka

Merhaba sayın dostlar.

Bu gün yazdığım programı pic'e atıp denedim 'aşağıdaki programı' 30cm yi algılıyor fakat ışık yanıp sönüyor,ben algıladığı sürece yansın istiyorum.

Birde high ve low yaptığım pinin 'portb.0' tam tersini yapınca çalışır gibi oldu program ?  anlamadım doğrusu?

birde son olarak en yukarıya portb=0 yazdığımda program isis de çalışmıyor nedeni nedir acaba? ben main de demiyorum hatta trisb den önce portu temizlemek için yazıyordum  ama ışık hiç yanmıyor o zaman gerçi pic'e atıp denemedim.
işte programım:

@ __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _CP_OFF
DEFINE                  OSC         4
CMCON                   =           7

INPUT PORTA.0
OUTPUT PORTB.0

Trigger                 CON         5                     
Scale                   CON         $200                 
RawToCm                 CON         2257                 
IsHigh                  CON         1                   
IsLow                   CON         0                 
rawDist                 VAR         Word             
cm                      VAR         Word               
SYMBOL PING = PORTA.0
   
MAIN:
DO
    GOsub GET_SONAR
        IF cm < 30   THEn
            low PORTB.0
        ELSE
            HIGH PORTB.0
        ENDIF
    PAUSE 1
LOOP:     
   
GOTO MAIN

Get_Sonar:
    Ping = IsLow                               
    PULSOUT Ping, Trigger                       
    PULSIN  Ping, IsHigh, rawDist               
    rawDist = rawDist */ Scale                   
    rawDist = rawDist / 2                       
    cm = rawDist ** RawToCm                   
    cm = cm */ $00AE                         
    pause 1
RETURN
END


Hürmetler.

Powered by EzPortal