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;
}}
#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;
}}