CCS C RS232 hakkında acil yardım

eemoznulut

Üye
Katılım
2 Ağu 2009
Mesajlar
9
Puanları
1
Yaş
34
arkadaşlar kaç gündür uğraşıyorum ama bi türlü çözemedim şu seri porttan bilgi gönderme işini. en son video buldum; arkadaş programı nasıl yazdığını ve uygulamasını birebir anlatıyor. ama ben uygulamaya çalıştığım da ise çalışmıyor. lcd de yazması gereken herşey yazıyor ama c0 portunu aktif hale getirmek için 8 tuşuna bastığımda hiç birşey olmuyor ki herhnagi bir tuşa bastığımda da devrenin tepkisi sıfır... acil yardıma ihtiayacım var Lütfen yardımcı olun ...video linki aşağıda..

 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Devren nasıl bilmiyorum görmediğim için.
Kodunu da görmediğim için hatanın nerede olacağını bilemiyorum...
 
Konu Sah

eemoznulut

Üye
Katılım
2 Ağu 2009
Mesajlar
9
Puanları
1
Yaş
34
Kod:
#include <16f877a.h>
#use delay (clock = 4M)
#include <LCD.c>
#include <stdlib.h>
#use RS232 (baud = 9200, bits = 8, parity = N, xmit = pin_B0, rcv = pin_B2)


void main(){


char numara [1];
signed long X;

printf("Calismak Ister misin? \r");
lcd_init ();
printf(lcd_putc,"Hadi Calisalim..");
delay_ms (1000);
calisma:
lcd_init ();
printf("Ee hadi basla artik \r");
printf(lcd_putc," Calismasi icin 8 e bas");
gets (numara);
X = atol (numara);

if ( X == 8 ) {
  lcd_init ();
  printf ( lcd_putc,"Sonunda calisiyorum");
  printf ( "Sonunda calisiyorum \r");
  output_high (pin_C0);
  delay_ms(8000);
  output_low (pin_C0);
  delay_ms (1000);

}
  else goto calisma;


}

bu sekılde bı kod yazıldı. kı vıdeo ya baktıysan eger oradakı programın aynısı sadece program ıcerısındekı prıntf yazıları farklı. proteus devresı ıse bırebır aynı
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Tamam, ilgileneceğim kodunla.
Ancak kodun çok düzensiz.
Sanırım bu işe yeni başladın?
 
Konu Sah

eemoznulut

Üye
Katılım
2 Ağu 2009
Mesajlar
9
Puanları
1
Yaş
34
aynen ole ıse yenı basladım... ayrıca kodlar benım degıl dedıgım gıbı vıdeodan aldım. cunku yaklasık 3 gundur rs232 ile seri iletişim yapmaya çalışıyorum ama bi türlü beceremedim.
misal if(X==8 ) şartını hiç sağlatamıyorum ...== yazdığımda hiç görmüyor o kodları if içerisinde = kullandığımda ise saçmalıyor. sebebini bi türlü çözemedim.
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Kodu yazan arkadaş, artık İspanyalı mıdır yoksa Latin Amerikalı mıdır bilemem.
Ancak çok karmaşık yazmış. :)
Daha düzenli bir halini göndereceğim sana.
Biraz beklemen lazım... :eek:
 
Konu Sah

eemoznulut

Üye
Katılım
2 Ağu 2009
Mesajlar
9
Puanları
1
Yaş
34
tamam merakla bekliyorum=) ve müsait olursan kodu yazdıktan sonra aklıma takılan bir kaç soru vardı onları sormak istiyorum.
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
tamam merakla bekliyorum=) ve müsait olursan kodu yazdıktan sonra aklıma takılan bir kaç soru vardı onları sormak istiyorum.

Elbette, bilgi kudretimin yettiği yere kadar yardımcı olurum. :eek:
 
Konu Sah

eemoznulut

Üye
Katılım
2 Ağu 2009
Mesajlar
9
Puanları
1
Yaş
34
bu konu hakkında ilk önce kbhit() fonksiyonu var bu fonksiyonu nasıl ve ne şekilde kullanabileceğimi bilmiyorum gerçekten.
ikinci olarak videodan aldığım atol() fonksiyonu ne amaçla kullanılıyor...
3. olarak da int x; x=getch() şeklinde yazdığımda klavyeden girmiş olduğum bilgi x değişkenine hangi türde kaydediliyor. yani hex mi decimal vs... sanırsam ilk soru için baya şey sordum=)
 

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
En aşağıda ise kod ve devrenin resmi bulunmaktadır.

circuitl.jpg


Kod:
#include <16f877a.h>
#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=4000000)
#use RS232 (baud=9600, bits=8, parity=N, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(a)
#use fast_io(b)
#define use_portb_lcd TRUE

#include <LCD.c>
#include <stdlib.h>

void main()
{
    char letter;
  
    lcd_init ();
  
    while(1)
    {
        printf("Type 'r' to run.\r");
        lcd_putc("\f");
        lcd_gotoxy(1,1);
        printf(lcd_putc,"Type 'r' to run.");
        delay_ms(100);
        letter = getc();
        putc(letter);
        printf(lcd_putc,"\%02d", letter);
  
        if (letter == 'r')
        {
            lcd_putc("\f");
            lcd_gotoxy(1,1);
            printf(lcd_putc,"Running...");
            while(1);
        }
    }
}
 

Yeni mesajlar

Forum istatistikleri

Konular
122,209
Mesajlar
861,990
Kullanıcılar
438,712
Son üye
GürhanK.

Yeni konular

Üst