bekor 0 27 января, 2011 Опубликовано 27 января, 2011 (изменено) · Жалоба Привет всем появилась у меня такая вот проблема делал я один проект на контроллере xmega128a1, и когда все уже было сделано почти на 90% то есть все модули и драйвера по отдельности уже готовы и работают осталось только собрать их вместе, и вдруг выяснилось что процессор не успевает все это дело делать короче этот контроллер слабоват для моей задачи, а ведь проект то надо заканчивать поскорее. Единственный выход из сложившийся ситуации по моему это переводить проект на другой более мощный контроллер. Но какой выбрать не знаю, посоветуйте пожалуйста. какой выбрать чтобы за минимальное время можно было легко все это сделать много времени для изучения контроллера нету. пишу на Си. примерные требования к МК CPU хотябы 64MHz штатное подключение SDRAM 16 разрядных таймеров 8штук минимум аппаратная поддержка SD/HC карт памяти встроенный ЦАП 10бит встроенный АЦП 10бит да и конечно же очень низкая цена и доступность... а также чтобы можно было шить смопальным программатором и писать код в IAR Изменено 27 января, 2011 пользователем bekor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 28 января, 2011 Опубликовано 28 января, 2011 · Жалоба 16 разрядных таймеров 8штук минимум Непонятное требование, а по всему остальному LPC22XX вроде подходит. Да, таймеров должно быть больше в LPC29XX. Короче, ARM7. Только АЦП / ЦАП на плате c SDRAM будут плохо работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bekor 0 28 января, 2011 Опубликовано 28 января, 2011 (изменено) · Жалоба Непонятное требование Непонятно что конкретно непонятного а по всему остальному LPC22XX вроде подходит. Да, таймеров должно быть больше в LPC29XX. Короче, ARM7. а к ним легче привыкать ? Только АЦП / ЦАП на плате c SDRAM будут плохо работать. действительно, при работе с SDRAM сильно шумит ЦАП ! интресно почему это так ? можно ли этого както избегать ? Изменено 28 января, 2011 пользователем bekor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 28 января, 2011 Опубликовано 28 января, 2011 · Жалоба Непонятно что конкретно непонятного Зачем столько. Может, Вы используете COMPARE/CAPTURE, и такое количество независимых счетчиков все-таки не нужно? а к ним легче привыкать ? Да чего там привыкать - взял пример проект а ИАРе и вперед. действительно, при работе с SDRAM сильно шумит ЦАП ! ... можно ли этого както избегать ? Внешний АЦП, видимо. Или осетра (точность - скорость) урезать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bekor 0 28 января, 2011 Опубликовано 28 января, 2011 · Жалоба нет, нужны именно независимые таймеры с прерываниями по переполнению. посмотрел в сторону STM32F103VET6, по всем параметрам удовлетворяет но слишком мало ОЗУ уже запутался незнаю что выбрать. что такое осетра ? у иксмеги именно внутренний ЦАП шумит! работа EBI сильно влияет на ЦАП... вот это было бы идеальным вариантом если бы на борту было хотя бы 8МБ ОЗУ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skripach 5 28 января, 2011 Опубликовано 28 января, 2011 · Жалоба LPC22XX Там вроде нет SDRAM. Есть она в каких то Luminary от TI. В STM32 SDRAM тоже нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bekor 0 28 января, 2011 Опубликовано 28 января, 2011 (изменено) · Жалоба интересно с какой скоростью на этой платформе будет работать SD карта памяти, если достаточно быстро то необходимость SDRAM отпадет Изменено 28 января, 2011 пользователем bekor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bekor 0 29 января, 2011 Опубликовано 29 января, 2011 · Жалоба скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку value=value*percent/100; (расчет процента целого двухбайтного числа) а то очень много процессора жрет и на остальных вычислениях просто не остается процессора! если это возможно то переходить на другую платформу неприйдется ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 29 января, 2011 Опубликовано 29 января, 2011 · Жалоба скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку Для достижения максимальной эффективности оптимизируют не строчки, а алгоритмы. При вычислениях думают не только о разделить-умножить, но и о необходимо-достаточной точности вычислений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HARMHARM 0 29 января, 2011 Опубликовано 29 января, 2011 · Жалоба Кроме того, никто не отменял табличных вычислений. Деление иногда можно без особых сложностей заменить умножением. Очень помогает, если есть аппаратный умножитель как в старших MSP430. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bekor 0 29 января, 2011 Опубликовано 29 января, 2011 · Жалоба но и о необходимо-достаточной точности вычислений. так у меня же целые числа а не float, о какой точности идет речь не понимаю Кроме того, никто не отменял табличных вычислений. а этот метод можно применять для вычисления процента ? если можно по подробнее пожалуйста. я так понимаю для этого нужно заранее вычислить все возможные варианты и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ? тогда для вычисления процента типа char понадобится 25КБайт массива в озу я правильно понял ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HARMHARM 0 29 января, 2011 Опубликовано 29 января, 2011 · Жалоба а этот метод можно применять для вычисления процента ? если можно по подробнее пожалуйста. я так понимаю для этого нужно заранее вычислить все возможные варианты и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ? тогда для вычисления процента типа char понадобится 25КБайт массива в озу Можно и так - в лоб. Сначала нужно прояснить для себя необходимую точность вычислений, как верно заметил zltigo. И определиться с диапазоном входных значений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 29 января, 2011 Опубликовано 29 января, 2011 · Жалоба скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку Код value=value*percent/100; Я, конечно, погрешу против правил, но скажу так value=(((unsigned long)value*655UL)*(unsigned long)percent)>>16; Ну и оптимизацию по скорости неплохо было бы включить в проекте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
proba 0 30 января, 2011 Опубликовано 30 января, 2011 (изменено) · Жалоба деление на 100 можно с точностю 0,0098% писать в форме: x/100 = x/128+x/512+x/4096; или: x/100=(x>>7)+(x>>9)+(x>>12); код: int x,x1; x=x>>7; x+=x1=x>>2; x+=x1>>3; скорость выполнения зависит от типа переменного, unsigned выполняется быстрее чем signed. Изменено 30 января, 2011 пользователем proba Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bekor 0 30 января, 2011 Опубликовано 30 января, 2011 · Жалоба попробовал выполнять деление сдвигами немношко смягчило ситуацию но всеже не то, а вот табличный метод это чтото! реально снял с ЦПУ много нагрузки :rolleyes: спасибо HARMHARM-у за подсказку... ща пытаюсь еще и с остальным кодом пошаманить, оптимизировать где только возможно, может чего и выйдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться