farukharmanci
Üye
- Katılım
- 10 Şub 2008
- Mesajlar
- 14
- Puanları
- 1
- Yaş
- 40
Merhabalar;
Araç hızını ölçecek programı; timer0 sürekli saysın,içindeki değişkeni her kesmede bir artırsın,
daha sonra tekerdeki mıknatıs sensörün önünden geçince kesme altprograma geçip timer0 daki değişken
değerine gerekli işlemler sonucunda çıkan hız değerini ekrana yazdırsın diye düşündüm. programı CCS C
ile şu şekilde yazdım...
#include <16f877a.h>
#fuses RC,NOWDT,NOPROTECT,NOBROWNOUT,NOPUT
#use delay(clock=4000000)
#include <Lcd.c>
float k=0,k1=0;
int tur_sayisi=0;
// SENSORUN BAGLI OLDUGU KESME (RB0/INT)
#int_ext
void ext_kesmesi()
{
k=135.648/tur_sayisi;
tur_sayisi=0;
printf(lcd_putc,"\fHIZ = %.1f km/h \n",k);
}
// TIMER0 KESMESİ 25ms DE BİR KESME ÜRETİYOR
#int_timer0
void timer0_kesme()
{
set_timer0(159);
tur_sayisi++;
}
void main()
{
set_tris_d(0x00);
lcd_init();
printf(lcd_putc,"\fHIZ = 0.0 km/h \n",);
enable_interrupts(INT_timer0);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(159);
ext_int_edge(L_TO_H);
while(1){}
}
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
buna alternatif çözüm gerekiyor. acaba hız ölçümü için ne gibi önerileriniz olabilir???
_________________________________________________
[size=10pt]
Arkaya mesaj atmak yasaktır.Lütfen yukarıdan düzenle şseçeneğini kullanınız.[/size]
Bu mesaj en son " 22 mart 2008 " tarihinde, saat " 13:30 " arası görkem tarafından değiştirilmiştir.
Araç hızını ölçecek programı; timer0 sürekli saysın,içindeki değişkeni her kesmede bir artırsın,
daha sonra tekerdeki mıknatıs sensörün önünden geçince kesme altprograma geçip timer0 daki değişken
değerine gerekli işlemler sonucunda çıkan hız değerini ekrana yazdırsın diye düşündüm. programı CCS C
ile şu şekilde yazdım...
#include <16f877a.h>
#fuses RC,NOWDT,NOPROTECT,NOBROWNOUT,NOPUT
#use delay(clock=4000000)
#include <Lcd.c>
float k=0,k1=0;
int tur_sayisi=0;
// SENSORUN BAGLI OLDUGU KESME (RB0/INT)
#int_ext
void ext_kesmesi()
{
k=135.648/tur_sayisi;
tur_sayisi=0;
printf(lcd_putc,"\fHIZ = %.1f km/h \n",k);
}
// TIMER0 KESMESİ 25ms DE BİR KESME ÜRETİYOR
#int_timer0
void timer0_kesme()
{
set_timer0(159);
tur_sayisi++;
}
void main()
{
set_tris_d(0x00);
lcd_init();
printf(lcd_putc,"\fHIZ = 0.0 km/h \n",);
enable_interrupts(INT_timer0);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(159);
ext_int_edge(L_TO_H);
while(1){}
}
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
buna alternatif çözüm gerekiyor. acaba hız ölçümü için ne gibi önerileriniz olabilir???
_________________________________________________
[size=10pt]
Arkaya mesaj atmak yasaktır.Lütfen yukarıdan düzenle şseçeneğini kullanınız.[/size]
Bu mesaj en son " 22 mart 2008 " tarihinde, saat " 13:30 " arası görkem tarafından değiştirilmiştir.