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

 
 
> Подскажите как увеличить скорость контроллера или оптимизировать код, чтение с ацп ads1255
messenger
сообщение Aug 15 2009, 10:58
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 361
Регистрация: 23-03-07
Пользователь №: 26 457



Задача читать с АЦП ads1255 результаты преобразования. Что бы не уходить в сторону спрошу кратко

вот пример кода в котором ATМеga16 работающая на 16 Мгц читает в цикле 8 бит (т.к. ацп 24 битное читаю 3 раза далее свожу в переменную типа unsigned long т.к. если читать сразу в unsigned long все биты исполнение в4-5 раз длиннее см.ниже)

cod_1 типа unsigned char

for (Col_Bit=0;Col_Bit<8;Col_Bit++) //
{
PORTB SET_B(0);#asm("NOP"); //ставим клок

if(PINB.2 == 1) //если пришла 1 ка то
{
cod_1=cod_1<<1;//сдвинет
cod_1 |= 1<<0; //запишет 1 в 0 бит

} //if
else
{
cod_1=cod_1<<1;
cod_1 &= ~(1<<0);//запишет 0 в 0 бит

}; //else

так вот при таком алгоритме на формирование 1ки "клока" уходит приблизительно 500 нс.
Мне нужно ровно в два раза меньше.
Контроллеров серии AVR работающих на частоте более 16 МГц я не нашел.
Подскажите как быть(как я понял все время ест IF)? Переходить на другой контроллер или можно как то оптимизировать код?

Сообщение отредактировал messenger - Aug 15 2009, 11:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aesok
сообщение Aug 15 2009, 11:24
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(messenger @ Aug 15 2009, 14:58) *
Что бы не уходить в сторону спрошу кратко


Кратко задают вопросы на форумах где общаються телепаты, а здесь не стесняйтесь давать больше информации.

Тип контроллера.
Название компилятора и уровень опримизации.
Прочему нет возможности использовать SPI порт.
Ассемблерный листинг этого участка кода.

Анатолий.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- messenger   Подскажите как увеличить скорость контроллера или оптимизировать код   Aug 15 2009, 10:58
- - messenger   Тип контроллера. atmega16 Название компилятора ...   Aug 15 2009, 11:38
|- - Dog Pawlowa   Цитата(messenger @ Aug 15 2009, 14:38) Пр...   Aug 15 2009, 13:28
- - DpInRock   ЦитатаМне нужно ровно в два раза меньше. А зачем?   Aug 15 2009, 13:15
- - =AK=   Цитата(messenger @ Aug 15 2009, 20:28) Мн...   Aug 15 2009, 13:34
- - messenger   нужно в 2 раза меньше...пр такое скорости возможно...   Aug 15 2009, 13:45
|- - Dog Pawlowa   Цитата(messenger @ Aug 15 2009, 16:45) Ка...   Aug 15 2009, 13:54
||- - messenger   Цитата(Dog Pawlowa @ Aug 15 2009, 16:54) ...   Aug 15 2009, 14:09
||- - Dog Pawlowa   Цитата(messenger @ Aug 15 2009, 17:09) Сп...   Aug 15 2009, 17:14
|- - x736C   Цитата(messenger @ Aug 15 2009, 17:45) Ус...   Aug 15 2009, 14:20
- - DpInRock   ЦитатаSPI контроллера не сможет обеспечить требуем...   Aug 15 2009, 14:23
- - defunct   Цитата(messenger @ Aug 15 2009, 13:58) Ко...   Aug 15 2009, 14:50
- - ReAl   Код if(PINB.2 == 1) //если пришла 1 ка то...   Aug 15 2009, 16:45
- - messenger   Спасибо всем за ответы! Буду побовать работат ...   Aug 16 2009, 06:16
- - Xenia   Код, предложенный ReAl, можно сделать быстрее, есл...   Aug 16 2009, 08:03
|- - ReAl   Цитата(Xenia @ Aug 16 2009, 11:03) Код, п...   Aug 16 2009, 08:29
- - messenger   Еще раз всем Спасибо за ответы! Я сегодян попр...   Aug 17 2009, 19:36


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:52
Рейтинг@Mail.ru


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