ccs c de kesme?

ilker

Üye
Katılım
26 Eyl 2006
Mesajlar
73
Puanları
1
Yaş
40
Merhabağlar...

Hocalarım ben ccs c de bir proğram yazdım.bu programa bir kesme eklemek istiyorum.Devremde karşılaştırma modülü kullandım,mesala ra3 e bir voltaj verdim atıyorum 5,5V. ra1 e de değişken bir voltajım geliyor.Eğer, dedim ra1 ra3 den büyük ise 1. led i yak yok eğer ra1 ra3 den küçükse 2. ledi yak buraya kadar tamam. Şimdi demek istiyorumki eğer voltaj(gelen değişken voltajım) 4V. dan aşşağı düşer ve 7V dan yukarı çıkarsa programı çalıştırma. Voltajım tekrar 4v ila 7v arasına gelince programı tekrar çalıştırmaya başla demek istiyorum.Kitaplara baktım ama net birşey anlayamadım. Yardımcı olursanız sevinirim.
TEŞEKKÜRLER.
 
pic in analog kanalları 0-5 v arası çalışır bildigim kadarıyla, karşılaştırma için bi op-amp devresi kurmanı tavsiye ederim...
 
Merhabağlar...
Ben ccs c de bir program yazmaya çalışıyorum. Programımı yazdım çalışıyor fakat programa birde, voltajları atıyorum 4v. ile 4,5v. arasında çalış bunun dışında bir voltaj gelirse(koyduğum sınırların dışında) voltaj normale dönene kadar çalışma bekle demek istiyorum.Programda karşılaştırma modülünü başka bir amaç için kullandım o yüzden kullanamıyorum.
Evet bunu bu program yazdığımm pic de yapabilirmiyim.
Yardımcı olursanız sevinirim.
TEŞEKKÜRLER
 
analog girişler ile gerilimi ölçüp, çalışacak ve bekleyecek zamanları o gerilim değerini kontrol ettirerek ( if ile ) yapabilirsiniz.
tabi kullandığınız PIC'de analog giriş mevcut ise. hangi PIC'i kullanıyorsunuz ?
 
Sayın arkadasım 16f877A kullanıyorum ve çok fazla bilmiyorum pic leri, if den kastın nedir mesala,ama kullandığım pic de girişleri analog seçebileceğimi biliyorum.daha çok yardımcı olursan daha çok sevinirim.
İlgilendiğin için saol
 
eğer c ya da basic ile yazıyorsanız if koşulu ile o aralıkta çalıştırırsınız demek istedim. A portunu analog giriş olarak ayarlayıp o gerilim değerini bu girişten alıp kullanabilirsiniz.
 
Karşılaştırıcı kombinasyonu olarak hangisini seçtin?

İki giriş ve büyük küçük durumuna göre dahili flag set eden modu seçersen o flagi yazılımla kontrol edip, bu duruma göre ister led yakar programı çalıştırmaya devam edersin ister başka bir bacaktan led yaktırırsın veya istediğin başka ne varsa onları ekleyebilirsin.
 
Aynı konu 2 defa açıldığı için konu, bu mesajda birleştirilmiştir.
 
1. Yöntem Opampla halledebilirsin zaten 16f877 gerilim karşılaştırıcı modül var bilgi içinCCs C ile pic programlama yazar: Serdar ÇİÇEK(Ccs için mükemmel tavsiye ederim)

2.Yöntem pic'in adc modülüyle ama önce analoga gelebilecek max. gerilimi pot. ile 5V a düşür RA3 bacağına gireceğin ref. gerilimide aynı yöntemle ayarlayabilirsin aşağıda sana CCS kodlarını veriyorum kendine göre İf döngülerini ayarla ben bu programı kendim için yazdığım farklı bi devreden alıyorum kendine uyarla


#include <16f877.h>
#device ADC=10
#fuses xt,nowdt,noprotect,nobrownout,nolvp,noput,nowrt,nodebug,nocpd
#use delay(clock=12000000)

#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
const int digit[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};


int32 bilgi=0,
#int_ad
void adc_kesme ()
{


if(bilgi>"değerin")
{


}




if(bilgi<"değerin")
{


void main()
{


setup_psp(psp_disabled);
setup_spi(spi_ss_disabled);
setup_timer_1(t1_disabled);
setup_timer_2(t2_disabled,0,1);
setup_CCP1(CcP_OFF);
setup_ccp2(ccp_off);



set_tris_a(0x03);
set_tris_b(0x00);
set_tris_c(0x00);
set_tris_d(0x00);
set_tris_e(0x00);
output_a(0x00);
output_b(0x00);
output_c(0x00);
output_d(0x00);
output_e(0x00);
setup_adc(adc_clock_div_2);
setup_adc_ports(an0_an1_vss_vref);
enable_interrupts(int_ad);
enable_interrupts(global);

output_high(pin_d0);


while(1)
{

set_adc_channel(0);
delay_us(20);
bilgi=read_adc();


}
}
 

Forum istatistikleri

Konular
129,740
Mesajlar
929,463
Kullanıcılar
452,467
Son üye
smtozn97

Yeni konular

Geri
Üst