Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Небольшое сравнение PICC18 и МСС18
Отправлено
atlant
10 сентября 2009, г. 10:28
Я тут перевел было проект на МСС18, но уж больно медлено работает.
Поэтому сравнил скорость выполнения след. функции:
char AT45_GetByte(void)
{
char i,D;
i = 8;
do
{
D <<= 1;
CK = 0;
if (DO) D++;
CK = 1;
} while (--i);
return D;
}
char D;
D = AT45_GetByte();
PICC18 v9.63PL1:
Весь проект: код 5380 слов, ОЗУ 379 байта
Скорость выполнения этой функции: 78 такта
МCC18 v3.32:
Весь проект: код 6992 слов, ОЗУ 608 байта
Скорость выполнения этой функции: 266 такта
У обоих компиляторов максимальная оптимизация.
Наводит на грустные размышления. Придется ждать пока не исправят явные ошибки HiTech, что-ли.. Не знаю.
Составить ответ
|
Вернуться на конференцию.
Ответы
Ответ: Дествительно грустно а оптимизация по времени не отключилась? Еще бы попробовать микроС.(-)
-
oll
(10.09.2009, 20:37:0
188.163.42.76
,
пустое
)
Ответ: уже почитал на микрочип.ру - грустно еще больше.
-
oll
(10.09.2009, 20:50:56
188.163.42.76
,
пустое
)
Вот функция примерно из той же оперы. Компилится в 37 команд, такты не считал, но можешь сам прикинуть, учитывая что переключение ноги с 0 на 1 и обратно - это отдельная функция. Ибо i2c (надо имитировать открытый сток)
-
=L.A.=
(10.09.2009, 11:02:45
213.79.108.115
, 865 байт)
Моя функция примерно 20 команд. Так что у тебя тоже она медленно работает. Может для I2C быстро и не надо..
-
atlant
(10.09.2009, 11:12:39
89.248.115.162
,
пустое
)
частота клоков примерно 100 кГц при кварце 8 МГц. Для i2c , действительно, быстрее не очень нужно.
-
=L.A.=
(10.09.2009, 11:15:15
213.79.108.115
,
пустое
)
а у тебя 8 раз по 20 команд выполняются за 78 тактов МК? Интересно.:))
-
=L.A.=
(10.09.2009, 11:42:50
213.79.108.115
,
пустое
)
Нет, 20 команд все тело функции, и то это для МСС18.
-
atlant
(10.09.2009, 11:56:16
89.248.115.162
,
пустое
)
а расшЫренные команды вкл.?
-
=L.A.=
(10.09.2009, 10:32:37
213.79.108.115
,
пустое
)
Ответ: нет
-
atlant
(10.09.2009, 10:35:32
89.248.115.162
,
пустое
)
желательно включить Extended Instruction. Код уменьшится процентов на 10.
-
=L.A.=
(10.09.2009, 10:43:9
213.79.108.115
,
пустое
)
и переменная char по умолчанию - посмотри
-
=L.A.=
(10.09.2009, 10:45:33
213.79.108.115
,
пустое
)
Все переменные типа char - unsigned (флаг стоит). Включил расширенные команды. Код: 6511 слов, ОЗУ: 560, Время вып.: 222t. (было 266). "Маловато! Маловато будет."
-
atlant
(10.09.2009, 10:55:13
89.248.115.162
,
пустое
)
что-то у тебя не так. MCC18, конечно, более привередлив, но не настолько
-
Alex B
(10.09.2009, 10:31:20
10.1.20.138,87.248.227.162
,
пустое
)
много надо руками настраивать, хотя ручное управление не всегда плохо.
-
=L.A.=
(10.09.2009, 10:34:20
213.79.108.115
,
пустое
)
Все так. Измерил осциллографом. Потом в симуляторе. Хотел вместо сдвига влево воткнуть ассемблерную команду, потом передумал, эффект небольшой.
-
atlant
(10.09.2009, 10:37:13
89.248.115.162
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 2 вдвое:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru