ATTiny2313 генератор звуковой частоты

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
BLRplex
Родился
Сообщения: 4
Зарегистрирован: Сб сен 10, 2011 20:05:14

ATTiny2313 генератор звуковой частоты

Сообщение BLRplex »

Извините, что ломлюсь с таким вопросом, но уже сил и нервов нет гуглить, везде попадается не то... у меня стоит CV AVR, пишу на Си. мне нужна программка (исходник) для того, чтобы МК генерировал звуковую частоту... допустим, на PORTA. исходник обязательно на Си (на ассемблере нашел прилично, но понять не могу) и, если можно, на какие ноги вешать звукоизлучатель?

спасибо
п.с., модераторы, сильно не бейте меня
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: ATTiny2313 генератор звуковой частоты

Сообщение pyzhman »

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

while(1){
PORTA= 0xFF;
delay_us(скока надо);
PORTA= 0x00;
delay_us(скока надо);
}
А интереснее в прерывании; ты чего-нибудь делаешь, а оно тебе музычку играет. Ляпота.
Звукоизлучатель, если он пьезо, можно вешать прямо на порт, а чтобы громче - на два порта. Если это динамик, то через усилитель, вернее буфер, дабы не запалить порт.
Последний раз редактировалось pyzhman Сб сен 10, 2011 20:27:29, всего редактировалось 1 раз.
Docendo discimus
Реклама
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: ATTiny2313 генератор звуковой частоты

Сообщение Flasher »

какой звукоизлучатель? параметры? схему примерную нарисуй устройства. Какой звук нужен?
BLRplex
Родился
Сообщения: 4
Зарегистрирован: Сб сен 10, 2011 20:05:14

Re: ATTiny2313 генератор звуковой частоты

Сообщение BLRplex »

pyzh_man, я так делал в эмуляторе (Proteus 7), эффекта не было, хотя логика мне именно такой вариант и подсказала. на реальном МК пока не пробовал, был уверен, что эмулятор даст нужный эффект, там использовал Buzzer.

Flasher, стандартный Buzzer в протеусе, один контакт подключен к PA0, другой к GND, настройки Buzzer'а стандартные, вывод на звуковую карту

вот весь код в АВР студио

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

#include <tiny2313a.h>

#define nop() {asm("nop");}
unsigned int x;

void delay_ms(int ms)
{
    for (x = ms; x > 0; x--)
    nop ();
}

main ()
{
    DDRA=0xFF;

    while (1)
    {
        PORTA = 1;     
        delay_ms(10);
        PORTA = 0;
        delay_ms(10);
    }
}

Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: ATTiny2313 генератор звуковой частоты

Сообщение Flasher »

Скорее всего, косяк связан с
void delay_ms(int ms)
{
for (x = ms; x > 0; x--)
nop ();
}
Оптимизатор, при включенный по умолчанию опции максимальной оптимизации по размеру выкинул весь этот код. Рекомендую пользоваться встроенной библиотекой delay.h функцией delay_us(500); Не забудьте правильно выставить частоту в настройках проекта кодвижена и в протеусе.
Реклама
BLRplex
Родился
Сообщения: 4
Зарегистрирован: Сб сен 10, 2011 20:05:14

Re: ATTiny2313 генератор звуковой частоты

Сообщение BLRplex »

о, спасибо, помогло =) но в первую очередь помогла замена Buzzer на Speaker

заработало

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

#include <tiny2313a.h>
#include <delay.h>

main ()
{
    DDRA=0xFF;

    while (1)
    {
        PORTA = 1;     
        delay_us(10);
        PORTA = 0;
        delay_us(10);
    }
}

Реклама
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: ATTiny2313 генератор звуковой частоты

Сообщение Flasher »

2 задержки в 10 мкс дадут частоту в 50 кГц. Верните назад BUZZER и ставьте 500 мкс.
BLRplex
Родился
Сообщения: 4
Зарегистрирован: Сб сен 10, 2011 20:05:14

Re: ATTiny2313 генератор звуковой частоты

Сообщение BLRplex »

беда в том, что Buzzer вообще молчит...
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: ATTiny2313 генератор звуковой частоты

Сообщение Flasher »

Беда в том, что этот недосимулятор чего-то там не позволит нормально отладить проект. Отлаживайте в железе.
Закрыто

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