Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Micro c uart

Başlatan dex25, 11 Aralık 2014, 23:54:26

dex25

merhaba arkadaşlar c# dan gelen string bir ifadeyi micro c (uart)  ile nasıl lcd 'ye uygun hale getirebilirim.ekranda alakasız karakterler çıkıyor .
if(UART1_Data_Ready()){
uart_rd=UART1_Read();
UART1_Write(uart_rd);
Lcd_Chr_Cp(uart_rd);}

r32mp

uart üzerinden gelen veriyi karaktere dönüştürmelisin.

Mc içerisinde "conversions" kütüphanesini ekle.

Örnek:

char gelenveri;
if(UART1_Data_Ready()){
uart_rd=UART1_Read();

ByteToStr(uart_rd ,gelenveri)
Lcd_Out(1,1,gelenveri);

UART1_Write(uart_rd);
}

Biz bizimle bizdeydik, biz bizimle bize geldik, biz bizimle bizdeyken bizi bizden mi sorarlar?

dex25

İsiste sorun yok gerçekte kurdum devreyi isisteki gibi imleç cikiyor.fakat alakasiz karakterler yaziyor .isiste düzgün yaziyor.

Gökhan BEKEN

Arkadaşlar MicroC değil MikroC olacak.
Özel mesaj okumuyorum, lütfen göndermeyin.

r32mp

isis'e fazla takılma. Sen program içerisinde "uart_rd" değişkenini ne olarak tanımladın ?  Wordtostr'yi de dene.
Biz bizimle bizdeydik, biz bizimle bize geldik, biz bizimle bizdeyken bizi bizden mi sorarlar?

dex25

// LCD module connections
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
// End LCD module connections
char uart_rd;
void main() {
UART1_Init(9600);
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
while(1){
if(UART1_Data_Ready()){     // Şayet USART'dan veri geldi ise,
uart_rd=UART1_Read(); // Alınan veriyi oku, uart_rd'ye al,
if(uart_rd=='a'){Lcd_Cmd(_LCD_CLEAR);} // lcd display ekranını sil
else{UART1_Write(uart_rd); // ve USART'a veriyi yaz
Lcd_Chr_Cp(uart_rd);}// Alınan veriyi LCD ekranına gönder
}
}
}

wordtostr mikroc de nasıl kullanılır.

r32mp

C# üzerinde baud ratue'i kontrol edin hız farklılıklarından dolayı yapıyor olabilir. C# yerine Mikro c'nin Usart terminalini kullanarak veri gönderin. 

Biz bizimle bizdeydik, biz bizimle bize geldik, biz bizimle bizdeyken bizi bizden mi sorarlar?

dex25

C# dan 9600 baud ile yollanıyor.c# dan yollamak zorundayım.4 gün kaldı :S

r32mp

Tamam da başka bir terminal üzerinden veri gönderdiğinde işlemci tarafında doğru karakterleri görebiliyormusun ?
Biz bizimle bizdeydik, biz bizimle bize geldik, biz bizimle bizdeyken bizi bizden mi sorarlar?

dex25

#9
usart terminalinden yolladım.aynı şekilde yine alakasız karakterler çıktı.mikro c kodunda sorun var

mesaj birleştirme:: 14 Aralık 2014, 22:56:30

devrede 4MHZ kristal kullandım. 1nF kondansatörleri 22pF'lerin  yerine koyarak denedim. her karakterde kare işareti çıktı.22pF koydugumda Ω ü ∑ vb işaretler çıkıyor.16F877 için 22pF yazıyor datashhette sorun burdan kaynaklı olabilir