Asynchronous SeaTalk
Hope I've posted in the right place.
Last Monday somebody told me about the Arduino. By the w.end had a Relay shield driving motors in response to switches. Now I'm loosing what hair I have left.
Big project, build a modular control system for a 40' sailing yacht (so that a high level quadriplegic can sail it).
Current step, replicate the PIC based system that controls her existing 20' boat (hence switches and motors). Built by a guy in Canada some years ago, don't have very much info.
Current problem, getting a Mega to talk to a Raymarine ST4000+ autopilot.
The ST4000+ talks to the world over SeaTalk (see
http://www.thomasknauf.de/seatalk.htm). SeaTalk is a Raymarine proprietary bus.
11 bits are transmitted for each character:
1 Start bit (0V)
8 Data Bits
1 Command bit
1 Stop bit (+12V)
Where I am at the moment is reading SeaTalk on Serial 3 and then sending it to Serial Monitor over the USB. It looks like rubbish. What I want to know is how to set the serial port to 11 bits? Is there a command or procedure? How much control can be had over how the serial ports work?
In the Thomas Knauf article there code in C with the line:
_outb(0x3B, PORT+3); /*LCR Stick Parity to 0, Enable Parity, 1 Stop bit, 8 bits/char */
Does Arduino C++ have an equivalent command?
Thanks
Toby