Pic programımda yardım

Serdargny

Üye
Katılım
14 Mar 2019
Mesajlar
26
Puanları
1
Yaş
27
Picin adc kanalından okunan değere göre voltaj bilgim 4.5V ve üstünde olduğunda b0 portunu 1, b1 portunu 0 yapacak. Voltaj bilgim 4.5Vun altında olduğunda B0 portum 0, B1 portum 1 olacaktır ve voltaj gerilimimi sürekli takip edecek bir program yazmaya çalıştım ama program daima B1 portunu 1 yapıyor. Hiç değişme olmuyor. Neden bunu yapıyor yardım eder misiniz ?



#include <16F877A.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000

long bilgi;
float voltaj;

void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_CCP1(CCP_OFF); // CCP1 adc(ADC_OFF);birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

set_tris_b(0x00);
output_b(0);

setup_adc_ports(RA0_ANALOG);
setup_adc(adc_clock_internal);
set_adc_channel(0);

while (true)
{
bilgi=read_adc();
voltaj=(0.0048828125*bilgi);
delay_us(100);
oku:
if (voltaj>=4.50)
{
output_high(PIN_B0);
output_low(PIN_B1);
}
else
{
output_low(PIN_B0);
output_high(PIN_B1);
}
goto oku;
}}
 
Çünkü hem while döngüsü yapmışsın hemde goto oku demişsin bu komut ile bilgi=read_adc();
voltaj=(0.0048828125*bilgi);
delay_us(100); komut satırları bir daha çalışmıyor goto kısımlarını kaldır problem çözülür
 
Çünkü hem while döngüsü yapmışsın hemde goto oku demişsin bu komut ile bilgi=read_adc();
voltaj=(0.0048828125*bilgi);
delay_us(100); komut satırları bir daha çalışmıyor goto kısımlarını kaldır problem çözülür
Çok teşekkür ederim.
 

Forum istatistikleri

Konular
129,796
Mesajlar
930,187
Kullanıcılar
452,591
Son üye
Ercan Akkaya

Yeni konular

Çevrimiçi üyeler

Geri
Üst