Синус 31гц на ШИМ на AVR

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
truebest
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср авг 26, 2009 17:04:34
Откуда: СПБ

Синус 31гц на ШИМ на AVR

Сообщение truebest »

Доброй ночи всем, подскажите пожалуйста или дайте исходники примеры точного шима для генерации синуса в 31 гц ну или околотого...
Понимаю код на си
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

Re: Синус 31гц на ШИМ на AVR

Сообщение maglev »

Ну и в чем проблема? Один таймер делает ШИМ, другой неспешно выставляет ему значения OCR из таблицы синуса (лучше хранить четверть синуса). Можно и по-другому, но так проще.
Частота синуса зависит от второго таймера, разрешающая способность определяется первым и таблицей.
truebest
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Ср авг 26, 2009 17:04:34
Откуда: СПБ

Re: Синус 31гц на ШИМ на AVR

Сообщение truebest »

А с кодом никто не поможет, не помню назначение регистров AVR
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Синус 31гц на ШИМ на AVR

Сообщение Engineer_Keen »

truebest писал(а):не помню назначение регистров AVR

А кто их помнит? Для этого даташит есть :idea:
m210
Прорезались зубы
Сообщения: 218
Зарегистрирован: Сб окт 02, 2010 19:06:46
Откуда: Красногорск

Re: Синус 31гц на ШИМ на AVR

Сообщение m210 »

Engineer_Keen писал(а):
truebest писал(а):не помню назначение регистров AVR

А кто их помнит? Для этого даташит есть :idea:

не всегда :) Например задать 1сек нужно путем вычисления, для 8Mhz таймер включается как 7813 вроде и это число нужно перемести в hex, получится 1Е85
Но это видимо не все, я и щас думаю как переделать часы для работы от 32Mhz кварца...стало быть переводишь 32000 в hex и тупа вставляешь значения, а на деле 1сек получается 1милисек если не меньше, бежит с бешенной скоростью, так и не понял как перевести часы на бОльшую частоту :))
Аватара пользователя
AlexFisher
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Вт апр 21, 2009 13:31:27
Откуда: Санкт-Петербург
Контактная информация:

Re: Синус 31гц на ШИМ на AVR

Сообщение AlexFisher »

Ну батенька... а предделитель у таймера включить? По форуму ссылки поищи, попадались проги, которые сразу и предделитель считают и значение таймера.

Собственно, нужно значение предделителя выбрать в 4 раза больше, если это возможно.
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
m210
Прорезались зубы
Сообщения: 218
Зарегистрирован: Сб окт 02, 2010 19:06:46
Откуда: Красногорск

Re: Синус 31гц на ШИМ на AVR

Сообщение m210 »

Да он наверно включен :))

Код: Выделить всё

interrupt [TIM1_COMPA] void timer1_compa_isr(void) // таймер выставлен на частоту 1 Гц
{
// Place your code here
  TCNT1H=0;
  TCNT1L=0;
  sek++; // инкрементируем секунду
   
}
TCCR1B=0x05;
OCR1AH=0x1E;
OCR1AL=0x85;

Все остальные биты таймера 0х00 поэтому их не указывал
Вот впринципе инциализация таймера на 8Мhz, как дальше не знаю, но спасибо за подсказку :)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»