реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> AT91SAM7X256 и Keil Vision 3V3.20a
Limp
сообщение May 28 2008, 12:10
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 6-02-08
Пользователь №: 34 796



Цитата(aaarrr @ May 28 2008, 14:52) *
Очень просто все:
Код
#define BRD (MCK/16/BR) /* Baud Rate Divisor */

Даст BRD=20 из-за отсутствия округления - (int)20.8=20.

Для того, чтобы избежать этой неприятности, сделайте так:
Код
#define BRD ((MCK + BR * 8)/16/BR)


Дало 21.3 Но увы! Не заработало. Процессор виснет, когда посылаю ему команду.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2008, 12:14
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Если виснет, то это во всяком случае со скоростью UART'а никак не связано.
Go to the top of the page
 
+Quote Post
Limp
сообщение May 28 2008, 12:37
Сообщение #33


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 6-02-08
Пользователь №: 34 796



Цитата(aaarrr @ May 28 2008, 15:14) *
Если виснет, то это во всяком случае со скоростью UART'а никак не связано.


Дело в том, что в основном цикле мигает диод. Т.е. программа загружается и запускается. Посылка байта от ПЭВМ обрабатывается по прерыванию USART. Те команды которые я посылаю отработаны на плате AT91SAM7X-EK и проц ни когда не зависал. Тут я уверен на 100%. А вот на доморощенной диод перестает мигать как только посылаю команду.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2008, 12:50
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Странно как-то. А программы, за исключением делителя UART, одинаковые?
Go to the top of the page
 
+Quote Post
Limp
сообщение May 28 2008, 12:56
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 6-02-08
Пользователь №: 34 796



Цитата(aaarrr @ May 28 2008, 15:50) *
Странно как-то. А программы, за исключением делителя UART, одинаковые?


Один к одному.

Было:
#define AT91B_MAIN_OSC 18432000 // Main Oscillator MAINCK
#define AT91B_MCK ((18432000*73/14)/2) // Output PLL Clock
#define MCK 47923200 // MCK (PLLRC div by 2)

#define BRD (MCK/16/BR) /* Baud Rate Divisor */
#define BR 115200 /* Baud Rate */

Стало:
#define AT91B_MAIN_OSC 14745600//18432000 // Main Oscillator MAINCK
#define AT91B_MCK ((14745600*73/14)/2) //((18432000*73/14)/2) // Output PLL Clock
#define MCK 38338560 //47923200 // MCK (PLLRC div by 2)

//#define BRD (MCK/16/BR) /* Baud Rate Divisor */
#define BRD ((MCK + BR * 8)/16/BR)
#define BR 115200 /* Baud Rate */
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2008, 13:03
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Limp @ May 28 2008, 16:56) *
Один к одному.

Значит программа может зависнуть при приеме содержащей ошибки команды, например.
Попробуйте просто эхо на UART'е сделать.

Снаружи процессор только светодиодом ворочает? Ошибок в железе быть не может?
Go to the top of the page
 
+Quote Post
Limp
сообщение Jun 2 2008, 06:56
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 6-02-08
Пользователь №: 34 796



Цитата(aaarrr @ May 28 2008, 16:03) *
Значит программа может зависнуть при приеме содержащей ошибки команды, например.
Попробуйте просто эхо на UART'е сделать.

Снаружи процессор только светодиодом ворочает? Ошибок в железе быть не может?


Уважаемый, aaarrr!
Загляните в личку.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 05:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.02516 секунд с 7
ELECTRONIX ©2004-2016