public void RisingClockShouldGivePositiveEdge() { // Arrange VoltageEdge edge = VoltageEdge.Negative; eeprom.CLK.Value = false; eeprom.CLK.EdgeChange += (sender, args) => { edge = args.Edge; }; // Act eeprom.CLK.Value = true; // Assert Assert.AreEqual <VoltageEdge>(VoltageEdge.Positive, edge, "Rising clock value should give positive edge."); }
public void Update(bool chipSelect, bool clock) //, bool dataIn) { CS = chipSelect; CLK.Value = clock; //DI = dataIn; if (!CS) { State = OperationState.Standby; } // Debug.WriteLine("{0},{1},{2},{3},{4},{5}", CS, CLK.Value, DI, DO, CurrentEdge, State); switch (State) { case OperationState.Standby: if (IsStartConditionMet) { OnStart(); } break; case OperationState.Clocking: ClockInstruction(DI); break; case OperationState.Executing: ExecuteInstruction(); break; default: break; } CurrentEdge = VoltageEdge.None; }
public EdgeChangedEventArgs(VoltageEdge edge) { this.Edge = edge; }
// Event handlers private void OnEdgeChange(object sender, EdgeChangedEventArgs e) { CurrentEdge = e.Edge; }