Para fazer a função desliga mas os valores a executar estao a ser aleatorios temos de analisar quais os vaores a alterar realmente para criar um byte :unsigned char c =inportb(ier) c=c&0*f7 outport(ier,c) . . . . disable() c=inportb(pickMask) c=c'0*10' outportb(picMask,c) enable(); representado fica 1111=f 0111=7 send serial(b) while(buffer(C)) if(buffempty(){ bufput(b); ligaints(); } else buffull(b) no outro lado é identico a tradução disto para escrita é: Enquanto buffer cheio esperar se o buffer vazio coloca byte b no buffer liga ints porta serie se nao colca o byte b no buffer