ccs c de adc kontrolü(yardım)

nanit

Üye
Katılım
21 Ocak 2011
Mesajlar
159
Puanları
1
Yaş
33
arkadaşlar bi potansiyometre ile ledleri yakmaya çalışıyorum microdenetleyicimin türü P16F628A nerede hata oldugunu bulursanız sevinirim :D
HTML:
#include <16F628A.h>
#device ADC=8
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000) 
void main(void)
{ 
     int16 adc_value;
     setup_adc(ADC_CLOCK_DIV_2);
     setup_adc_ports(ALL_ANALOG); 
   while(TRUE)   {
     set_adc_channel(AN0);
      delay_us(10);
      adc_value = read_adc(); 
      output_bit(PIN_B0, (adc_value > 0));
      output_bit(PIN_B1, (adc_value > 32));
      output_bit(PIN_B2, (adc_value > 64));
      output_bit(PIN_B3, (adc_value > 96));
      output_bit(PIN_B4, (adc_value > 128));
      output_bit(PIN_B5, (adc_value > 160));
      output_bit(PIN_B6, (adc_value > 192));
      output_bit(PIN_B7, (adc_value > 224)); 
      }
}
 
Arkadaşım yanliş bilmiyormasam set_adc_kanal(0) yazman lazım,yanliş olmuş o. Olmadıysa ;

Ayrıca setup_adc_portsdan sonra ALL analog yapacağına sadece setup_adc_ports(ANO) dene zaten tek port kullanıyorsun hepsini analog nedne yapıyorsun.

Eğer olmazsa öyle ;
Bir kaç öneride bulunayım müsadenle. Trislerde hata olabilir , fonksiyondan önce #use fast_io(A) yaz. Sonra sadece 0. A portunu giris yapan set_tris_A(0X01) komutunu yaz. Nereye dersen , int16 adcnin hemen altına yaz. Sanırım bunlar sorunu çözer.
 
Eski 16F628 lerde ADC yoktu , yenilerde var mı ?
Yoksa comparator vardır , işini görür mü ?

Neyse , aşağıda bir kaç pic için Türkçe pdf var :
 

Ekli dosyalar

  • türkçe pic.rar
    2.7 MB · Görüntüleme: 9
tamam sorun KAZIMUGURunda dedigi gibi yanlış pic seçmişim ben var diye biliyordum herşey için teşekkürler
 

Forum istatistikleri

Konular
128,905
Mesajlar
921,578
Kullanıcılar
451,059
Son üye
landonor
Geri
Üst