CCS C RS232 hakkında acil yardım

eemoznulut

Üye
Katılım
2 Ağu 2009
Mesajlar
9
Puanları
1
Yaş
35
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..

 
Devren nasıl bilmiyorum görmediğim için.
Kodunu da görmediğim için hatanın nerede olacağını bilemiyorum...
 
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ı
 
Tamam, ilgileneceğim kodunla.
Ancak kodun çok düzensiz.
Sanırım bu işe yeni başladın?
 
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.
 
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:
 
tamam merakla bekliyorum=) ve müsait olursan kodu yazdıktan sonra aklıma takılan bir kaç soru vardı onları sormak istiyorum.
 
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:
 
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=)
 
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);
        }
    }
}
 

Forum istatistikleri

Konular
128,158
Mesajlar
915,532
Kullanıcılar
449,909
Son üye
T_K

Yeni konular

Geri
Üst