o1avcioglu
Üye
- Katılım
- 10 Nis 2014
- Mesajlar
- 8
- Puanları
- 1
Merhaba arkadaşlar.
3 adet milisaniye hassasiyetinde ölçüm yapan timer yapmam gerekiyor. tabiki bunun için interrupt kullandım. Ancak start veriyorum program saymaya başlıyor lcd ekrana da yazıyor. Ama butona bastığımda bunun durması gerekiyor bir türlü durduramıyorum.
Programdaki interrupt bloğum şu şekilde:
void interrupt(){
INTCON.GIE =0;
INTCON.INTE =1;
if(RBIF_bit == 1 ) { // Checks for Receive Interrupt Flag bit
RBIF_bit = 0; // Clear Interrupt Flag
if(PORTB.B7 == 1)
{
start=1;
RC5_bit=1;
}
if (RC0_bit == 0 && RC1_bit == 1) //açma testi
{
if (RB4_bit == 0 && flag1 ==1)
{
if (RB4_bit == 1 )
{
flag1=0;
}
}
if (RB5_bit == 0 && flag2 ==1)
{
if (RB5_bit == 1 )
{
flag2=0;
}
}
if (RB6_bit == 0 && flag3 ==1)
{
if (RB6_bit == 1 )
{
flag3=0;
}}}
if (RC0_bit == 1 && RC1_bit == 0) //kapama testi
{
if (RB4_bit == 1 && flag1 ==1)
{
if (RB4_bit == 0 )
{
flag1=0;
}
}
if (RB5_bit == 1 && flag2 ==1)
{
if (RB5_bit == 0 )
{
flag2=0;
}
}
if (RB6_bit == 1 && flag3 ==1)
{
if (RB6_bit == 0 )
{
flag3=0;
}
}
}
nasıl bir düzenleme yapmalıyım ki startla başlattığım timer ı RB4-5-6 ile durdurabileyim. Önerilerini bekliyorum.
3 adet milisaniye hassasiyetinde ölçüm yapan timer yapmam gerekiyor. tabiki bunun için interrupt kullandım. Ancak start veriyorum program saymaya başlıyor lcd ekrana da yazıyor. Ama butona bastığımda bunun durması gerekiyor bir türlü durduramıyorum.
Programdaki interrupt bloğum şu şekilde:
void interrupt(){
INTCON.GIE =0;
INTCON.INTE =1;
if(RBIF_bit == 1 ) { // Checks for Receive Interrupt Flag bit
RBIF_bit = 0; // Clear Interrupt Flag
if(PORTB.B7 == 1)
{
start=1;
RC5_bit=1;
}
if (RC0_bit == 0 && RC1_bit == 1) //açma testi
{
if (RB4_bit == 0 && flag1 ==1)
{
if (RB4_bit == 1 )
{
flag1=0;
}
}
if (RB5_bit == 0 && flag2 ==1)
{
if (RB5_bit == 1 )
{
flag2=0;
}
}
if (RB6_bit == 0 && flag3 ==1)
{
if (RB6_bit == 1 )
{
flag3=0;
}}}
if (RC0_bit == 1 && RC1_bit == 0) //kapama testi
{
if (RB4_bit == 1 && flag1 ==1)
{
if (RB4_bit == 0 )
{
flag1=0;
}
}
if (RB5_bit == 1 && flag2 ==1)
{
if (RB5_bit == 0 )
{
flag2=0;
}
}
if (RB6_bit == 1 && flag3 ==1)
{
if (RB6_bit == 0 )
{
flag3=0;
}
}
}
nasıl bir düzenleme yapmalıyım ki startla başlattığım timer ı RB4-5-6 ile durdurabileyim. Önerilerini bekliyorum.