An oFeedBack4 Object splits I/O Group 1 (I/O lines 8 - 15) into 2 sets of 4 I/O lines and uses them to form a 4 by 4 feedback matrix. The least significant 4 I/O Lines are used to send signals and the most significant 4 I/O Lines are used to detect the feedback. The 4 signal lines are individually and sequentially set low (0-Volts) while the 4 feedback lines are used to detect any feedback from those signals. Feedback is detected when any one of the 4 feedback lines detects the signal being sent out by the signal lines. The oFeedBack4 Object handles all the required I/O logic. The 4 x 4 matrix requires no isolation diodes or pull up resistors for operation. When the Operate property is set to 1 the internal pull-up resistors on I/O lines 8 - 15 are activated and the 4 x 4 feedback matrix is scanned. If any outgoing signal is detected on the feedback lines, the Result property is updated with a value and the "Any" property is set to 1. The value of the Result property is calculated by (((signal - 1) * 4) + (feedback-1)). If feedback is detected on two lines simultaneously the result with the highest value will be used. The "Any" property will remain at 1 so long as at least 1 feedback is detected. If a second feedback is detected before the first is lost, then the Result and "Any" property will remain unchanged from the values set at the time of the first feedback. Once all feedback is lost, the "Any" property is be cleared to 0. When the Operate property is set to 0 the feedback matrix scanning is suspended until the Operate property is set back to 1. |