пищалка на ATmega8
пищалка на ATmega8
в народе говорят одна голова хорошо а две лучше, кто может предложить какие-либо вариантьы чтобы сделать пищалку на данном МК ? подскажите пожалуйста ученику 
Tell Me The Truth
- Реклама
Re: пищалка на ATmega8
на данном контроллере можно сделать даже wave плеер, или даже mp3 плеер если докупить mp3 декодер vs.....а пищалку можно сделать любую какую только захочется, какая именно пищалка нужна? какая задача?
Re: пищалка на ATmega8
имеется обычный buzzer без генератора, нужно сделать писк типа пи-пи....., пи-пи....., пи-пи....,
на первом этапе я хочу сделать монотонный писк, без прерываний
как сие сделать ?
на первом этапе я хочу сделать монотонный писк, без прерываний
как сие сделать ?
Tell Me The Truth
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пищалка на ATmega8
Дёргать ногой, как же ещё?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пищалка на ATmega8
На вкус и цвет.
Вот генератор, можешь послушать
Вот генератор, можешь послушать
- Вложения
-
- gen.zip
- (27.74 КБ) 1129 скачиваний
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- s_black
- Мучитель микросхем
- Сообщения: 411
- Зарегистрирован: Вс авг 10, 2008 19:35:49
- Откуда: Евпатория
- Контактная информация:
Re: пищалка на ATmega8
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
DDRB |= _BV(PB1);
for(;;)
{
PORTB ^= _BV(PB1);
_delay_ms(200);
}
}
#include <util/delay.h>
int main (void)
{
DDRB |= _BV(PB1);
for(;;)
{
PORTB ^= _BV(PB1);
_delay_ms(200);
}
}
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пищалка на ATmega8
2,5 Гц?s_black писал(а):_delay_ms(200);
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: пищалка на ATmega8
Gudd-Head, спасибо, интерестная штука
s_black, мне желательно бы для данных целей заюзать таймер Т0 или Т1
Т2 уже занят
я делаю пищалку для звонка в часах
s_black, мне желательно бы для данных целей заюзать таймер Т0 или Т1
Т2 уже занят
я делаю пищалку для звонка в часах
Tell Me The Truth
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пищалка на ATmega8
Какая марка пищалки?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: пищалка на ATmega8
на ней ничего не написано, возле ножек стоят знаки + и -
я её выдрал со старого импортного телефона
я её выдрал со старого импортного телефона
Tell Me The Truth
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: пищалка на ATmega8
Точно она от постоянки не пищит?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: пищалка на ATmega8
ну так на таймере очень просто, настройте прерывание таймера с неким периодом, и в прерывании инвертируйте состояние ножки, будет пищать будет пищать с частотой в два раза меньше чем частота прерывания таймера...
PORTB ^= 0b00000100 - например 3 ножна порта B 9(код прерывания)
PORTB ^= 0b00000100 - например 3 ножна порта B 9(код прерывания)
Re: пищалка на ATmega8
По моему за год можно было что нибудь придумать самому
Я даже подсказывал и книжку давал, где почитать, не ужели трудно, включаеш в таймере CTC и на OCxn получаеш частоту
Я даже подсказывал и книжку давал, где почитать, не ужели трудно, включаеш в таймере CTC и на OCxn получаеш частоту
на это GOOGLE переводчик отвечает: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)
советую выкинуть ATmegУ в форточку и забыть это!Для формирования выходного сигнала в режиме CTC, выход OC1A может быть установлен на переключение
логического уровня на каждый матч сравнения, установив Compare бит выходного режима для переключения
режиме (COM1A1: 0 = 1
Re: пищалка на ATmega8
А почему в топку Мегу?
Вопрос наверно в эту тему, а как расчитывать частату, с которой будет изменятся из единицы в ноль и наоборот ножка МК. Реализация через таймер с прерыванием. Как мне расчитать частоту в 36 кГц через таймер Т1? Использую ATmega8 с кварцевым резонатором на 8мГц.
Вопрос наверно в эту тему, а как расчитывать частату, с которой будет изменятся из единицы в ноль и наоборот ножка МК. Реализация через таймер с прерыванием. Как мне расчитать частоту в 36 кГц через таймер Т1? Использую ATmega8 с кварцевым резонатором на 8мГц.
Кот должен прожить жизнь без сожаления.
Re: пищалка на ATmega8
8000000/36000/2-1=110.1 = 0x006E
8000000/2*1(1+110) = 36036 Гц
только это без прерывания, на такой частоте прерывания фтопку
Код: Выделить всё
TCCR1A=0x40;
TCCR1B=0x09;
OCR1AH=0x00;
OCR1AL=0x6E;только это без прерывания, на такой частоте прерывания фтопку
Re: пищалка на ATmega8
Друзья, к сожалению мы не можем услышать звуковые колебания на такой частоте - 36036 Гц... это уже ультра звук....
для пищалки 1000 Гц, больше уже не приятно для уха, режит слух
для пищалки 1000 Гц, больше уже не приятно для уха, режит слух
Re: пищалка на ATmega8
ну вот, сварганил код для частоты в 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


