timer1 ve lcd

fethican

Üye
Katılım
11 Ocak 2009
Mesajlar
13
Puanları
1
Merhaba arkadaşlar;
Ben motorun hızını manyetik sensör aracılığıyla ölçmek ve bunu lcd ye yazmak istiyorum.Bunun için aşağıdaki bi program yazdım.Burda b motorun birim zamanda dönmesini veriyor.az de manyetik sensörü ifade ediyor.c de zamanla artıyor.Ve birim zamanda sıfırlanıyor.Çeşitli değişiklikler yaparak denedim ama Lcd de görüntü alamıyorum hiç bir şekilde.Sanırım sorun lcd ile timer1 i doğru senkronize edememiş olmam.
Düzeltme yaparak sorunu cevaplayabilir misiniz?

teşekkürler!!!


#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use fast_io(a) //Port yönlendirme komutları A portu için geçerli
#use fast_io(b) //Port yönlendirme komutları B portu için geçerli
#use fast_io(c) //Port yönlendirme komutları C portu için geçerli
#use fast_io(d) //Port yönlendirme komutları D portu için geçerli
#define az pin_a0
#define use_portb_ TRUE // LCD B portuna bağlı
#include <lcd.c> // lcd.c dosyası tanıtılıyor
int i; //sıcaklık kontrolü için değişken atanıyor
int b;
int c;
#int_timer1
void timer1_kesme()
{

set_timer1(63016);
c++;

if(c==3000)
lcd_gotoxy(1,1);
printf(lcd_putc,"\%0.2d",b);
b=0;
c=0;
}
void main()
{

setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_a(0x01);
output_b(0x00);
lcd_init();
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
set_timer1(63036);
enable_interrupts(int_timer1);
Enable_interrupts(GLOBAL);

while(1)

{i=0;
b=60*i;
if(az==1)
{goto atla;}
i++;
atla:
delay_ms(50);
}

}
 

Forum istatistikleri

Konular
128,818
Mesajlar
920,736
Kullanıcılar
450,908
Son üye
mert095

Yeni konular

Geri
Üst