CCS C RS232 hakkında acil yardım

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=)

Soruların çok değil de ancak şuan elimde bir proje var.
Ondaki bir sıkıntıyı çözmeye çalışıyorum.
Sağolsun, MAIN_LOOP da bana yardımcı oluyor.
Şu sıkıntıyı çözeyim, sorularına da cevap vereceğim... :eek:
 
çok teşekkür ederim devre çok güzel çalışıyor =) merakla bekliyorum cevaplarını.... öncelikle kolay gelsin =)
 
bu konu hakkında ilk önce kbhit() fonksiyonu var bu fonksiyonu nasıl ve ne şekilde kullanabileceğimi bilmiyorum gerçekten.

Eğer UART iletişimini yazılımsal olarak kullanıyorsan, bu fonksiyon;
RS232 alıcı ucuna gönderilen karakterin başlangıç (start) biti geldiğinde geriye TRUE dönderir.
Eğer UART iletişimini donanımsal olarak kullanıyorsan, bu fonksiyon;
Karakter alınmış ve donanım tamponunda (buffer) getc() ile okunmayı bekliyorsa, geriye TRUE dönderir.
Bu fonksiyonu; gelen veriyi bekletmeden ve durdurmadan sorgulamak için kullanabilirsin.
Not olarak; bu fonksiyon yazılımsal RS232 durumunda, gelen veririnin kaybolmamasını garantilemek için en az 10 kez bit oranını çağırmaktadır.

NOT: Yukarıdaki yazdıklarım, CCS'nin kendi Help menüsünden çevirdiğimdir.


ikinci olarak videodan aldığım atol() fonksiyonu ne amaçla kullanılıyor...

atol() fonksiyonu, string olarak aldığı bir sayıyı, integer (tamsayı) türüne çevirir.

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=)

char türünde kaydediyor.
0-255 arası bir değer.
Mesela RS232'den 'r' harfi basıldı.
Bu char değişkenin içi;
Hexadecimal: 0x72
Decimal: 114 olur...

Cevaplarını biraz geç vermek zorunda kaldım, işlerimden dolayı.
İyi geceler, kolay gelsin...
 
Umarım başarırsın
 
Merhaba
Bende rs232 ile picten gelen bilgiye göre gsm modem üzerinden mesaj atmak istiyorum fakat önce picle gsm modemi haberleştirmem gerekiyor.Fakat bu işte yeniyim nasıl yapacağımı bir türlü anlayamadım.Yardımcı olabilirseniz çok mutlu olurum.
 
Teşekkürler ULAGA yeni arkadaşlara çok faydalı olacak.
 
En aşağıda ise kod ve devrenin resmi bulunmaktadır.

Ekli dosyayı görüntüle 24047

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);
        }
    }
}

hocam verdiğin kodları aynen yapıstırdım ama olmadı. denemediğim şey kalmadı

#use RS232 (baud=9600, bits=8, parity=N, xmit=PIN_C6, rcv=PIN_C7)
bu kodaki sıralamayı değiştirdiğimizde terminalde farklı karakter oluşuyor örneğin (baud=9600,, xmit=PIN_C6, rcv=PIN_C7,bits=8, parity=N) bu şekilde parametleri farklı sıralamayla yazarsak başka karakter çıkıyor umarım anlatabilmişimdir ne yaptıysam çalıştıramadım
 
if(X==8) kullanmak yerine; bu komuttan önce bir değişken tanımla örneğin;
a=8;
ve ardından
if(x==a)
komutunu kullanarak dene.ı8
 
ilk picteki adc yi ikinci pice yollayıp lcd den okuyabiliyorum karakter yada stringde gönderip görebiliyorum ama terminalde saçma sapan karakterler çıkıyor proteus versiyonunu yükselttim yine fayda etmedi çözümü bilen varsa fikir/yardımlarınızı bekliyorum
 
Mutlaka değiştirdiğin bir yer vardır.
Benim oluşturduğum projeyi indirip, çalıştırdığında olumlu sonuç aldın, değil mi?
 

Forum istatistikleri

Konular
128,282
Mesajlar
916,418
Kullanıcılar
450,113
Son üye
GULHAN00

Yeni konular

Geri
Üst