Deine Funktion will einen Pointer auf unsigned char. tmrGATEcounter ist aber ein unsigned short. Sind die bei deinem Compiler gleichgroß? (Besser: die Typen aus stdint.h verwenden, also z.B. uint8_t und uint16_t).