Converting unsigned to signed

Slappy:
The reason I have the struct is because phi.data, theta.data and psi.data all need to be global values, as they will be used in multiple functions.

That's nonsense, sorry.