arkadaşlar protonda yaptığım voltmetre devresinde votaj 14.1 volta geldiğinde bir çıkış 14.4 volta geldiğinde başka bir çıkış vermesini istiyorum bunları sadece if komutları ile gerçekleştirebiliyorum fakat yapmak istediğim tam olarak voltaj istenilen değere geldikten 10 sn sonra çıkış vermek. if komutlarının arasında gecikme koyduğumda ise program o kısma geldiğinde başka hiçbir işlem yapmadan bekliyor yani voltaj değişikliğini göremiyorum. bu işlem için nasıl bir algoritma ya da nasıl bir çözüm bulabiliriz. bir arakdaştan kesme kullan önerisi aldım ama daha önce hiç kullanmadığım için beceremedim zaten programlama bilgim vasat seviyede.
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 31.10.2009 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device 16F876
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.1
Declare LCD_ENPIN PORTB.3
Declare LCD_RWPIN PORTB.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 2
Declare ADIN_RES 10
Declare ADIN_TAD FRC
Declare ADIN_STIME 50
ADCON1=%10001110
TRISA=%00010011
TRISB=0
TRISC=0
Dim VOLT As Word
Dim AMPER As Word
Dim HVD As Word
Dim HAD As Word
Dim HAM As Word
Dim MV As Byte
Dim MA As Byte
Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim d As Byte
Dim WATT As Float
PORTB=0
PORTA=0
VOLT=0
Low PORTC.2
Low PORTC.3
DelayMS 100
Cls
Low PORTC.2
Low PORTC.3
BASLA:
ADIn 0,HAM
If HVD>=141 Then
High PORTC.2
Else
Low PORTC.2
EndIf
If HVD>=144 Then
High PORTC.3
Else
Low PORTC.3
EndIf
BAK:
If ADCON0.2=1 Then BAK
DelayMS 5
GoSub HESAPV
ADIn 1,HAM
DelayMS 5
GoSub HESAPA
GoSub HESAPW
DelayMS 5
GoSub EKRAN
DelayMS 1500
GoTo BASLA
EKRAN:
Print At 1,1,"V=",DEC2 VOLT,".",DEC1 MV
Print At 2,1,"A=",DEC2 AMPER,".",DEC1 MA
Print At 1,9,"W=",#WATT
Return
HESAPV:
HVD=((HAM+1)*/1500)/10
VOLT=HVD/10
MV=(HVD)//10
Return
HESAPA:
HAD=((HAM+1)*/1250)/10
AMPER=HAD/10
MA=(HAD)//10
HESAPW:
WATT=(HVD*HAD)/100
Return
End
eğer volt şundan büyükse ve eşitse
şu işi yap
endif
eğer volt şundan büyükse ve eşitse
şu işi yap
endif
belki fikir olur...