This application note presents an implementation of the following fixed-point math routines for the PIC16F microcontroller families: SIN(X), COS(X), and ATAN(X). Coordinate Rotation Digital Computer (CORDIC) transforms are a collection of iterative, shift-add algorithms used to compute a wide range of trigonometric and hyperbolic functions on a digital computer.

With proper modification, these routines can also be used to implement the sin-1, cos-1, polar/rectangular coordinate conversion, hyperbolic, and even multiply/divide functions. The structure of the CORDIC transform lends itself to hardware implementations. Typical applications of the CORDIC transform include FPGA-based applications; however, the software-based CORDIC algorithm presented in this application note will provide a sufficient performance improvement for most applications.