Сергей Борщ 143 1 июня, 2007 Опубликовано 1 июня, 2007 · Жалоба первый собственно в теме - правильно ли я понял, что после чтения SxIR вывод прерывания будет низким еще 2 мс? IR (Interrupt Register) The /INT signal retain low as long as any unmasked signal is set, and will not go high until all unmasked bits in this Register have been cleared. Sx_INT Occurrence of Socket x Socket Interrupt It is set in case that interrupt occurs at the socket x. This bit will be automatically cleared when Sx_IR is cleared to 0x00. Sn_IR (Socket n Interrupt Register) The values are cleared by reading this register. Howerver, it takes 2ms to clear register after reading internally, and you may wait about 2ms after reading this register. Получается, попав в обработчик прерывания я должен на 2 мс запрещать это прерывание? Второй вопрос - в примерах передачи количество свободного места мониторится периодическим чтением Sx_TX_FSR. И если места не хватает, то висим в цикле постоянного чтения этого регистра пока предыдущий пакет не уйдет и место не освободится. Правильно ли я понял, что по прерываниям эту операцию не сделать никак? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GL_basik 0 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба первый собственно в теме - правильно ли я понял, что после чтения SxIR вывод прерывания будет низким еще 2 мс?Получается, попав в обработчик прерывания я должен на 2 мс запрещать это прерывание? Совершенно верно. Поэтому удобней и надежней делать прерывание по фронту. Второй вопрос - в примерах передачи количество свободного места мониторится периодическим чтением Sx_TX_FSR. И если места не хватает, то висим в цикле постоянного чтения этого регистра пока предыдущий пакет не уйдет и место не освободится. Правильно ли я понял, что по прерываниям эту операцию не сделать никак? В W3150A+ добавлено прервание SEND_OK, 4-ый бит в регистре Sn_IR 4 SEND_OK It is set as ‘1’ if send operation is completed.** Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба Совершенно верно. Поэтому удобней и надежней делать прерывание по фронту.По фронту можно пропустить прерывание, возникшее с момента входа до сброса флага прерывания в процессоре. Хотя, кажется будет работать - ведь регистры читаются после того, как флаг сброшен. В W3150A+ добавлено прервание SEND_OK, 4-ый бит в регистре Sn_IRУгу. Я как раз делаю следующую итерацию - перехожу на W5100. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться