Перейти к содержанию
    

Прерывание от таймера в AT91SAM7X256

Спасибо, я в процессе...)))

Изменено пользователем ZAA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

В общем, полнейшая ерунда...Если разрешать прерывания по 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: Мозг взрывается уже

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если разрешать прерывания по Tx, то программа какое-то количество раз заходит в обработчик, а потом все останавливается.

Останавливается как - процессор виснет, или прерывания не прерываются?

 

А по Rx прерывания так и не воспринимаются, хотя все делаю по Вашим советам, да и по логике-то должно работать(((

А вот это совсем странно, тем более, что инициализируется оно одновременно с TX. Проверьте все внимательно еще раз. PDC точно выключен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Останавливается как - процессор виснет, или прерывания не прерываются?

Похоже на то, что прерывания не прерываются. Потому что в условии обработчика, где про Tx, я посылаю через DBGU значение счётчика, к-рый инкрементируется каждое прерывание. ПОсылается примерно значений 1500, а дальше все. Да ещё и в прерывание заходит, даже если кабель RS232 не подключен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ещё и в прерывание заходит, даже если кабель RS232 не подключен.

Ну, это правильно - откуда ему знать, подключен кабель, или нет? Какая-нибудь светодиодная моргалка в проекте есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, это правильно - откуда ему знать, подключен кабель, или нет? Какая-нибудь светодиодная моргалка в проекте есть?

Да, есть. Это функция vParTestToggleLED ('номер светодиода')

Я её использую, чтобы определить. зашла программа в прерывание или нет. Отладчика-то не имеется. вот и приходится лампочками отлаживать :05:

А не может дело быть в структуре самой программы? То есть в ф-ии main вызывается PrvSetupHardware (ну как обычно), потом ф-ия ReadComPort(), потом vStartSheduler;

А ф-ия ReadComPort выглядит так:

void ReadComPort()

{

init_uart();

}

 

init_uart - это инициализация уарта. про которую обсуждалось выше.

 

А данные в порт с компа все равно какой программой отправлять? (либо terminal.exe, либо ComPUMP ну или еще какой-нить :( )

Изменено пользователем ZAA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :)

Спасибо за поддержку. Попробую...)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так добавьте какую-нибудь задачу, которая просто будет LED'ом моргать. А то не понятно, хвост-IRQ отваливается, или лапы-OS :)

Уважаемый aaarrr! Не было возможности Вам ответить раньше. Хочется очень Вас поблагодарить. проблема с UARTом разрешилась. причиной всему была собственная глупость, тупость и т п. если бы в руках схема не оказалась, долго бы ещё голову ломали. В общем, USART0, который я так настойчиво пыталась конфигурировать ,выведен совсем на другие выводы. Припаяли разъём на PA0, PA1 (к-рые отвечают за TxD RxD) и все заработало. Наука мне на будущее. СПАСИБО ещё раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...