hosiminh
Üye
- Katılım
- 16 Ara 2009
- Mesajlar
- 18
- Puanları
- 1
- Yaş
- 39
KODU:
PROTEUS DESING:
yukardaki ccs c ile kodunu ve altta proteus çizimini verdiğim devrede voltaj değeri düştükçe b0 ucundaki LED imin hızlanarak blink yapmasını analog girişi sıfır gördüğünde ise yanık kalmasını istiyorum. Yazdığım c kodum kusursuz bir şekilde derleniyor fakat ne proteus da ne de gerçek hayatta yapmak istediğim işe devrem tepki bile vermiyor. Ve proteus da şöyle bir uyarı veya hata notu diyelim karşıma geliyor
HATA: [PIC16 ADC ] PC=0x0158. ADC conversion clock period [5e-7] is less than min TAd=1.6us and is possibily invalid for device clock frequency
bu hata kodunun neden geldiği ile ilgili bulabildiğim bir fransız sitesinden olayın bir frekans uyumsuzluğundan kaynaklandığı internal clock kullanıldığında geçtiğini falan yazmışlar yarım yamalak fransızcamla anladığım kadarıyla fakat işin kötü tarafı ben zaten hep pic lerde internal clock kullanıyorum.
Kodlarımda mı bir hata var bu uygulamayı neden gerçekleştiremiyorum. Yardımlarınıza ihtiyacım var bana bir fikir verebilirseniz veya devreyi çalıştırmayı başarabilirseniz paylaşmanızı rica ediyorum dünyada da demek ki bu tip sorunlarda sıkışan arkadaşlar mevcut en azından bu konuda sıkıntı çekmiş arkadaşlar da sıkıntıları paylaşırlarsa bir fikir alışverişi olabilir hepinize sonsuz saygılar
iyi çalışmalar...
Kod:
#include <16f819.h>
#device ADC=8
#fuses INTRC_IO,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
unsigned long int bilgi;
float adc_value;
void main ()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(ccp_off);
set_tris_b(0x00);
set_tris_a(0x0F);
output_b(0x00);
setup_adc_ports(AN0);
setup_adc_ports(ADC_CLOCK_INTERNAL);
while(TRUE)
{
set_adc_channel(0);
delay_us(20);
bilgi=read_adc();
adc_value=0.01953125*bilgi;
if((adc_value>=156))
{
output_bit(pin_b0,0);
}
if((adc_value<5)&&(adc_value>=3))
{
output_bit(pin_b0,1);
delay_ms(500);
output_bit(pin_b0,0);
delay_ms(500);
}
if((adc_value<3)&&(adc_value>=2.5))
{
output_bit(pin_b0,1);
delay_ms(250);
output_bit(pin_b0,0);
delay_ms(250);
}
if((adc_value<2.5))
{
output_bit(pin_b0,1);
}
}
}
PROTEUS DESING:
yukardaki ccs c ile kodunu ve altta proteus çizimini verdiğim devrede voltaj değeri düştükçe b0 ucundaki LED imin hızlanarak blink yapmasını analog girişi sıfır gördüğünde ise yanık kalmasını istiyorum. Yazdığım c kodum kusursuz bir şekilde derleniyor fakat ne proteus da ne de gerçek hayatta yapmak istediğim işe devrem tepki bile vermiyor. Ve proteus da şöyle bir uyarı veya hata notu diyelim karşıma geliyor
HATA: [PIC16 ADC ] PC=0x0158. ADC conversion clock period [5e-7] is less than min TAd=1.6us and is possibily invalid for device clock frequency
bu hata kodunun neden geldiği ile ilgili bulabildiğim bir fransız sitesinden olayın bir frekans uyumsuzluğundan kaynaklandığı internal clock kullanıldığında geçtiğini falan yazmışlar yarım yamalak fransızcamla anladığım kadarıyla fakat işin kötü tarafı ben zaten hep pic lerde internal clock kullanıyorum.
Kodlarımda mı bir hata var bu uygulamayı neden gerçekleştiremiyorum. Yardımlarınıza ihtiyacım var bana bir fikir verebilirseniz veya devreyi çalıştırmayı başarabilirseniz paylaşmanızı rica ediyorum dünyada da demek ki bu tip sorunlarda sıkışan arkadaşlar mevcut en azından bu konuda sıkıntı çekmiş arkadaşlar da sıkıntıları paylaşırlarsa bir fikir alışverişi olabilir hepinize sonsuz saygılar
iyi çalışmalar...