UART'dan alınan bilgileri görmek

Başlatan myalvac, 12 Mayıs 2015, 11:57:54

myalvac

Merhabalar. Bir sorum olacaktı. UART haberleşme hattından bilgi okumak istiyorum. (rs485) MAX 485'i pic in girişine taktım ve gelen bilgileri örneğin PORTB'ye yansıt dedim. Bilgiler geliyor ve 8 bit in 8 biti de farklı anlarda farklı bilgileri temsil ediyorlar. (portb ye bağlı tüm led ler değişik kombinasyonlarda yanıp sönüyor..) Ancak ben gelen bilgiyi ekranda görmek istiyorum. (PC veya LCD ekran benzeri)

Bunun için terminal programlarını denedim ancak ordaki baund rate ler standart seçenekler olduğundan istediğim değer yok diye kullanamadım. Elimde iki adet log. analiz. var ve ikisi de hattın baund rate inin 100000 olduğunu söylüyor. Ancak sıkıntı şurda ki ikisi de gelen verileri farklı farklı yorumluyor. Bende en iyisi PIC ne okuyor bu baund rate değerinde onu görüp, ona göre işlem yaptırayım istiyorum.

Acaba 2x16 LCD display bağlasam örneğin gelen ilk beş datayı aralarına birer boşluk bırakarak hex olarak LCD'ye yazdırabilir miyim? Veya önerebileceğiniz farklı bir yol var mı?

Teşekkür ederim..

myalvac

char gelen;

if(UART1_Data_Ready())
{
gelen = UART1_Read();

Lcd_ChrCp(gelen);  //Ekrana gelen verinin ascii karaketer karşılığı çıkmakta. Ancak ben 0xAC, 0x4F.. şeklinde hex karşılığını görmek istiyorum. Mümkün mü acaba?

}

myalvac

Henüz uarttan gelen bilgileri test etme şansım olmadı ama istediğim olayı LCD'ye az önce yazırabildim. Belki ihtiyacı olan çıkar diye paylaşayım:

unsigned char GeldiginiVarsaydigimizVeriDizisi[10] = {0xAC, 0xA9, 0x28, 0x26, 0x23, 0xA7, 0x56, 0xFF, 0xFE, 0x45};
unsigned char deger;
char hex[3];
int i;


void main(){
LCD_Init();

for (i=0; i<11; i++)
{

deger = GeldiginiVarsaydigimizVeriDizisi;

BytetoHex(degeri hex);

Lcd_Out_Cp(hex);
Lcd_Out_Cp("");
}

}

İyi forumlar..

Powered by EzPortal