Gecikme süresi hakkında

Başlatan Proteus, 15 Kasım 2014, 12:48:20

Proteus

merhabalar
şöyle bir uygulama yapmak ıstıyorum mıkroC ye yeni başladım

bir buttonum var butonun kontrol ettiği i değerim var. bu değer float tipinde
butona bastıgımda i=i+500; arttırıcak. ve bu i değişkeniyle gecikme sürelerini belirlemek istiyorum (kod fazlalıgından kurtulmak için)
delay_ms(i); böyle yazıyorum ama hata veriyor acaba daha farklı bir sözdizimimi vardır
ve ayrıcı bu i değerini lcd ye yazdırmak istiyorum onun içinde şöyle yapıyorum lcd_out(1, 1, i) bunun sözdizimi nasıldır acaba
   herkese kolay gelsin..

xoom

Yazdığınız kodu code tagları arasında paylaşın ki nerede hata yaptığınızı görelim. İyi çalışmalar.

selimkoc

vdelay_ms(değişken);

kullanabilirsin ancak built_in.h dosyasını include etmelisin.

Proteus

#3
  #define zamanla button (&portd,0,100,1)
  #define led porta.f0
  #define start button (&portd,1,100,1)
  #include built_in.h
  
   
                     // LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

int i=0;


void main(){
  TRISD=255;
  TRISA=0;
  ANSEL  = 0;                        // Configure AN pins as digital I/O
  ANSELH = 0;
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;
  PORTB=0;
  PORTD=0;
  PORTA=0;
   led=0;



  while(1) {
  
  if (start)   {




  if (zamanla) { i=i+500;
             delay_ms(200);
               }
               led=0;
               vdelay_ms(i);
               led=1;
               lcd_init();
               lcd_cmd(_lcd_cursor_off);
               lcd_out(1, 1,"gecıkme suresi="buraya degısken yazmak ıstıyorum);
               
                






              }


  }
}


built_in.h include ettim hata verıyor hocam başlık dosyası değil diyor 6 versiyonunu kullanıyorum.

selimkoc

#include built_in.h

şeklinde değil #include "built_in.h" veya #include <built_in.h> şeklinde olacak

Proteus

peki hocam bu değişkeni nasıl lcd de yazdırıcaz ??

Proteus

hala daha yazdıramadım değeri Lcd_out(1,1,i);  yapıyorum değer int türünde

selimkoc

inttostr(değişken, karakter dizisi);
lcd_out(karakter dizisi);

Bir kitap olmadan zor öğrenirsiniz. bir kitap tedarik edip ondan bakınız.

Proteus

#8
önerebileceğiniz iyi bir kitap varmı ??

şöyle yaptım     inttostr(i); karakterdizisi derken ne demek istediniz pek anlayamadım i yi 1.satır 1.sutuna yazdırmak ıstıyorum lcd de
                     lcd_out(1,1,i);

RaMu

İngilizce ama mikroc nin help kısmı mükemmel,
ben kitap kullanmadığım için tavsiye edemeyecem ama
istersen örnek verebilirim.

unsigned int degisken = 0;
char              karakter_dizisi[4];

şeklinde değişken ve dizi tanımladın,
program içinde ise;
   
    IntToStr(degisken, karakter_dizisi);
    LCD_Out(2,6,karakter_dizisi);

şeklinde değişkenin değerinin karakter karşılığını
lcd de görebilirsin,
bşka yöntemlerde var, bu işini görür,
mikroc helpdede bu şekilde kullanımı var.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html


Proteus

TAMAMDIR  ;) sıkıntıları çözdüm çok sağolun kolay gelsinnn