@@ -53,110 +53,6 @@ void IECProtocol::timer_stop()
5353 // IEC.release( PIN_IEC_SRQ );
5454}
5555
56- #ifdef COMPLEX_WAIT
57- int16_t IRAM_ATTR IECProtocol::timeoutWait (uint8_t pin, bool target_status, size_t wait_us, bool watch_atn)
58- {
59- uint64_t start = 0 ;
60- uint64_t current = 0 ;
61- uint64_t elapsed = 0 ;
62-
63- #ifndef IEC_SPLIT_LINES
64- IEC_RELEASE ( pin );
65- #endif
66-
67- // Quick check to see if the target status is already set
68- if ( IEC_IS_ASSERTED ( pin ) == target_status )
69- return elapsed;
70-
71- if ( pin == PIN_IEC_ATN )
72- {
73- watch_atn = false ;
74- }
75- else
76- {
77- #ifndef IEC_SPLIT_LINES
78- IEC_RELEASE ( PIN_IEC_ATN );
79- #endif
80-
81- // Sample ATN and set flag to indicate COMMAND or DATA mode
82- if ( IEC_IS_ASSERTED ( PIN_IEC_ATN ) )
83- IEC.flags |= ATN_ASSERTED;
84- }
85-
86- // IEC_PULL( PIN_IEC_SRQ );
87- start = esp_timer_get_time ();
88- while ( IEC_IS_ASSERTED ( pin ) != target_status )
89- {
90- current = esp_timer_get_time ();
91- elapsed = ( current - start );
92-
93- if ( elapsed >= wait_us && wait_us != FOREVER )
94- {
95- // IEC_RELEASE( PIN_IEC_SRQ );
96- if ( wait_us == TIMEOUT_DEFAULT )
97- return -1 ;
98-
99- return wait_us;
100- }
101-
102- if ( watch_atn )
103- {
104- if ( IEC.flags & ATN_ASSERTED )
105- return -1 ;
106- }
107-
108- if ( /* IEC.state < BUS_ACTIVE ||*/ elapsed > FOREVER )
109- {
110- // Something is messed up. Get outta here.
111- // FOREVER really isn't forever
112- // Debug_printv("wth? bus_state[%d]", IEC.state);
113- Debug_printv (" pin[%d] target_status[%d] wait[%d] elapsed[%d]" , pin, target_status, wait_us, elapsed);
114- return -1 ;
115- }
116- }
117- // IEC_RELEASE( PIN_IEC_SRQ );
118-
119- // Debug_printv("pin[%d] state[%d] wait[%d] step[%d] t[%d]", pin, target_status, wait, elapsed);
120- return elapsed;
121- }
122-
123- bool IRAM_ATTR IECProtocol::wait (size_t wait_us, bool watch_atn)
124- {
125- return wait (wait_us, 0 , watch_atn);
126- }
127-
128- bool IRAM_ATTR IECProtocol::wait (size_t wait_us, uint64_t start, bool watch_atn)
129- {
130- uint64_t current, elapsed;
131- current = 0 ;
132- elapsed = 0 ;
133-
134- if ( wait_us == 0 ) return true ;
135- wait_us--; // Shave 1us for overhead
136-
137- // IEC_PULL( PIN_IEC_SRQ );
138- if ( start == 0 ) start = esp_timer_get_time ();
139- while ( elapsed <= wait_us )
140- {
141- current = esp_timer_get_time ();
142- elapsed = current - start;
143-
144- if ( watch_atn )
145- {
146- if ( IEC_IS_ASSERTED ( PIN_IEC_ATN ) )
147- {
148- IEC.flags |= ATN_ASSERTED;
149- // IEC_RELEASE( PIN_IEC_SRQ );
150- // Debug_printv("wait[%d] elapsed[%d] start[%d] current[%d]", wait, elapsed, start, current);
151- return false ;
152- }
153- }
154- }
155- // IEC_RELEASE( PIN_IEC_SRQ );
156-
157- return true ;
158- }
159- #else // !COMPLEX_WAIT
16056int IRAM_ATTR IECProtocol::waitForSignals (int pin1, int state1,
16157 int pin2, int state2,
16258 int timeout)
@@ -182,7 +78,6 @@ int IRAM_ATTR IECProtocol::waitForSignals(int pin1, int state1,
18278
18379 return abort ? TIMED_OUT : 0 ;
18480}
185- #endif // COMPLEX_WAIT
18681
18782void IECProtocol::transferDelaySinceLast (size_t minimumDelay)
18883{
0 commit comments