UART haberleşmede bir sıkıntı

Başlatan musti463, 17 Ağustos 2014, 17:07:48

musti463

Merhaba, aşağıdaki kodlarla masterdaki 83 bilgisini slave'e bağlı lcd de göstermek istiyorum fakat ekranda sadece 8 bilgisi görünüyor. Nasıl bir değişiklik yapmam gerekli kodlarda?

MASTER

#INCLUDE <18F4685.H>
#USE DELAY (CLOCK=4000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,stop=1,parity=n)
#include <input.c> 
#use fast_io (b)
#use fast_io (d)
#define use_portb_lcd true
#INCLUDE <LCD420.c>
#define re pin_d0
#define de pin_d1
int8 i=83;
//
void main()
{
set_tris_b(0x00);
output_b(0x00);
set_tris_d(0x00);
output_d(0x00);
output_high(re);
output_high(de);
delay_ms(50);
//
while (1)
{

printf("%u",i);
delay_ms(1000);

//for(i=0;i<6;i++)
//{
//putc(data[i]);
//delay_ms(3000);
//}
}
}



SLAVE

#INCLUDE <18F4685.H>
#USE DELAY (CLOCK=4000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,stop=1,parity=n)
#include <input.c> 
#use fast_io (d)
#define use_portb_lcd true
#INCLUDE <LCD420.c>
#INCLUDE <stdlib.h>
#define re pin_d0
#define de pin_d1
byte i=0;
int string[10];
//
void main()
{
set_tris_d(0x00);
output_d(0x00);
lcd_init();
output_low(re);
output_low(de);
//
while (1)
{

printf(lcd_putc,"\fgelen=%c",getc());
delay_ms(500);

}}
Mustafa Emir SADE

mir_as82

Hocam printf içindeki formatlama bilgini degistirmen gerekiyor. %c yi %d yap.

baran123

%c 			//karekter
%d 			//işaretli ondalıklı (decimal) değer
%f 			//floating point (desimal notasyon – dahil edilmeli)
%e 			//floating point (exponential or scientific notasyon)
%u 			//işaretsiz ondalıklı (decimal) değer
%x 			//işaretsiz onaltılık değer (küçük harf)
%X 			//işaretsiz onaltılık değer (büyük harf) 
%s			//dizi


Kalsın bir kenarda ;) gelen = %c demişsin bu karakter alır bunu d yapman lazım int alabilmek için
Kolay gelsin

musti463

56 ve 50 sayılarını sırayla gösterip duruyor o zamanda
Mustafa Emir SADE

mir_as82

 LCD te basarken puts varsa onu kullan.