Dat de breadvoard versie van m’n slaveboard werkt kon ik alleen nog bewijzen met de logic analyser. Doel was natuurlijk om deze te laten communiceren met de netduino. Qua wiring hoefde er alleen een pulldown weerstend op.. en in combinatie met deze code rapporteert het slaveboard z’n voltage als je op de netduino knop drukt:
public class Program { static SerialPort port = new SerialPort(SerialPorts.COM1, 9600); static InterruptPort sw = new InterruptPort(Pins.ONBOARDSW1, true, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeHigh); publicstaticvoid Main() { sw.OnInterrupt += new NativeEventHandler(swOnInterrupt); port.DataReceived += new SerialDataReceivedEventHandler(portDataReceived); OutputPort led = new OutputPort(Pins.ONBOARDLED, false); byte[] buff = newbyte[] { 1 }; port.Open(); while (true) { led.Write(true); //port.Write(buff, 0, buff.Length); Thread.Sleep(100); led.Write(false); Thread.Sleep(900); } } static void swOnInterrupt(uint data1, uint data2, DateTime time) { Debug.Print("button pressed, sending command 1"); byte[] buff = newbyte[] { 1 }; port.Write(buff, 0, buff.Length); } static void portDataReceived(object sender, SerialDataReceivedEventArgs e) { int bytesReceived = ((SerialPort)sender).BytesToRead; byte[] bytes = newbyte[bytesReceived]; ((SerialPort)sender).Read(bytes, 0, bytes.Length); Debug.Print(bytes[0].ToString()); } }