Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вот вариант(+)

Отправлено Quasy 21 января 2009 г. 14:42
В ответ на: И не надо каждый раз суммировать 16 штук. Можно (+) отправлено пользователем Quasy 21 января 2009 г. 13:43


#define SIZE_BUFFER (16)
unsigned int measuring_value_buf[ SIZE_BUFFER + 1 ];
unsigned int sum = 0;
unsigned char index = 0;
unsigned int Oversampling( unsigned int measuring_value )
{
measuring_value_buf[ index ] = measuring_value;
sum += measuring_value;
index++;
if( index > SIZE_BUFFER )
index = 0;
if( sum >= measuring_value_buf[ index ] )
sum -= measuring_value_buf[ index ];
else
sum = 0;
return (unsigned int)(sum >> 2);
}
//////////////////
C_task main( void )
{
unsigned char q;
for(q=0; q<20; q++ )
printf("%d %d\n", q,Oversampling( 100 )); //UP
for(q=0; q<20; q++ )
printf("%d %d\n", q,Oversampling( 0 )); // DOWN
}



Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите шесть пополам:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru