пищалка на ATmega8
в народе говорят одна голова хорошо а две лучше, кто может предложить какие-либо вариантьы чтобы сделать пищалку на данном МК ? подскажите пожалуйста ученику 
Tell Me The Truth
- Реклама
- Сообщения: 271
- Зарегистрирован: Чт апр 01, 2010 14:14:55
на данном контроллере можно сделать даже wave плеер, или даже mp3 плеер если докупить mp3 декодер vs.....а пищалку можно сделать любую какую только захочется, какая именно пищалка нужна? какая задача?
имеется обычный buzzer без генератора, нужно сделать писк типа пи-пи....., пи-пи....., пи-пи....,
на первом этапе я хочу сделать монотонный писк, без прерываний
как сие сделать ?
на первом этапе я хочу сделать монотонный писк, без прерываний
как сие сделать ?
Tell Me The Truth
Дёргать ногой, как же ещё?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
На вкус и цвет.
Вот генератор, можешь послушать
Вот генератор, можешь послушать
- Вложения
-
- gen.zip
- (27.74 КБ) 1129 скачиваний
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
#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);
}
}
2,5 Гц?s_black писал(а):_delay_ms(200);
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Gudd-Head, спасибо, интерестная штука
s_black, мне желательно бы для данных целей заюзать таймер Т0 или Т1
Т2 уже занят
я делаю пищалку для звонка в часах
s_black, мне желательно бы для данных целей заюзать таймер Т0 или Т1
Т2 уже занят
я делаю пищалку для звонка в часах
Tell Me The Truth
Какая марка пищалки?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
на ней ничего не написано, возле ножек стоят знаки + и -
я её выдрал со старого импортного телефона
я её выдрал со старого импортного телефона
Tell Me The Truth
Точно она от постоянки не пищит?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 271
- Зарегистрирован: Чт апр 01, 2010 14:14:55
ну так на таймере очень просто, настройте прерывание таймера с неким периодом, и в прерывании инвертируйте состояние ножки, будет пищать будет пищать с частотой в два раза меньше чем частота прерывания таймера...
PORTB ^= 0b00000100 - например 3 ножна порта B 9(код прерывания)
PORTB ^= 0b00000100 - например 3 ножна порта B 9(код прерывания)
- Сообщения: 336
- Зарегистрирован: Пн май 23, 2011 18:27:41
По моему за год можно было что нибудь придумать самому
Я даже подсказывал и книжку давал, где почитать, не ужели трудно, включаеш в таймере 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
А почему в топку Мегу?
Вопрос наверно в эту тему, а как расчитывать частату, с которой будет изменятся из единицы в ноль и наоборот ножка МК. Реализация через таймер с прерыванием. Как мне расчитать частоту в 36 кГц через таймер Т1? Использую ATmega8 с кварцевым резонатором на 8мГц.
Вопрос наверно в эту тему, а как расчитывать частату, с которой будет изменятся из единицы в ноль и наоборот ножка МК. Реализация через таймер с прерыванием. Как мне расчитать частоту в 36 кГц через таймер Т1? Использую ATmega8 с кварцевым резонатором на 8мГц.
Кот должен прожить жизнь без сожаления.
- Сообщения: 336
- Зарегистрирован: Пн май 23, 2011 18:27:41
8000000/36000/2-1=110.1 = 0x006E
8000000/2*1(1+110) = 36036 Гц
только это без прерывания, на такой частоте прерывания фтопку
Код: Выделить всё
TCCR1A=0x40;
TCCR1B=0x09;
OCR1AH=0x00;
OCR1AL=0x6E;только это без прерывания, на такой частоте прерывания фтопку
- Сообщения: 271
- Зарегистрирован: Чт апр 01, 2010 14:14:55
Друзья, к сожалению мы не можем услышать звуковые колебания на такой частоте - 36036 Гц... это уже ультра звук....
для пищалки 1000 Гц, больше уже не приятно для уха, режит слух
для пищалки 1000 Гц, больше уже не приятно для уха, режит слух
ну вот, сварганил код для частоты в 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


