|
Генератор sin, mega8 |
|
|
|
Jul 24 2009, 15:01
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 16-07-09
Пользователь №: 51 316

|
Решил сделать генератор синусоиды на меге8. Я так понял, надо сделать ШИМ, а потом поставить RC-цепочку. Подскажите, правильно ли это и какие могут быть тогда параметры R и C. СУВ
|
|
|
|
|
 |
Ответов
|
Jan 30 2010, 11:26
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(KaMa3eR @ Jan 29 2010, 20:25)  оч нужно сгородить ген ему уже до лампы или не.. ??? На этом форуме принят более литературный вариант русского языка. Старайтесь придерживаться его, иначе вам просто не будут отвечать. Код #include "avr/io.h" #include "avr/pgmspace.h" #include "avr/interrrupts.h"
uint8_t const PROGMEM Table[65] = // Таблица значений синуса от 0 до Пи/2 включительно. Диапазон значений от 0x80 до 0xFF { ..... };
uint16_t Phase; // 8.8 fixed point uint16_t Phase_delta; // 8.8 fixed point
static uint8_t get_sinus() { Table_index = (Phase >> 8) & 0x3F; if(Phase & (1<<14)) Table_index = 64 - Table_index; uint8_t Result = pgm_read_byte(&Table[Table_index]); if(Phase & (1<<15)) Result = 0x80 - Result; Phase += Phase_delta; return Result; }
ISR(TIMER2_COMP_vect) { OCR2 = get_sinus(); }
int main() { // Fast PWM, T2CLK = F_CPU/32 TCCR2 = (0<<FOC2)|(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(1<<CS21)|(1<<CS20); TIMSK = (1<<OCIE2);
Phase_delta = 1234;
sei(); for(;;) { }
} Это идея реализации. Как рассчитать приращение фазы и какой предделитель таймера вам лучше подойдет - разберитесь сами.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 30 2010, 20:01
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 13-11-09
Из: Украина Шостка
Пользователь №: 53 609

