Pic programımda yardım

Serdargny

Üye
Katılım
14 Mar 2019
Mesajlar
26
Puanları
1
Yaş
26
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
 
Çok teşekkür ederim.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…