ZAA 0 28 мая, 2008 Опубликовано 28 мая, 2008 (изменено) · Жалоба Спасибо, я в процессе...))) Изменено 28 мая, 2008 пользователем ZAA Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZAA 0 28 мая, 2008 Опубликовано 28 мая, 2008 · Жалоба ... В общем, полнейшая ерунда...Если разрешать прерывания по Tx, то программа какое-то количество раз заходит в обработчик, а потом все останавливается. А по Rx прерывания так и не воспринимаются, хотя все делаю по Вашим советам, да и по логике-то должно работать((( Вообще для общения с контроллером я пользуюсь программой Terminal.exe. В обработчике я пишу, так как Вы советовали: if(status & AT91C_US_TXRDY) { // Делаем что нужно, но обязательно пишем US_THR или запрещаем прерывание TXRDY (pUS0->US_THR) = 0x1;//Data & 0x1FF; vParTestToggleLED(2); AT91F_DBGU_Printc(count_uart_interrupt); //эта функция по DBGU байт передает } :crying: :crying: :crying: Мозг взрывается уже Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Если разрешать прерывания по Tx, то программа какое-то количество раз заходит в обработчик, а потом все останавливается. Останавливается как - процессор виснет, или прерывания не прерываются? А по Rx прерывания так и не воспринимаются, хотя все делаю по Вашим советам, да и по логике-то должно работать((( А вот это совсем странно, тем более, что инициализируется оно одновременно с TX. Проверьте все внимательно еще раз. PDC точно выключен? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZAA 0 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Останавливается как - процессор виснет, или прерывания не прерываются? Похоже на то, что прерывания не прерываются. Потому что в условии обработчика, где про Tx, я посылаю через DBGU значение счётчика, к-рый инкрементируется каждое прерывание. ПОсылается примерно значений 1500, а дальше все. Да ещё и в прерывание заходит, даже если кабель RS232 не подключен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Да ещё и в прерывание заходит, даже если кабель RS232 не подключен. Ну, это правильно - откуда ему знать, подключен кабель, или нет? Какая-нибудь светодиодная моргалка в проекте есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZAA 0 29 мая, 2008 Опубликовано 29 мая, 2008 (изменено) · Жалоба Ну, это правильно - откуда ему знать, подключен кабель, или нет? Какая-нибудь светодиодная моргалка в проекте есть? Да, есть. Это функция vParTestToggleLED ('номер светодиода') Я её использую, чтобы определить. зашла программа в прерывание или нет. Отладчика-то не имеется. вот и приходится лампочками отлаживать :05: А не может дело быть в структуре самой программы? То есть в ф-ии main вызывается PrvSetupHardware (ну как обычно), потом ф-ия ReadComPort(), потом vStartSheduler; А ф-ия ReadComPort выглядит так: void ReadComPort() { init_uart(); } init_uart - это инициализация уарта. про которую обсуждалось выше. А данные в порт с компа все равно какой программой отправлять? (либо terminal.exe, либо ComPUMP ну или еще какой-нить :( ) Изменено 29 мая, 2008 пользователем ZAA Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZAA 0 29 мая, 2008 Опубликовано 29 мая, 2008 · Жалоба Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :) Спасибо за поддержку. Попробую...) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZAA 0 13 июня, 2008 Опубликовано 13 июня, 2008 · Жалоба Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :) Уважаемый aaarrr! Не было возможности Вам ответить раньше. Хочется очень Вас поблагодарить. проблема с UARTом разрешилась. причиной всему была собственная глупость, тупость и т п. если бы в руках схема не оказалась, долго бы ещё голову ломали. В общем, USART0, который я так настойчиво пыталась конфигурировать ,выведен совсем на другие выводы. Припаяли разъём на PA0, PA1 (к-рые отвечают за TxD RxD) и все заработало. Наука мне на будущее. СПАСИБО ещё раз Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться