Перейти к содержанию
    

Привет всем

появилась у меня такая вот проблема

делал я один проект на контроллере xmega128a1,

и когда все уже было сделано почти на 90%

то есть все модули и драйвера по отдельности уже готовы и работают

осталось только собрать их вместе, и вдруг выяснилось что

процессор не успевает все это дело делать

короче этот контроллер слабоват для моей задачи,

а ведь проект то надо заканчивать поскорее. Единственный выход из

сложившийся ситуации по моему это переводить проект на другой более мощный контроллер.

Но какой выбрать не знаю, посоветуйте пожалуйста.

 

какой выбрать чтобы за минимальное время можно было легко все это сделать

много времени для изучения контроллера нету.

пишу на Си.

 

примерные требования к МК

CPU хотябы 64MHz

штатное подключение SDRAM

16 разрядных таймеров 8штук минимум

аппаратная поддержка SD/HC карт памяти

встроенный ЦАП 10бит

встроенный АЦП 10бит

 

да и конечно же очень низкая цена и доступность...

а также чтобы можно было шить смопальным программатором

и писать код в IAR

Изменено пользователем bekor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 разрядных таймеров 8штук минимум

Непонятное требование, а по всему остальному LPC22XX вроде подходит.

Да, таймеров должно быть больше в LPC29XX.

Короче, ARM7.

Только АЦП / ЦАП на плате c SDRAM будут плохо работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непонятное требование

Непонятно что конкретно непонятного

а по всему остальному LPC22XX вроде подходит.

Да, таймеров должно быть больше в LPC29XX.

Короче, ARM7.

а к ним легче привыкать ?

Только АЦП / ЦАП на плате c SDRAM будут плохо работать.

действительно, при работе с SDRAM сильно шумит ЦАП !

интресно почему это так ?

можно ли этого както избегать ?

Изменено пользователем bekor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непонятно что конкретно непонятного

Зачем столько. Может, Вы используете COMPARE/CAPTURE, и такое количество независимых счетчиков все-таки не нужно?

 

а к ним легче привыкать ?

Да чего там привыкать - взял пример проект а ИАРе и вперед.

 

действительно, при работе с SDRAM сильно шумит ЦАП !

...

можно ли этого както избегать ?

Внешний АЦП, видимо. Или осетра (точность - скорость) урезать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет, нужны именно независимые таймеры с прерываниями по переполнению.

посмотрел в сторону STM32F103VET6, по всем параметрам удовлетворяет но слишком мало ОЗУ

уже запутался незнаю что выбрать.

 

что такое осетра ?

у иксмеги именно внутренний ЦАП шумит!

работа EBI сильно влияет на ЦАП...

 

 

 

вот это было бы идеальным вариантом

если бы на борту было хотя бы 8МБ ОЗУ

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

интересно с какой скоростью на этой платформе будет работать SD карта памяти,

если достаточно быстро то необходимость SDRAM отпадет

Изменено пользователем bekor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку

value=value*percent/100;

(расчет процента целого двухбайтного числа)

а то очень много процессора жрет и на остальных вычислениях просто не остается процессора!

если это возможно то переходить на другую платформу неприйдется ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку

Для достижения максимальной эффективности оптимизируют не строчки, а алгоритмы. При вычислениях думают не только о разделить-умножить, но и о необходимо-достаточной точности вычислений.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме того, никто не отменял табличных вычислений.

Деление иногда можно без особых сложностей заменить умножением. Очень помогает, если есть аппаратный умножитель как в старших MSP430.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но и о необходимо-достаточной точности вычислений.

так у меня же целые числа а не float,

о какой точности идет речь не понимаю

 

Кроме того, никто не отменял табличных вычислений.

а этот метод можно применять для вычисления процента ?

если можно по подробнее пожалуйста.

 

 

 

я так понимаю для этого нужно заранее вычислить все возможные варианты

и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ?

тогда для вычисления процента типа char понадобится 25КБайт массива в озу :wacko:

 

я правильно понял ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а этот метод можно применять для вычисления процента ?

если можно по подробнее пожалуйста.

я так понимаю для этого нужно заранее вычислить все возможные варианты

и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ?

тогда для вычисления процента типа char понадобится 25КБайт массива в озу :wacko:

Можно и так - в лоб.

Сначала нужно прояснить для себя необходимую точность вычислений, как верно заметил zltigo. И определиться с диапазоном входных значений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку

Код

value=value*percent/100;

 

Я, конечно, погрешу против правил, но скажу так

value=(((unsigned long)value*655UL)*(unsigned long)percent)>>16;

 

Ну и оптимизацию по скорости неплохо было бы включить в проекте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

деление на 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.

Изменено пользователем proba

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробовал выполнять деление сдвигами

немношко смягчило ситуацию но всеже не то,

а вот табличный метод это чтото!

реально снял с ЦПУ много нагрузки :rolleyes:

спасибо HARMHARM-у за подсказку...

ща пытаюсь еще и с остальным кодом пошаманить,

оптимизировать где только возможно,

может чего и выйдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...