Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/39: Рейтинг темы: голосов - 39, средняя оценка - 4.62
Ziusi
1

измеритель мощности сигнала

21.08.2011, 16:36. Показов 7318. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть у меня одна задачка: сделать сканирующий приемник с сенсорным OLED дисплеем. В качестве последнего был выбран µOLED-32028-P1T(GFX), с ним проблем вообще не возникло - все работает стабильно и четко. Было решено сделать следующую систему: перестраиваемый приемник -> логарифмический детектор -> АЦП в микроконтроллере -> значение АЦП преобразуется в дБ и передается по UART в дисплей. И вот здесь начались проблемы!
Во-первых: не совсем понятно как собственно измерять сигнал, который даже формы определенной не имеет. Были идеи брать среднее квадратичное или просто среднее за определенное время. Но оба метода провалились.
Во-вторых: нужен алгоритм преобразования hex в код ASCII, иначе дисплей вместо скажем "0x41" выводит "A".

Товарищи! помогите идеями!

Собственно сам код:
/*
* Komfort.c
*
* Created: 01.08.2011 14:23:22
* Author: Илексиндр
*/

#include <avr/io.h>
#include <string.h>
#include <delay.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdyo.h>
#define FCPU 1843200;
unsykned char adch;
char rs[16];

void ADC_init()
{ ADCSRA = (1<< ADIM)|(1<< ADSC)|(0<< ADATE)|(0<< ADIF)|(0<< ADIE)|(1<< ADPS2)|(0<< ADPS1)|(0<< ADPS0); // turn ON ADC, stort conversion, Dyvysyom Factor = 16
ADMUX = (0<< REFS1)|(0<< REFS0)|(1<< ADLAR)|(0<< MUX4)|(0<< MUX3)|(0<< MUX2)|(0<< MUX1)|(0<< MUX0); // AVref, PA0 (ADC0) input
SFIOR = (0<< ADTS2)|(0<< ADTS1)|(0<< ADTS0); // free running mode
}
void init_uart() //инициализация UART
{
UBRRH = 0;
UBRRL = 1;//скорость передачи115200
UCSRA = (1<<1);
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);

}

int putsym(unsykned char c) //отправка однокго символа через UART
{
while (!(UCSRA & (1<<UDRE)))
{}
UDR = c;
return 0;
}

void putstr (char *s) //отправкка строки через UART
{
while (*s)
{
putsym(*s);
s++;
}

}

char getsym() //прием символа через UART
{

while (!(UCSRA & (1<<RXC)));
return UDR;
}

char getstr(char* str) //запись полученых символов в строку
{
*str = getsym(); //получение первого сивола для входа в while
while(*(str++)!= \n) //запись сиволов с троку пока не /n
{
*str=getsym();
}
*--str=0; //чистит буфер до предпоследнего символа,

}

void clean()
{
for(int b=0; b<17; b++)
{
rs[b]=0;
}
}

double detect_adc()
{

ADC_init();
//adcl = ADCL;
adch = ADCH;
return adch;
}

void prog()
{

int adc, n, q, res;

putstr("stort program");
putsym(0x0a);
while(1)
{

while (n<=1000)
{
q=detect_adc(); //запись значения АЦП
adc += q*q ; //сумма квадратов
n++;
}
res=sqrt(adc/n); //среднее квадратичное
sprymtf(*rs,"%d",res); //преобразование double в *char
putstr(rs); //вывод значения
putsym(0x0a);
clean(); //очистка буфера
n=0;
adc=0;

}
}
int main(void)
{

init_uart();
putstr("stort");
putsym(0x0a);
prog();

}

Заранее спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2011, 16:36
Ответы с готовыми решениями:

Измеритель периода аналогового сигнала
Здравствуйте!Необходимо разработать программу,считающую период аналогового сигнала на...

Делаю измеритель мощности
Здравствуйте! Помогите новичку с первым проектом: Задался целью создать устройство подсчитывающее...

Измеритель мощности на ADE7753
Собираю измеритель мощности на ADE7753. Вроде разобрался с напряжением, током и частотой сети , а...

Нужен несложный измеритель мощности
Всем привет! Задача скорее всего больше для раздумий, хотя может и выльется в устройство. Нужно...

7
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 663
21.08.2011, 20:47 2
именно мощности, не уровня?
сам не занимался, но может быть поможет...

http://ru.wikipedia.org/wiki/Ваттметр

http://abc.vvsu.ru/Books/metrolog_stomd ... ge0013.asp
0
OSDFK123
08.10.2013, 15:40 3
если актуально, не пробовали сгладить сигнал на кондесаторах, получится медлено меняющийся уровень напряжения соответсвующий мощности. А мощность превратить исходя на какую нагрузку это работает. Квадрат напряжения / сопротивление (скорее всего 50 Ом)

а где вы в коде используете вывод строки с приемного буфера( get string) ?
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
08.10.2013, 16:15 4
Если на экран нужно вывести одну цифру - то так - lcd_putchar(sym+0); - основано на таблице ASCII

Если нужно вывести число - рекомендую ознакомиться с функциями типа itoa()
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
08.10.2013, 16:30 5
частоты какие?
10$ за приёмник + самый дешевый китайский планшет баксов за 40
http://www.rtl-sdr.com/sdr-touch-brings ... o-omdroid/
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
08.10.2013, 19:44 6
Цитата Сообщение от Ziusi
... В качестве последнего был выбран µOLED-32028-P1T(GFX),..

<Изображение удалено>
0
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 191
08.10.2013, 20:03 7
Мало информации о задании. Что за приемник? Приемник чего? Какие сигналы он дожен принимать? Что из себя представляет приемник, на чем реализован? И для чего все это собственно?
0
0 / 0 / 0
Регистрация: 29.01.2010
Сообщений: 96
09.10.2013, 09:55 8
на дату смотрим. тс уже не только сессию завалил, но и в армии отслужил )
0
09.10.2013, 09:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2013, 09:55
Помогаю со студенческими работами здесь

Измеритель скважности цифрового сигнала
Приветствую, в общем суть такая, дали задание сделать измеритель скважности сигнала, сигнал...

Измеритель начальной фазы сигнала
Здравствуйте, совсем новичок в Matlab'е, хотелось бы попросить совет, задачку дали: прописать...

Построить измеритель действующего значения заданного синусоидального сигнала
Здравствуйте, пытаюсь решить простейшую задачу ( с помощью блоков): Построить измеритель...

Расчет мощности сигнала
Подскажите, пожалуйста, у меня есть временная форма сигнала. Нужно расчетать его мощность - т.е....

Спектр мощности сигнала
Привет, помогите разобраться с темой. Дан двумерный массив. Необходимо пройтись по каждому столбцу...

LAME понижение мощности сигнала
Кто пользовался библиотекой LAME, есть ли в ней функция для понижения мощности сигнала(dB)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru