اطلاعیه

Collapse
No announcement yet.

مشکل میانگین گیری برای ADC

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل میانگین گیری برای ADC

    سلام دوستان
    این برنامه رو نوشتم برای میانگین گیری از ADC ولی درست کار نمیکنه
    من مشکل کار رو نفهمیدم کجاست.ممنون میشم راهنمایی کنید؟
    کد:
    $Regfile = "m8adef.dat"
    $Crystal = 8000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
    
    Config Adc = Single , Prescaler = AUTO
    Start Adc
    
    
    KEY ALIAS K
    ADCC ALIAS P
    
    
    
    
    DIM K AS BYTE
    DIM P AS BYTE
    DIM I AS BYTE
    DIM T AS BYTE
    
    
    DIM O(5) AS WORD
    O = 0
    DIM Q AS WORD
    Q = 0
    DIM W AS WORD
    W = 0
    CLS
    
    
    ADCCC:
    DO
    I = 0
    DO
    INCR I
    O(I) = GETADC(4)
    
    
     IF I = 5 THEN
     EXIT DO
     END IF
    
    
    loop
    
    
    FOR K = 1 TO 5
    Q = Q + O(I)
    NEXT
    W = Q / 5
    
    
    LOCATE 1 , 1 : LCD "A"
    LOCATE 2 , 1 : LCD "O=" ; O ; "   "
    LOCATE 1 , 8 : LCD "Q=" ; Q
    LOCATE 2 , 8 : LCD "W=" ; W ; "   "
    
    
     LOOP
    
    
    
    
    END
    جدیدترین ویرایش توسط a302866a; ۱۹:۳۴ ۱۳۹۶/۰۳/۲۶.
    شاد بودن تنها انتقامی است که انسان میتواند از زندگی بگیرد"چگوارا"

    #2
    پاسخ : مشکل میانگین گیری برای ADC(در برنامه بسکام)

    خیلی ممنون از دوستان که راهنمایی نکردند
    خودم رفتم دنبال عیب کار و درستش کردم
    اینم نتیجه
    کد:
    $Regfile = "m8adef.dat"
    $Crystal = 8000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
    
    Config Adc = Single , Prescaler = AUTO
    Start Adc
    CURSOR OFF
    
    
    
    
    KEY ALIAS K
    ADCC ALIAS P
    
    
    
    
    DIM K AS BYTE
    DIM P AS BYTE
    DIM I AS BYTE
    DIM T AS BYTE
    
    
    DIM O(15) AS WORD
    O = 0
    DIM Q AS WORD
    Q = 0
    DIM W AS WORD
    W = 0
    CLS
    
    
    ADCCC:
    DO
    I = 0
    O = 0
    Q = 0
    W = 0
    
    
    DO
    INCR I
    O(I) = GETADC(4)
    
    
     IF I = 15 THEN
     EXIT DO
     END IF
    
    
    loop
    I = 0
    FOR K = 1 TO 15
    INCR I
    Q = Q + O(I)
    NEXT
    W = Q / 15
    
    
    LOCATE 1 , 1 : LCD "A"
    LOCATE 2 , 1 : LCD "O=" ; O ; "   "
    LOCATE 1 , 8 : LCD "Q=" ; Q
    LOCATE 2 , 8 : LCD "W=" ; W ; "   "
    
    
     LOOP
    
    
    
    
    END
    امیدوارم به دردتون بخور
    شاد بودن تنها انتقامی است که انسان میتواند از زندگی بگیرد"چگوارا"

    دیدگاه

    لطفا صبر کنید...
    X