I am trying to design a steering system that controls a rudder using a servo, The bearing will be obtained from a Devontech CMPS09 tilt compensated compass sensor to keep a model boat steering on this course. I need to be able to point the boat in the desired direction, set the direction as the bearing and if current/wind pushes the boat off course the rudder will compensate. I have had a little bit of experience with assembly language and would prefer to stick with it but am a bit lost with this one. I am using a 16f628a micro and the output from the CMPS09 is serial, i2c or PWM. I have tried smoothing the PWM signal and using the ADC with a 16f684 and outputting a servo signal but this is not the answer as I can only set the bearing by turning the compass sensor.
If any one can help me get started with this it would be appreciated.