Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

ADC Problemi

Başlatan SmT, 05 Aralık 2015, 01:49:48

SmT

Selam arkadaşlar,
Amacım RF modülünü kullanarak ortamın sıcaklığını ayarlamak istiyorum. Yani daha önceden belirlenen set değerini uzaktan değiştirmek istiyorum. Aynı zamanda ortam sıcaklığını ve set edilen sıcaklığı da LCD ekranına yazdırmak istiyorum. Sıcaklık sensörü olarak lm35 kullandım.  İki gündür alıcının ADC kısmında uğraşıyorum ve sürekli aynı hatayı görüyorum. Proteus da simülasyonu başlattığım an  ""PORTA<0> is not configured as an analog input"" hatası vermektedir. Bu yüzden haberleşme kesmesi çalışmamaktadır. Sebebi nedir acaba ??

#include <16F877A.h>
#device ADC=10

#FUSES NOWDT                 	//No Watch Dog Timer
#FUSES XT                    	//
#FUSES PUT                   	//Power Up Timer
#FUSES NOPROTECT             	//Code not protected from reading
#FUSES NODEBUG               	//No Debug mode for ICD
#FUSES NOBROWNOUT            	//No brownout reset
#FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                 	//No EE protection
#FUSES NOWRT                 	//Program memory not write protected

#use delay(clock=4000000)
#use rs232(baud=1200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1,errors)

#use fast_io(b)
#define use_portb_lcd TRUE
#include <LCD.c>

#define kesme_led PIN_D0

#INT_RDA
int s=25;
//char al;
void  RDA_isr(void) 
{
   disable_interrupts(int_rda);
   if(getch()=='X')
   {
      //al=getch();
      if(getch()=='a')
      {
         s--;
      }
      if(getch()=='s')
      {
         s++;
      }
   printf(lcd_putc,"\nSet Sicakligi %d",s);
   }
   output_toggle(kesme_led);
   clear_interrupt(int_rda);
}
unsigned long int bilgi;
float voltaj,sicaklik;

void main()
{
   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_CLOCK_DIV_8);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   output_b(0x00); 
   output_d(0x00);

   lcd_init();
   set_adc_channel(0);
   delay_us(20);
   enable_interrupts(GLOBAL);
   printf(lcd_putc,"\fSicaklik=");

   while(TRUE)
   {
      enable_interrupts(INT_rda); 
      
      bilgi=read_adc();
      voltaj=(0.0048828125*bilgi)*1000;
      sicaklik=(voltaj/10);
      
      lcd_gotoxy(10,1);
      printf(lcd_putc,"%5.1f C",sicaklik);
      delay_ms(100);  
   }
}


Proteus çizimim

ziyaretci

#use fast_io(a)

Main içerisine:
Set_tris_a(1);

Bir dener misin?

SmT

yok hocam malesef ne simülasyon da ne de devrede hiç bir değişiklik olmadı :/

vitruvius

Proteus ve CCS C dosyalarını bir yere yükleyip link verirseniz bir bakarım.

SmT

Alıntı yapılan: vitruvius - 09 Aralık 2015, 19:34:07
Proteus ve CCS C dosyalarını bir yere yükleyip link verirseniz bir bakarım.

sistemde kayıtlı olan mail adresinize dosyaları gönderdim