BUG no MAKE32?

Ola Amigos do forum, estou desenvolvendo um projeto com PIC 16f628 e o compilador MPLAB 7.6 utilizando o CCS 4.013, vi um exemplo aqui no forum de como "quebrar" uma variavel de 32 bits em 4 variaveis de 8 bits utilizando o MAKE8 e depois juntar com o MAKE32, bati cabeca 1 dia todo fazendo testes e o valor depois de juntar estava errado, debugando pelo MBPLAB o valor ficava correto, quando passava para o PIC e imprimia na porta serial ele mostrava outro valor apos juntar as 4 variaveis, depois de muito me extressar, percebi que isso acontecia quando o valor enviado para ser quebrado nao utilizava os 32 bits, exemplo, eu mandei o valor 12000, quando percebi isso enviei o numero 4294967295 que seria o maximo que um 32 poderia suportar, ai a funcao passou a funcionar, troquei a variavel para um int16 e usei o make16 e funcionou com o numero 12000, alguem ja passou por isso? Isso é normal? OU seja, eu terei que verificar se o numero é 16 ou 32 e utilizar funcoes diferentes, ou eu que estou fazendo algo errado?
Obrigado pela atenção. Segue abaixo o codigo de teste
Obrigado pela atenção. Segue abaixo o codigo de teste
- Código: Selecionar todos
unsigned int temp1,temp2,temp3,temp4;
int32 year;
year=12000;
temp4=make8(year,0);
temp3=make8(year,1);
temp2=make8(year,2);
temp1=make8(year,3);
year=0;
year= make32 (temp1,temp2,temp3,temp4);
printf("%Lu\r\n",year);