I have posted about a low priced encoder for a 3D digitizer.The manufacture shows one method for using a PIC and a Serial Synchronous Interface (SSI) to RS232 convertor.
However the PICPRO compilier doesn't have built in floating point number types.There are code workarounds but I would rather not deal with it.
Could someone recommend an alternative to a PIC18F252.
I need to connect to 5 16bit Absolute optical encoders to read from.
The C-compilers for 8051,Avr and Arm support floating point numbers. But.., you input integers into your device. No floating points needed. If you transport your integers to the PC at that point, your problem does'nt exist, the PIC is only a communicator.
If you need to do extensive calculations in the PIC before this point, you can explore if you can use look up tables, successive approximation and scaling. For example scaling can be used if you need 3 decimal points. So the number 1,234 is in the processor 1234 for calculations and at the latest moment made real to 1. Why 1? There are no floating point stepper motors, nor floating point monitors.
I'am not sure I understand, the EPROM in the optical encoder stores the angle.
I presume with floating point accuracy say 124.367253 degrees.
Then you use the PIC's to read the values in all the encoders and send them to the computer running the software.
Then the software does the matrix multiplication for all the encoders according to the Denavit-Hartenburg convention needed to find the end effectors position.
Yes, you have got to reread. The encoders are 16-bit absolute. This means they divide a circle in 65536 parts. Absolute means that there is no counter, power on and off, you get the same number. The encoder can be read through an SSI interface. There are no floating point numbers involved in this.