maxirossh
Üye
- Katılım
- 8 Ağu 2011
- Mesajlar
- 3
- Puanları
- 1
#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
// Giriş ve çıkış pinlerine isim atanıyor
#define buton_ileri pin_a0
#define buton_geri pin_a1
int i=0,hiz=10;
const int yarim_adim[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09}; // Step motor yarım adım dönüş adımları
/********* ANA PROGRAM FONKSİYONU********/
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_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
output_b(0x00);
while(1) // Sonsuz döngü
{
if (input(buton_ileri)) // İLERİ Butonuna basıldı ise
{
output_b(yarim_adim); // Step motor 1 adım ileri
while(input(buton_ileri));// Basılan tuş bırakılana kadar bekle
delay_ms(hiz); // Adımlar arası bekleme süresi
if (i==7) // i değişkeni 7 olunca i değeri -1 olsun
i=-1;
i++; // i değişkenini 1 arttır
}
}
}
normalde 2 butonlu idi tek yaptım yalnız benım istediğim butona basıldığında mesela 3 saniye kendi dönmesini istiyorum ama bu programda ne kadar basılır ise o kadar dönüyor yardımcı olurmusunuz ?
// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
// Giriş ve çıkış pinlerine isim atanıyor
#define buton_ileri pin_a0
#define buton_geri pin_a1
int i=0,hiz=10;
const int yarim_adim[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09}; // Step motor yarım adım dönüş adımları
/********* ANA PROGRAM FONKSİYONU********/
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_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
output_b(0x00);
while(1) // Sonsuz döngü
{
if (input(buton_ileri)) // İLERİ Butonuna basıldı ise
{
output_b(yarim_adim); // Step motor 1 adım ileri
while(input(buton_ileri));// Basılan tuş bırakılana kadar bekle
delay_ms(hiz); // Adımlar arası bekleme süresi
if (i==7) // i değişkeni 7 olunca i değeri -1 olsun
i=-1;
i++; // i değişkenini 1 arttır
}
}
}
normalde 2 butonlu idi tek yaptım yalnız benım istediğim butona basıldığında mesela 3 saniye kendi dönmesini istiyorum ama bu programda ne kadar basılır ise o kadar dönüyor yardımcı olurmusunuz ?