Показать сообщение отдельно
Старый 09.06.2009, 07:30   #195   
Форумец
 
Сообщений: 1,532
Регистрация: 19.02.2009
Возраст: 54
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от EXPRESS Посмотреть сообщение
Можно ли сделать прогу из математических операций на пике? Сможет ли такая система строить графику на графическом жк дисплее, используя для вычисления координат математические функции? Придется писать математический аппарат для контроллера. Что в него встроено для таких задач и от чего можно оттолкнуться.
1. Конечно можно.
2. Именно так и делают. Математические алгоритмы адаптированные для вычислительных систем давно известны, их нужно только адаптировать под конкретный контроллер. Вот один из примеров рисования окружности для графического ЖКИ
Код:
void GLCD_Circle(unsigned int cx, unsigned int cy ,unsigned int radius)
{
int x, y, xchange, ychange, radiusError;
x = radius;
y = 0;
xchange = 1 - 2 * radius;
ychange = 1;
radiusError = 0;
while(x >= y)
{
GLCD_SetPixel(cx+x, cy+y, color);
GLCD_SetPixel(cx-x, cy+y, color);
GLCD_SetPixel(cx-x, cy-y, color);
GLCD_SetPixel(cx+x, cy-y, color);
GLCD_SetPixel(cx+y, cy+x, color);
GLCD_SetPixel(cx-y, cy+x, color);
GLCD_SetPixel(cx-y, cy-x, color);
GLCD_SetPixel(cx+y, cy-x, color);
y++;
radiusError += ychange;
ychange += 2;
if ( 2*radiusError + xchange > 0 )
{
x--;
radiusError += xchange;
xchange += 2;
}
}
}
Как видно никаких возведений в квадрат, самая ресурсоемкая операция - умножение, для таких операций в PIC имеются (не во всех) аппаратные умножители (8х8, 16х16). А там где требуется много вычислений при высокой скорости, как уже сказано выше, применяют МК с ядром DSP. И еще, так как язык Си практически дефакто для разработки сложных встраиваемых систем, то разработчики идут по пути подгонки архитектур и систем команд МК под работу на Си.
  Ответить с цитированием