処理の部分だけ抜き出して見ました。
traは0〜255が入ります。

unsigned char tra_undf = 0;
unsigned char tra_buff = 0;
static unsigned long ValuePuls = 0;
void main (void){
while(1){
if (tedgf_tracr == 1)
 {tra_buff = tra;
flag_edge = 1;
tedgf_tracr = 0;}
if(tundf_tracr == 1)
 {tra_undf++;
tundf_tracr = 0;}
if(flag_edge == 1)
 {Sort();
tra_undf = 0;
flag_edge = 0;}
:
}}

void Sort(void){ValuePulse = ((256 * tra_undf) + (255 - tra_buff));}

結果は
tra_undf=189のときにValuePulse=4294950301
tra_undf=234のときにValuePulse=4294961868

念のため+ (255 - tra_buff)の部分を消して見ましたが
tra_undf=223のときにValuePulse=4294958848
でした。