ZAA 0 Posted May 28, 2008 (edited) · Report post Спасибо, я в процессе...))) Edited May 28, 2008 by ZAA Share this post Link to post Share on other sites
ZAA 0 Posted May 28, 2008 · Report post ... В общем, полнейшая ерунда...Если разрешать прерывания по 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: Мозг взрывается уже Share this post Link to post Share on other sites
aaarrr 0 Posted May 29, 2008 · Report post Если разрешать прерывания по Tx, то программа какое-то количество раз заходит в обработчик, а потом все останавливается. Останавливается как - процессор виснет, или прерывания не прерываются? А по Rx прерывания так и не воспринимаются, хотя все делаю по Вашим советам, да и по логике-то должно работать((( А вот это совсем странно, тем более, что инициализируется оно одновременно с TX. Проверьте все внимательно еще раз. PDC точно выключен? Share this post Link to post Share on other sites
ZAA 0 Posted May 29, 2008 · Report post Останавливается как - процессор виснет, или прерывания не прерываются? Похоже на то, что прерывания не прерываются. Потому что в условии обработчика, где про Tx, я посылаю через DBGU значение счётчика, к-рый инкрементируется каждое прерывание. ПОсылается примерно значений 1500, а дальше все. Да ещё и в прерывание заходит, даже если кабель RS232 не подключен. Share this post Link to post Share on other sites
aaarrr 0 Posted May 29, 2008 · Report post Да ещё и в прерывание заходит, даже если кабель RS232 не подключен. Ну, это правильно - откуда ему знать, подключен кабель, или нет? Какая-нибудь светодиодная моргалка в проекте есть? Share this post Link to post Share on other sites
ZAA 0 Posted May 29, 2008 (edited) · Report post Ну, это правильно - откуда ему знать, подключен кабель, или нет? Какая-нибудь светодиодная моргалка в проекте есть? Да, есть. Это функция vParTestToggleLED ('номер светодиода') Я её использую, чтобы определить. зашла программа в прерывание или нет. Отладчика-то не имеется. вот и приходится лампочками отлаживать :05: А не может дело быть в структуре самой программы? То есть в ф-ии main вызывается PrvSetupHardware (ну как обычно), потом ф-ия ReadComPort(), потом vStartSheduler; А ф-ия ReadComPort выглядит так: void ReadComPort() { init_uart(); } init_uart - это инициализация уарта. про которую обсуждалось выше. А данные в порт с компа все равно какой программой отправлять? (либо terminal.exe, либо ComPUMP ну или еще какой-нить :( ) Edited May 29, 2008 by ZAA Share this post Link to post Share on other sites
aaarrr 0 Posted May 29, 2008 · Report post Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :) Share this post Link to post Share on other sites
ZAA 0 Posted May 29, 2008 · Report post Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :) Спасибо за поддержку. Попробую...) Share this post Link to post Share on other sites
ZAA 0 Posted June 13, 2008 · Report post Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :) Уважаемый aaarrr! Не было возможности Вам ответить раньше. Хочется очень Вас поблагодарить. проблема с UARTом разрешилась. причиной всему была собственная глупость, тупость и т п. если бы в руках схема не оказалась, долго бы ещё голову ломали. В общем, USART0, который я так настойчиво пыталась конфигурировать ,выведен совсем на другие выводы. Припаяли разъём на PA0, PA1 (к-рые отвечают за TxD RxD) и все заработало. Наука мне на будущее. СПАСИБО ещё раз Share this post Link to post Share on other sites