The oFeedBack8 Object uses up to 16 I/O lines to form an 8 by 8 feedback matrix. The set of I/O lines in group 1 are are used to send signals and the I/O lines in either group 1 or 3 are used to detect the feedback. When operating, the signal lines are individually and sequentially set Low (0-Volts) while the feedback lines are used to detect the feedback from those signals. Feedback is detected when any one of the feedback lines detects the signals being sent out by the signal lines. The oFeedBack8 Object handles all the required I/O logic so that no isolation diodes or pull up resistors are required for operation. Both the signal lines and the receiver lines have a mask that allows specific I/O lines within the groups to be selected for use. This option allows the feedback matrix to be any combination up to 8 by 8. As an example, if only 5 I/O lines are selected for signals and 4 bits are selected for receivers, then the resulting scan pattern would scan a 5 by 4 matrix which would contain 20 possible feedback paths. The signal lines always use the I/O Lines in I/O Group 1 while the feedback lines may use either I/O Group 1 or 3. If the feedback lines are directed to use I/O Group 1, then the masks for both the signal and the feedback lines must be set in such a way that they will not conflict. When the Operate property is set to 1 the internal pull-up resistors on I/O lines 8 - 15 are activated and the matrix is scanned for feedback. If any outgoing signal is detected on the feedback lines, the Result property is updated with the value that indicates the signal and receiver where the feedback was detected and the Any property is set to 1. The value of the Result property is calculated by (((signal - 1) * 8) + (feedback-1)). If two return signals are detected simultaneously the highest valued row and column 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 switch matrix scanning is suspended until the Operate property is set back to 1. |