roboforum.ru

Технический форум по робототехнике.

Сигнал заданной частоты с помощью ШИМ на ATtiny2313

Сигнал заданной частоты с помощью ШИМ на ATtiny2313

Nex » 17 окт 2008, 14:36

Всем доброго времени суток.
Недавно заинтересовался микроконтроллерами, после того, что увидел на instructables.com. (В нескольких статьях были очень простые, но интересные роботы)
Разбираюсь уже около недели, получилось спаять программатор "5 проводков", прошить программу "мигающий светодиод".

Мой МК - ATtiny2313.
Пытаюсь сделать генерацию сигнала, чтобы 1 и 0 "менялись" на ножке с заданной частотой, с помощью таймера в режиме ШИМ. Не получается.
Читал даташит, облазил кучу ресурсов в интернете - везде примеры либо на другой МК(или на языке ASM, или под другой компилятор), либо описано, как менять длину "импульса" на опр. частоте. Просмотрел все темы в этом разделе, решения не нашёл.
Даташит написан по-английски, и не могу разобраться, какие биты в какой регистр нужно записать, чтобы всё заработало.

Пользуюсь WinAVR, пишу на C.
Приведите, пожалуйста, пример кода, как это можно сделать.

Re: Сигнал заданной частоты с помощью ШИМ на ATtiny2313

avr123.nm.ru » 17 окт 2008, 14:42

Вот недавно решали этот впрос - скриншоты мастеров настройки параметров ШИМ
http://www.radiokot.ru/forum/viewtopic. ... c&start=20

Как делать ШИМ на AVR
http://www.avr123.nm.ru/z8.htm

Русский даташит на AVR
http://www.avr123.nm.ru/02.htm

Re: Сигнал заданной частоты с помощью ШИМ на ATtiny2313

Nex » 17 окт 2008, 15:11

avr123.nm.ru писал(а):Вот недавно решали этот впрос - скриншоты мастеров настройки параметров ШИМ
http://www.radiokot.ru/forum/viewtopic. ... c&start=20

Спасибо! Здесь есть нужный пример, правда, он на ассемблере, а мне бы хотелось на C, но я попробую разобраться.

avr123.nm.ru писал(а):Как делать ШИМ на AVR
http://www.avr123.nm.ru/z8.htm

Там код приведён для другого МК, да и CodeVision ставить не хочу, меня WinAVR устраивает.

avr123.nm.ru писал(а):Русский даташит на AVR
http://www.avr123.nm.ru/02.htm

А это даташит? Совсем непохоже. И про ШИМ в ATtiny2313 не написано.

Re: Сигнал заданной частоты с помощью ШИМ на ATtiny2313

avr123.nm.ru » 17 окт 2008, 15:49

Nex писал(а):
avr123.nm.ru писал(а):Как делать ШИМ на AVR
http://www.avr123.nm.ru/z8.htm

Там код приведён для другого МК, да и CodeVision ставить не хочу, меня WinAVR устраивает.

И вы КОНЕЧНО не догадываетесь что в мастере можно указать НУЖНЫЙ МК ?! Да ???


Nex писал(а):
avr123.nm.ru писал(а):Русский даташит на AVR
http://www.avr123.nm.ru/02.htm

А это даташит? Совсем непохоже.


А если ПРИСМОТРЕТЬСЯ ??? Вроде похоже :

Изображение

Re: Сигнал заданной частоты с помощью ШИМ на ATtiny2313

Nex » 17 окт 2008, 16:51

И вы КОНЕЧНО не догадываетесь что в мастере можно указать НУЖНЫЙ МК ?! Да ???

Не знаю про мастеры, CodeVision ставить не буду.

А если ПРИСМОТРЕТЬСЯ ??? Вроде похоже :

Хорошо, если присмотреться, то уже более похоже. Только здесь нет про ATtiny2313.

P.S. Ты не обижайся, ты мне здорово помог указав на топик с примером на асме, и спасибо большое.

Скоро сяду разбираться с исходником - если ничего не выйдет, буду опять вопросы задавать, если всё заработает - выложу здесь работающий код, для других новичков. Никто не против?

Re: Сигнал заданной частоты с помощью ШИМ на ATtiny2313

Nex » 19 окт 2008, 12:58

Итак, я перевёл тот исходник с асма на C - ура, он работает!

Регулируем частоту ШИМ изменением верхней границы счета таймера на ATtiny2313, взято отсюда:
http://www.radiokot.ru/forum/viewtopic. ... 085#134085
Исходник на ассемблере:
pwm_f_asm.txt
(4.37 КиБ) Скачиваний: 501

(Расширение поменяйте сами, здесь почему-то нельзя залить файл с расширением .asm)

Почти всё то же самое, уже на C для WinAVR:
PWM_Beeper.c
(1.39 КиБ) Скачиваний: 640

Подключив PC Speaker минусом на GND, плюсом на PD5, динамик стал весело посвистывать!

Re: Сигнал заданной частоты с помощью ШИМ на ATtiny2313

avr123.nm.ru » 19 окт 2008, 13:53

Nex писал(а):Подключив PC Speaker минусом на GND, плюсом на PD5, динамик стал весело посвистывать!

Это можно сделать виртуально в PROTEUS


Rambler\'s Top100 Mail.ru counter