|
за конструктивную критику спасибо , учту, а за подсказку двойной СПАСИБО суть движения уловил, только маленькое уточнение Phase_delta равен величине предыдущего импульса или фиксированная величина uint16_t Phase; // 8.8 fixed point uint16_t Phase_delta; // 8.8 fixed point
далее по тексту программы
|
|
|
|
Сообщений в этой теме
Alf162 Генератор sin Jul 24 2009, 15:01 rezident Параметры RC зависят от частоты ШИМ. Критерий выбо... Jul 24 2009, 15:41 Vishv Ну вольному воля, но только учтите. что для того, ... Jul 24 2009, 15:48 stells Цитата(Vishv @ Jul 24 2009, 19:48) Ну вол... Jul 24 2009, 15:58  Vishv Цитата(stells @ Jul 24 2009, 21:58) все з... Jul 24 2009, 16:15   Herz Цитата(Vishv @ Jul 24 2009, 18:15) Тут Вы... Jul 25 2009, 10:51    Vishv Цитата(Herz @ Jul 25 2009, 16:51) Это как... Jul 25 2009, 11:13     Herz Цитата(Vishv @ Jul 25 2009, 13:13) Ну бе... Jul 25 2009, 11:41      stells Цитата(Herz @ Jul 25 2009, 15:41) А ШИМ т... Jul 25 2009, 11:46       Herz Цитата(stells @ Jul 25 2009, 13:46) ШИМ -... Jul 25 2009, 12:09        stells Цитата(Herz @ Jul 25 2009, 16:09) Тут как... Jul 25 2009, 12:16 Microwatt Не, не понимаю я этих гугенотов.... Мега, ШИМ, ЦАП... Jul 25 2009, 13:23 stells Цитата(Microwatt @ Jul 25 2009, 17:23) Дв... Jul 25 2009, 13:26 Vishv Цитата(Microwatt @ Jul 25 2009, 19:23) Не... Jul 25 2009, 13:36  Wano Всё же если без пантов, так как раздел "В пом... Jul 25 2009, 22:13   Vishv Цитата(Wano @ Jul 26 2009, 04:13) Всё же ... Jul 26 2009, 05:52    Wano Цитата(Vishv @ Jul 26 2009, 08:52) Все за... Jul 26 2009, 09:39     Ledmaster Любопытно, человек вбросил тему, но участвовать в ... Jul 26 2009, 10:49      Microwatt Цитата(Ledmaster @ Jul 26 2009, 13:49) Во... Jul 26 2009, 11:07       Wano Цитата(Microwatt @ Jul 26 2009, 14:07) Вы... Jul 26 2009, 11:55       Ledmaster Цитата(Microwatt @ Jul 26 2009, 17:07) Вы... Jul 26 2009, 19:44        muravei Все давно придумано.
ПС Уже грузил это файл, но н... Jul 28 2009, 18:35 DpInRock Ну, госпидя.
НУ, Атмел старается, аппликейшины пиш... Jul 25 2009, 22:28 Wano Цитата(DpInRock @ Jul 26 2009, 01:28) НУ,... Jul 25 2009, 23:00 Microwatt Угу, простенькая такая схема выходного дня. Не то,... Jul 28 2009, 20:01 Herz ПЛИС бы ещё... Да и фильтры просто примитивные как... Jul 28 2009, 20:09 Microwatt Интересно, а кто, кроме автора схемы вообще знает ... Jul 28 2009, 20:41 muravei Цитата(Microwatt @ Jul 29 2009, 00:41) Ве... Jul 29 2009, 06:34 rx3apf Цитата(Microwatt @ Jul 29 2009, 00:41) Ин... Jul 29 2009, 10:54  Microwatt Цитата(rx3apf @ Jul 29 2009, 13:54) Все, ... Jul 29 2009, 11:20   rx3apf Цитата(Microwatt @ Jul 29 2009, 15:20) ... Jul 29 2009, 11:26    Microwatt Цитата(rx3apf @ Jul 29 2009, 14:26) А что... Jul 29 2009, 14:08     rx3apf Цитата(Microwatt @ Jul 29 2009, 18:08) Та... Jul 29 2009, 14:22   muravei Цитата(Microwatt @ Jul 29 2009, 15:20) Да... Jul 29 2009, 11:48    rezident Цитата(muravei @ Jul 29 2009, 17:48) В ге... Jul 29 2009, 12:13     muravei Цитата(rezident @ Jul 29 2009, 16:13) Не ... Jul 29 2009, 12:31      rezident Цитата(muravei @ Jul 29 2009, 18:31) А ка... Jul 29 2009, 14:31       muravei Цитата(rezident @ Jul 29 2009, 18:31) Вых... Jul 29 2009, 17:46        rezident Цитата(muravei @ Jul 29 2009, 23:46) Выхо... Jul 29 2009, 18:06         Microwatt Цитата(rezident @ Jul 29 2009, 21:06) А к... Jul 29 2009, 20:13          rezident Цитата(Microwatt @ Jul 30 2009, 02:13) Я ... Jul 30 2009, 10:42           Сергей Борщ Цитата(rezident @ Jul 30 2009, 13:42) Т.к... Jul 30 2009, 19:44            rezident Цитата(Сергей Борщ @ Jul 31 2009, 01:44) ... Jul 30 2009, 20:44             Сергей Борщ Цитата(rezident @ Jul 30 2009, 23:44) Для... Jul 31 2009, 00:26 Microwatt То-есть, частота среза равна наивысшей синтезируем... Jul 29 2009, 16:27 rx3apf Цитата(Microwatt @ Jul 29 2009, 20:27) То... Jul 29 2009, 16:42 rezident Цитата(Microwatt @ Jul 29 2009, 22:27) То... Jul 29 2009, 16:44 Microwatt Да, в целочисленной арифметике, наверное, это неид... Jul 30 2009, 17:19 Microwatt Впору Райкина вспоминать: "Столько образовани... Jul 30 2009, 20:43 KaMa3eR Вери биг сенкс всем учавствовавшим, темка то что ... Jan 29 2010, 18:25 _Pasha Цитата(KaMa3eR @ Jan 29 2010, 21:25) нужн... Jan 30 2010, 02:10  KaMa3eR по 1 Гц если можно....
ткните еще носом в заполне... Jan 30 2010, 09:27 KaMa3eR Снова возник вопрос как рассчитать заполнение и ре... Feb 14 2010, 10:20 KaMa3eR ну вот не прошло и несколько лет как практически г... Jun 26 2011, 18:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|