пищалка на ATmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

в народе говорят одна голова хорошо а две лучше, кто может предложить какие-либо вариантьы чтобы сделать пищалку на данном МК ? подскажите пожалуйста ученику :))
Tell Me The Truth
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 271
Зарегистрирован: Чт апр 01, 2010 14:14:55

Сообщение jordan »

на данном контроллере можно сделать даже wave плеер, или даже mp3 плеер если докупить mp3 декодер vs.....а пищалку можно сделать любую какую только захочется, какая именно пищалка нужна? какая задача?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

имеется обычный buzzer без генератора, нужно сделать писк типа пи-пи....., пи-пи....., пи-пи....,
на первом этапе я хочу сделать монотонный писк, без прерываний
как сие сделать ?
Tell Me The Truth
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Дёргать ногой, как же ещё?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

в качестве основной частоты брать 1кГц ?
Tell Me The Truth
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

На вкус и цвет.
Вот генератор, можешь послушать :)
Вложения
gen.zip
(27.74 КБ) 1129 скачиваний
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 411
Зарегистрирован: Вс авг 10, 2008 19:35:49
Откуда: Евпатория

Сообщение s_black »

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
DDRB |= _BV(PB1);

for(;;)
{
PORTB ^= _BV(PB1);
_delay_ms(200);
}
}
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

s_black писал(а):_delay_ms(200);
2,5 Гц?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

Gudd-Head, спасибо, интерестная штука :))
s_black, мне желательно бы для данных целей заюзать таймер Т0 или Т1
Т2 уже занят
я делаю пищалку для звонка в часах :))
Tell Me The Truth
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Какая марка пищалки?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

на ней ничего не написано, возле ножек стоят знаки + и -
я её выдрал со старого импортного телефона
Tell Me The Truth
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Точно она от постоянки не пищит?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

нет...., подключал и проверял
Tell Me The Truth
Грызет канифоль
Аватара пользователя
Сообщения: 271
Зарегистрирован: Чт апр 01, 2010 14:14:55

Сообщение jordan »

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

PORTB ^= 0b00000100 - например 3 ножна порта B 9(код прерывания)
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Сообщение BVS »

По моему за год можно было что нибудь придумать самому
Я даже подсказывал и книжку давал, где почитать, не ужели трудно, включаеш в таймере CTC и на OCxn получаеш частоту
For generating a waveform output in CTC mode, the OC1A output can be set to toggle
its logical level on each compare match by setting the Compare Output mode bits to toggle
mode (COM1A1:0 = 1)
на это GOOGLE переводчик отвечает:
Для формирования выходного сигнала в режиме CTC, выход OC1A может быть установлен на переключение
логического уровня на каждый матч сравнения, установив Compare бит выходного режима для переключения
режиме (COM1A1: 0 = 1
советую выкинуть ATmegУ в форточку и забыть это!
Встал на лапы
Аватара пользователя
Сообщения: 116
Зарегистрирован: Чт май 03, 2012 06:27:23
Откуда: Челябинск

Сообщение DruidCat »

А почему в топку Мегу?
Вопрос наверно в эту тему, а как расчитывать частату, с которой будет изменятся из единицы в ноль и наоборот ножка МК. Реализация через таймер с прерыванием. Как мне расчитать частоту в 36 кГц через таймер Т1? Использую ATmega8 с кварцевым резонатором на 8мГц.
Кот должен прожить жизнь без сожаления.
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Сообщение BVS »

8000000/36000/2-1=110.1 = 0x006E

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

TCCR1A=0x40;
TCCR1B=0x09;

OCR1AH=0x00;
OCR1AL=0x6E;
8000000/2*1(1+110) = 36036 Гц
только это без прерывания, на такой частоте прерывания фтопку
Встал на лапы
Аватара пользователя
Сообщения: 116
Зарегистрирован: Чт май 03, 2012 06:27:23
Откуда: Челябинск

Сообщение DruidCat »

Спасибо многоуважаемый кот. :beer:
Кот должен прожить жизнь без сожаления.
Грызет канифоль
Аватара пользователя
Сообщения: 271
Зарегистрирован: Чт апр 01, 2010 14:14:55

Сообщение jordan »

Друзья, к сожалению мы не можем услышать звуковые колебания на такой частоте - 36036 Гц... это уже ультра звук....

для пищалки 1000 Гц, больше уже не приятно для уха, режит слух :shock:
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

ну вот, сварганил код для частоты в 1 кГц

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

#include <mega8.h>
#include <delay.h>

void main(void)
{
PORTC=0x00;
DDRC=0x7F;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

while (1)
      {
       PORTC|=(1<<1);
       delay_us(500);
       PORTC&=~(1<<1);
       delay_us(500);

      };
}
как теперь сделать чтобы пыщалка пол минуты пищала а пол молчала ?
завести счетчик который подсчитывает время ?
Tell Me The Truth
Ответить

Вернуться в «AVR»