реклама на сайте
подробности

 
 
> Нехватка ресурсов
bekor
сообщение Jan 27 2011, 21:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704



Привет всем
появилась у меня такая вот проблема
делал я один проект на контроллере xmega128a1,
и когда все уже было сделано почти на 90%
то есть все модули и драйвера по отдельности уже готовы и работают
осталось только собрать их вместе, и вдруг выяснилось что
процессор не успевает все это дело делать
короче этот контроллер слабоват для моей задачи,
а ведь проект то надо заканчивать поскорее. Единственный выход из
сложившийся ситуации по моему это переводить проект на другой более мощный контроллер.
Но какой выбрать не знаю, посоветуйте пожалуйста.

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

примерные требования к МК
CPU хотябы 64MHz
штатное подключение SDRAM
16 разрядных таймеров 8штук минимум
аппаратная поддержка SD/HC карт памяти
встроенный ЦАП 10бит
встроенный АЦП 10бит

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

Сообщение отредактировал bekor - Jan 27 2011, 21:42


--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Dog Pawlowa
сообщение Jan 28 2011, 04:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(bekor @ Jan 28 2011, 01:39) *
16 разрядных таймеров 8штук минимум

Непонятное требование, а по всему остальному LPC22XX вроде подходит.
Да, таймеров должно быть больше в LPC29XX.
Короче, ARM7.
Только АЦП / ЦАП на плате c SDRAM будут плохо работать.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
bekor
сообщение Jan 28 2011, 09:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704



Цитата(Dog Pawlowa @ Jan 28 2011, 08:45) *
Непонятное требование

Непонятно что конкретно непонятного
Цитата(Dog Pawlowa @ Jan 28 2011, 08:45) *
а по всему остальному LPC22XX вроде подходит.
Да, таймеров должно быть больше в LPC29XX.
Короче, ARM7.

а к ним легче привыкать ?
Цитата(Dog Pawlowa @ Jan 28 2011, 08:45) *
Только АЦП / ЦАП на плате c SDRAM будут плохо работать.

действительно, при работе с SDRAM сильно шумит ЦАП !
интресно почему это так ?
можно ли этого както избегать ?

Сообщение отредактировал bekor - Jan 28 2011, 09:42


--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 28 2011, 10:27
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(bekor @ Jan 28 2011, 12:40) *
Непонятно что конкретно непонятного

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

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

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

Цитата
действительно, при работе с SDRAM сильно шумит ЦАП !
...
можно ли этого както избегать ?

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
bekor
сообщение Jan 28 2011, 10:59
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704



нет, нужны именно независимые таймеры с прерываниями по переполнению.
посмотрел в сторону STM32F103VET6, по всем параметрам удовлетворяет но слишком мало ОЗУ
уже запутался незнаю что выбрать.

что такое осетра ?
у иксмеги именно внутренний ЦАП шумит!
работа EBI сильно влияет на ЦАП...



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



--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post
skripach
сообщение Jan 28 2011, 13:00
Сообщение #6


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
LPC22XX

Там вроде нет SDRAM. Есть она в каких то Luminary от TI.
В STM32 SDRAM тоже нет.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
bekor
сообщение Jan 28 2011, 13:00
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704



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

Сообщение отредактировал bekor - Jan 28 2011, 13:02


--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post
bekor
сообщение Jan 29 2011, 07:45
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704




скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку
Код
value=value*percent/100;
(расчет процента целого двухбайтного числа)
а то очень много процессора жрет и на остальных вычислениях просто не остается процессора!
если это возможно то переходить на другую платформу неприйдется ...


--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 29 2011, 08:04
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (bekor @ Jan 29 2011, 10:45) *
скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jan 29 2011, 08:13
Сообщение #10


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Кроме того, никто не отменял табличных вычислений.
Деление иногда можно без особых сложностей заменить умножением. Очень помогает, если есть аппаратный умножитель как в старших MSP430.
Go to the top of the page
 
+Quote Post
bekor
сообщение Jan 29 2011, 10:47
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704



Цитата(zltigo @ Jan 29 2011, 12:04) *
но и о необходимо-достаточной точности вычислений.

так у меня же целые числа а не float,
о какой точности идет речь не понимаю

Цитата(HARMHARM @ Jan 29 2011, 12:13) *
Кроме того, никто не отменял табличных вычислений.

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



я так понимаю для этого нужно заранее вычислить все возможные варианты
и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ?
тогда для вычисления процента типа char понадобится 25КБайт массива в озу wacko.gif

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


--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jan 29 2011, 11:48
Сообщение #12


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(bekor @ Jan 29 2011, 12:47) *
а этот метод можно применять для вычисления процента ?
если можно по подробнее пожалуйста.
я так понимаю для этого нужно заранее вычислить все возможные варианты
и записать в двухмерный массив и при необходимости просто выбрать нужное значение из массива ?
тогда для вычисления процента типа char понадобится 25КБайт массива в озу wacko.gif

Можно и так - в лоб.
Сначала нужно прояснить для себя необходимую точность вычислений, как верно заметил zltigo. И определиться с диапазоном входных значений.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jan 29 2011, 13:12
Сообщение #13


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



QUOTE
скажите пожалуйста можно ли как нибудь оптимизировать вот такую строку
Код
value=value*percent/100;


Я, конечно, погрешу против правил, но скажу так
CODE
value=(((unsigned long)value*655UL)*(unsigned long)percent)>>16;


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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
proba
сообщение Jan 30 2011, 12:47
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526



деление на 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 - Jan 30 2011, 13:09
Go to the top of the page
 
+Quote Post
bekor
сообщение Jan 30 2011, 18:31
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 28-06-09
Пользователь №: 50 704



попробовал выполнять деление сдвигами
немношко смягчило ситуацию но всеже не то,
а вот табличный метод это чтото!
реально снял с ЦПУ много нагрузки rolleyes.gif
спасибо HARMHARM-у за подсказку...
ща пытаюсь еще и с остальным кодом пошаманить,
оптимизировать где только возможно,
может чего и выйдет.


--------------------
1 километр = 1024 метр
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01572 секунд с 7
ELECTRONIX ©2004-2016