سلام .یه برنامه واسه اندازه گیری فلو مایع نوشتم.به این صورت که بوسیله فرمانcount مقدار پالس ورودی رو به مدت یک ثانیه شمارش میکنه و در خروجی قرار میده.
منتهی در طول مدتی که میخواد مقادیر رو تو خروجی بزاره حدود 20 میکرو ثانیه (بصورت عملی اندازه گیری شده) تاخیر ایجاد میکنه .حال اگه من یه فرکانس ثابت بهش اعمال کنم تا حدود 20 ثانیه مقدار رو درست نشون میده ولی یه دفعه یک پالس رو جا میندازه که طبیعی هم هست .کسی فکری به ذهنش میرسه؟
16f876a-pic
DEFINE OSC 20
FRQ VAR WORD
TRISB=0
TRISC=0
TRISA=%10001
ADCON1=%110
PORTB=0
PORTC=0
FRQ=0
MAIN:
PORTC.3=0
COUNT PORTA.0,1000,FRQ
PORTB=FRQ.BYTE0:PORTC.7=FRQ.BIT8:PORTC.6=FRQ.BIT9: PORTC.5=FRQ.BIT10
PORTC.3=1
LOOP1:
IF PORTA.4==1 THEN GOTO MAIN
GOTO LOOP1
منتهی در طول مدتی که میخواد مقادیر رو تو خروجی بزاره حدود 20 میکرو ثانیه (بصورت عملی اندازه گیری شده) تاخیر ایجاد میکنه .حال اگه من یه فرکانس ثابت بهش اعمال کنم تا حدود 20 ثانیه مقدار رو درست نشون میده ولی یه دفعه یک پالس رو جا میندازه که طبیعی هم هست .کسی فکری به ذهنش میرسه؟
16f876a-pic
DEFINE OSC 20
FRQ VAR WORD
TRISB=0
TRISC=0
TRISA=%10001
ADCON1=%110
PORTB=0
PORTC=0
FRQ=0
MAIN:
PORTC.3=0
COUNT PORTA.0,1000,FRQ
PORTB=FRQ.BYTE0:PORTC.7=FRQ.BIT8:PORTC.6=FRQ.BIT9: PORTC.5=FRQ.BIT10
PORTC.3=1
LOOP1:
IF PORTA.4==1 THEN GOTO MAIN
GOTO LOOP1
دیدگاه