Interface Gyroscope / PC

Introduction

I have an helicopter model and so 2 gyroscopes. I have tried to interfaced them with a microcontroller to use them as compass. The gyroscope corrects an order sent by the user so I I did the sum of the correction (by analysing the signal sent by the gyroscope to the servo) and I though it was proportional to the rotation angle. I succeeded to interface the gyroscope and an AT90S2313 but the gyro response is not linear so I couldn't use it as a compass: if I turn the gyro 90° to the right then come back to the initial position, the value of the integrated correction doesn't come back to its initial value. Nevertheless, this program can be used to detect the rotation direction and amplitude.

Schematics & source code

Schematic:

Source code: assembler for at90s2313 and PC interface in visual c++: srcgyro.zip

Picture: