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

 
 
> Злой код
uragan90
сообщение Dec 2 2013, 16:02
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 2-02-09
Из: Тверь
Пользователь №: 44 309



Здравствуйте уважаемые!
Написал такой вот код в keil 4.73
А он не компилируется не в какую, где может быть косяк???

Код
#include <math.h>

unsigned int Massine[8000];

typedef union{
int ch1_ch2;
char ch[2];    
}chn;

void  sinetest(void)
{    
    float ampvol_ch1  = 65;  
    float period_ch1   = 20;
//-----------------------------------------
    float ampvol_ch2  = 45;  
    float period_ch2   = 30;  
//-----------------------------------------  
    float pi   = 3.14;
    int index  = 8000;
    int i      = 0;
//-----------------------------------------
    chn channel;
    
      for(i=0; i<index; i++)
    {
            
      channel.ch[0] = 128 + (ampvol_ch1*sin(i*pi*period_ch1));  
      channel.ch[1] = 128 + (ampvol_ch2*sin(i*pi*period_ch2));
      Massine[i]      = channel.ch1_ch2;             
    }
}


Интересует правильность синтексиса!
А то я в майне вызываю эту функцию чтоб она заполнила массив, а код не компилируется!
Но ведь с виду ошибок не вижу
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
uragan90
сообщение Dec 3 2013, 13:50
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 2-02-09
Из: Тверь
Пользователь №: 44 309



Написал для теста в Dev-C++ код который бы должен был по идеи вывести значения в отдельный файл txt
Но не прокатывает
В файл пишется ерунда всякая, но не то что ожидалось...

Код
#include <iostream>  
#include <fstream>
#include <math.h>

using namespace std;

typedef union {
    unsigned short data;
    struct {
        unsigned char left;
        unsigned char right;
    } chan;
} stereo_sample_t;

struct sine_param {
    float amp_vol;
    float period;
};

static unsigned char get_sine_sample(const struct sine_param *p, int i) {
    return 128u + (unsigned char)(p->amp_vol * sin(M_PI * p->period * i));
}

static int sine_test(stereo_sample_t buf[], int num_samples) {
      
    struct sine_param left_ch = {65, 20};
    struct sine_param right_ch = {45, 30};
    int i;

    for(i = 0; i < num_samples; i++) {
        buf[i].chan.left = get_sine_sample(&left_ch, i);
        buf[i].chan.right = get_sine_sample(&right_ch, i);
              
    }
}


int main(void) {  
  
ofstream File1;
File1.open("C:/MasCH1.txt");

stereo_sample_t Massine[8000] = {0};
sine_test(Massine, sizeof(Massine) / sizeof(Massine[0]));
        
for(int i = 0; i < sizeof(Massine) / sizeof(Massine[0]); i++)   {
        
    File1 << Massine[i].data << endl;
    }                          

File1.close();
}
Go to the top of the page
 
+Quote Post
winipuh
сообщение Dec 3 2013, 15:49
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189



Цитата(uragan90 @ Dec 3 2013, 17:50) *
В файл пишется ерунда всякая, но не то что ожидалось...
А что именно Вы ожидали? Тут телепатов нет sm.gif

Для начала
Цитата
ampvol_ch1*sin(i*pi*period_ch1)

1) Есть понятие кол-во отсчетов в секунду — SampleRate (1/SampleRate — это интервал дискретизации)
2) Есть частота генерируемого синуса — Frequency (1/Frequency — это период синуса)
Итого — i-ый отсчет синуса выражается так: A * sin(2 * PI * Freq * i / SampleRate)

Дело за малым:
1) Перевести эту формулу в С/С++
2) Подумать/подправить структуры данных, функции и т.д. (чтобы не засрать исходник)...
laughing.gif

Сообщение отредактировал winipuh - Dec 3 2013, 15:50
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- uragan90   Злой код   Dec 2 2013, 16:02
- - toweroff   Что за ошибка? Компиляции, сборки?   Dec 2 2013, 16:05
- - uragan90   Пишет что не нравится ему что float с int мешаю ил...   Dec 2 2013, 16:08
|- - andron86   Цитата(uragan90 @ Dec 2 2013, 17:08) Пише...   Dec 2 2013, 16:13
- - uragan90   От этой ошибки удалось иавится! Теперь ругаетс...   Dec 2 2013, 16:59
|- - winipuh   Цитата(uragan90 @ Dec 2 2013, 20:59) Тепе...   Dec 2 2013, 17:29
|- - uragan90   Спасибо!!! Ну может и перемудрил конеч...   Dec 2 2013, 18:17
- - uragan90   winipuh Спасибо вам огромное!!!   Dec 3 2013, 12:39
- - uragan90   Понемемаете мне нужна функция тестовая которая в м...   Dec 3 2013, 16:11
|- - winipuh   Без обид, но... Вам сколько лет? Цитата(uragan9...   Dec 3 2013, 16:24
|- - uragan90   winipuh Да ничего страшного! Обзывайтесь :-) Я...   Dec 3 2013, 16:57
|- - toweroff   Цитата(winipuh @ Dec 3 2013, 20:24) Без о...   Dec 3 2013, 17:00
- - uragan90   toweroff Во дворе весь день стучат Двое стрижены...   Dec 3 2013, 18:04
- - toweroff   Я задал один вопрос - кто выдал ошибку. На него н...   Dec 3 2013, 20:32


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

 


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


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