Страница 272 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 26, 2011 19:13:11
МитяРа
У мя тоже не получаетс, а раньше заходил и цену видел - 2 тыр..
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 26, 2011 19:25:20
Meteor
Наверное они уже празднуют...
Не рекламируя, скажу что достаточно надежные товарищи - отсылают вовремя и без проволочек
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 26, 2011 19:34:28
МитяРа
Хорошо.. кину другу сЦылку - пусть созвонится..
А программное с производителя качать?
Есть какой нить описалово на русском?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 26, 2011 19:47:14
Meteor
Погляди
тут Вообще на народе народ делал несколько блогов по квартусу
Еще на изиэлектрониксе вроде темка. И еще на марсо
плавеходе
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн дек 26, 2011 19:52:51
МитяРа
Утянул в нору..

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 14:33:03
wellcom
Ув. Коты, кто нибудь пробовал как то замерять время чтения данных из EEPROMa ?, например из какой то переменной в EEPROMe перезаписать данные в ОЗУ, сколько машинных тактов пойдет на это?
На мой взгляд, чтение одних и тех же данных из EEPROMa, FLASH или ОЗУ по идее должны иметь разное время

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 14:41:21
ploop
Разное. И оно есть в даташите.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 14:54:00
КРАМ
Чтение НЕ ОТЛИЧАЕТСЯ, если не считать отсутствие непосредственной адресации флеша и еепрома. Сама выборка данных при уже установленном указателе происходит в 1 машцикл. Однако есть архитектуры, где флеш, как и ОЗУ, адресуется непосредственно из команды.
Различаются времена ЗАПИСИ. И сильно.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 15:01:20
pyzhman
2wellcom: это как-то влияет на работу вашей программы? А если нет, то какая разница?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 16:03:46
BerZerK-ku
КРАМ писал(а):Сама выборка данных при уже установленном указателе происходит в 1 машцикл
В литературе встречал 2 мнения: понятия машинного цикла для AVR не существует и машинный цикл равен одному периоду тактовой частоты. А вот что говорится про чтение EEPROM в описании на МК:
When the EEPROM is read, the CPU is halted for four clock cycles before the next instruction is executed.
В итоге получается 4 тактовых периода == 4 машинных цикла.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 16:12:44
wellcom
pyzhman писал(а): это как-то влияет на работу вашей программы? А если нет, то какая разница?
Пока еще не знаю. У меня програма громоздкая, и по программе я очень много сравниваю (более 100 сравнений, причем строк), поэтому где это возможно я пытаюсь сократить "это" время.
BerZerK-ku писал(а):
When the EEPROM is read, the CPU is halted for four clock cycles before the next instruction is executed.
гугл перевел: Когда EEPROM читается, процессор останавливается на четыре такта до следующей команды будет выполнен.
наверное нужно заводить еще одну переменную, предварительно прочитав туда с EEPROMa и держать в ОЗУ

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 16:20:26
pyzhman
Сдается мне, вы полезли в какие-то дебри. Неужели от программы требуется такое быстродействие, что играет роль лишний такт? Увеличьте частоту тактирования. Или продумайте алгоритм. Последнее предпочтительнее.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 17:00:08
wellcom
pyzhman писал(а):Сдается мне, вы полезли в какие-то дебри. Неужели от программы требуется такое быстродействие, что играет роль лишний такт? Увеличьте частоту тактирования. Или продумайте алгоритм. Последнее предпочтительнее.
у меня большая часть проги состоит из многих
Код: Выделить всё
if (sscanf...сравниваю строки со строками в приемном буфере)
if (sscanf...сравниваю строки со строками в приемном буфере)
...
...
if (sscanf...сравниваю строки со строками в приемном буфере) ...таких около сотни
частота кварца 11059, менять не хочу так как нужно будет менять многое и не только в программе, 4 такта вроде и не много, но всеже.....в общем буду думать....

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 17:06:07
ploop
Надо продумывать структуру. Вместо сотни if'ов можно применить, например, индексные переходы. Ну и прочих оптимизаций можно кучу придумать.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 17:12:32
МитяРа
wellcom писал(а):частота кварца 11059, менять не хочу
Судя по частоте, ты работаешь с USARTом..
Если твой МК может работать к более высокой частотой, то из стандартных кварцев можно применить 18.432 и 22.1184 МГц..
И тем более странно, что ты при нехватке быстродействия пишешь на Си..

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 17:22:21
BCluster
МитяРа писал(а):И тем более странно, что ты при нехватке быстродействия пишешь на Си..
А мож у него жирный проект на 10мб исходников на Си

Не, на асме крупное что-то писать увольте)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 17:23:56
wellcom
ploop писал(а):Надо продумывать структуру. Вместо сотни if'ов можно применить, например, индексные переходы. Ну и прочих оптимизаций можно кучу придумать.
Не могли бы на пальцах объяснить, что такое индексные переходы, или небольшой примерчик....
На С пишу (только начал понимать более-менее) так как АСМ пока не изучал, да и сам код получился бы очень громоздкий (у меня на С он составляет более 2000 строк).....
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 17:39:48
ploop
Не могли бы на пальцах объяснить, что такое индексные переходы, или небольшой примерчик....
Это когда хранишь в массиве
адреса своих функций, и переходишь к ней по номеру элемента массива. Вместо функций могут быть адреса массива с данными, а обработчик один. Можно тут почитать, но всё на асме:
http://easyelectronics.ru/avr-uchebnyj- ... eniya.html
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 18:09:04
BerZerK-ku
В С это называется массив указателей на функции. Задать можно так:
Код: Выделить всё
void vLVLstart(void)
{
...
};
void vLVLmenu(void);
void (*vMENUfunc []) () =
{
FUNC_NULL, /* 0 */
vLVLstart,
vLVLmenu,
};
Вызов функции в данном случае:
В итоге задача обработки принятой команды сводится к двум действиям:
1. Сравнить принятую строку с массивом строк, лежащих во flash / ram.
2. Подставить полученный индекс в массив указателей.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 27, 2011 19:59:20
FreshMan
в МК AVR таймеры считают машинные такты или циклы ?