Error transmisión serial 16f84

Saludo:

Tengo un problema con una transmisión serial realizada desde un PIc 16f84, resulta que debo concatenar dos datos y enviarlos, las primeras tres o cuatro veces lo envia bien, luego empieza a enviar basura, en el código parece no haber nada que corregir

Código:
#include <16F84A.h>
#include <stdlib.h>
#include <string.h>
#use delay(CLOCK=4000000)
#fuses XT,NOWDT,NOPROTECT
#define RTC_SCLK PIN_B1
#define RTC_IO   PIN_B2
#define RTC_RST  PIN_B0
#use rs232(baud=9600,xmit=PIN_B3,rcv=PIN_B4,Parity=N,bits=8)
#include <ds1302.c>
#byte puerto_a = 04
#byte puerto_b = 05

char FmtFec(int8 fec)
   {
   char Tmp;
   char a[2];
   itoa(0,10,Tmp);
   itoa(fec,10,a);
   if(fec<10)
      strcat(Tmp,a);
   return Tmp;
   }

void main()
   {
   int8 i,day,mth,year,dow,hour,min,sec;
      rtc_init();
   while(TRUE)
      {
      rtc_get_date(day,mth,year,dow);
      rtc_get_time(hour,min,sec);
      printf(" %s ",FmtFec(day));
      }
   }

Cualquier opinion se tendrá en cuenta, gracias.
 
Hola

Verifica el formato de los valores retornados por las funciones rtc... son en formato BCD !

prueba esto:

printf(" %02x ", day);

saludos !
 
Atrás
Arriba