Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RS232
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
automation_man
Кто нибудь писал в CCS интерфейс со скоростью 230400? Это вообще реально?
bzx
Цитата(automation_man @ Mar 31 2008, 17:38) *
Кто нибудь писал в CCS интерфейс со скоростью 230400? Это вообще реально?

Тип компилятора тут вообще ни причём. Главное кварц подобрать, чтобы делитель целым был.
MaxPIC
Да, писал, реально. На PIC18F4520. Вместо COM-порта использовал кабель USB-to-COM.
automation_man
А если кварц 9216 кГц с PLL 18F252 хватит скорости? а то только 57600 MODBUS RTU завелся. На 115200 то есть то нет связи. Интерфейс кстати 485.
MaxPIC
Должен, а почему бы и нет. (если PLL это типа HS PLL)
automation_man
Цитата(MaxPIC @ Apr 2 2008, 21:17) *
Должен, а почему бы и нет. (если PLL это типа HS PLL)

Ну да. Ощущение что нехватает времени в 4 байта для подготовки ответа. Какие команды для организации меню более оптимальны? Я использую switch. Может стоит пользоваться старым добрым if?
dac
зависит от кол-ва пунктов, для себя как-то считал, на маленьком числе (до 10) быстрее будет IF
automation_man
и на 230400 без проблем должно заводиться?
MaxPIC
По поводу времени формирования ответа, вопрос сложный. Надо смотреть ассемблерный код, который сформировал компилятор. Кстати, сразу же отмечу, что если обработка буфера USART'а происходит в прерываниях (а оно скорее всего именно так), то внимательно посмотрите, чего там добавит компилятор. Зачастую, если задача позволяет, лучше написать такую программу на ассемблере, тогда можно выжать максимум из МК (и 230400). Навскидку, для приёма потока 230400 бит/сек потребуется 230400/8 (если в посылке 8 бит, а не 9) раз обработать принятую информацию. МК работает на 10 МГц (максимум от HSPLL). Значит на обработку одного байта потребуется 10000000/(230400/8)=347 тактов. Обработка принятых данных скорее всего будет осуществляться в прерываниях. Процесс обработки одного байта пусть будет порядка 250 тактов (для проги, написанной на С). Тогда у Вас на процесс приёма будет тратиться порядка 70 % ресурсов проца. А что дальше делать с этимим данными и отправлять ли ответ на комп - я не знаю, зависит от задачи, но у Вас остаётся на это только 30%. Данное соотношение можно легко изменить в сторону 30/70, т.е. на приём тратить только 30%, но тогда всю прогу надо писать на асме. Решение на чём писать принимать Вам.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.