Pic programımda yardım

Serdargny

Üye
Katılım
14 Mar 2019
Mesajlar
25
Puanları
3
Yaş
22
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;
}}
 
Katılım
18 Nis 2014
Mesajlar
1,034
Puanları
33
Çü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
 
Konu Sah
S

Serdargny

Üye
Katılım
14 Mar 2019
Mesajlar
25
Puanları
3
Yaş
22
Çü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.
 

Sponsor Bağlantı

Forum istatistikleri

Konular
106,061
Mesajlar
747,250
Kullanıcılar
394,208
Son üye
yeliz ürgün

Yeni konular

Üst