roboforum.ru

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


как я учил МК нотам

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

как я учил МК нотам

Сообщение D-M » 02 дек 2006, 20:14

проект for fun
вот всё что у меня получилось (правдо по ламерски) можкому прегодится
Код: Выделить всёРазвернуть
#define BELL PORTC.0
#define C BELL=1; delay_us(3821); BELL=0; delay_us(3821);//нота До   523.3Гц
#define D BELL=1; delay_us(3405); BELL=0; delay_us(3405);//нота Ре   587.3Гц
#define E BELL=1; delay_us(3033); BELL=0; delay_us(3033);//нота Ми   659.3Гц
#define F BELL=1; delay_us(2863); BELL=0; delay_us(2863);//нота Фа   698.5Гц
#define G BELL=1; delay_us(2551); BELL=0; delay_us(2551);//нота Соль 784.0Гц
#define A BELL=1; delay_us(2272); BELL=0; delay_us(2272);//нота Ля   880.0Гц    
#define B BELL=1; delay_us(2024); BELL=0; delay_us(2024);//нота Си   987.8Гц

какие будут идей и предложения? :D
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение avr123.nm.ru » 02 дек 2006, 23:22

числа нужно будет подогнать на время вызова процедур.

удобно в симуляторе VMLAB.nm.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение D-M » 02 дек 2006, 23:29

avr123.nm.ru писал(а):числа нужно будет подогнать на время вызова процедур.

удобно в симуляторе VMLAB.nm.ru


да вроде подгонял ток всё равно есть не большая погрешность

но наслух это не отличить (правда мне мож медведь на ухо наступил :lol:
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение avr123.nm.ru » 02 дек 2006, 23:48

максимально точно можно NOP-ами подогнать.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение D-M » 02 дек 2006, 23:49

это что такое ?
правда точности я не требовал от этого устройства
но всё же интерсно что это такое
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение avr123.nm.ru » 03 дек 2006, 01:16

NOP  - это "но оперейшен"  - АСМ инструкция паузы в 1 такт.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Валерос » 03 дек 2006, 11:15

А где бимоли и диезы? :D
Аватара пользователя
Валерос
 
Сообщения: 364
Зарегистрирован: 30 сен 2006, 19:05
Откуда: Санкт-Петербург

Сообщение D-M » 03 дек 2006, 14:15

avr123.nm.ru писал(а):NOP  - это "но оперейшен"  - АСМ инструкция паузы в 1 такт.


ясно до этого ещё не додумался

А где бимоли и диезы?

уже в разработке :wink:
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение D-M » 03 дек 2006, 16:03

версия 2
Код: Выделить всёРазвернуть
#define BELL PORTC.0
#define n 1//n-номер октавы
#define C BELL=1; delay_us(7643/n); BELL=0; delay_us(7643/n);// нота До        261.65Гц
#define Cd BELL=1; delay_us(7215/n); BELL=0; delay_us(7215/n);//нота До-диез   277.20Гц
#define D BELL=1; delay_us(6810/n); BELL=0; delay_us(6810/n);// нота Ре        293.65Гц
#define Dd BELL=1; delay_us(6427/n); BELL=0; delay_us(6427/n);//нота Ре-диез   311.15Гц
#define E BELL=1; delay_us(6067/n); BELL=0; delay_us(6067/n);// нота Ми        329.65Гц
#define Ed BELL=1; delay_us(5891/n); BELL=0; delay_us(5891/n);//нота Ми-диез   339.45Гц
#define F BELL=1; delay_us(5746/n); BELL=0; delay_us(5746/n);// нота Фа        349.25Гц
#define Fd BELL=1; delay_us(5405/n); BELL=0; delay_us(5405/n);//нота Фа-диез   370.00Гц
#define G BELL=1; delay_us(5102/n); BELL=0; delay_us(5102/n);// нота Соль      392.00Гц
#define Gd BELL=1; delay_us(4815/n); BELL=0; delay_us(4815/n);//нота Соль-диез 415.30Гц
#define A BELL=1; delay_us(4545/n); BELL=0; delay_us(4545/n);// нота Ля        440.00Гц
#define Ad BELL=1; delay_us(4290/n); BELL=0; delay_us(4290/n);//нота Ля-диез   466.15Гц
#define B BELL=1; delay_us(4049/n); BELL=0; delay_us(4049/n);// нота Си        493.90Гц
#define Bd BELL=1; delay_us(3923/n); BELL=0; delay_us(3923/n);//нота Си-диез   508.60Гц


хочу забабахать полифонию
полифония как она устроена ? если кто нибудь знает объясните пожалуйста
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение avr123.nm.ru » 03 дек 2006, 16:05

полифония это одновременное воспроизведение нескольких нот.  лучше использовать спец чип.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение D-M » 03 дек 2006, 16:15

лучше использовать спец чип

какой?

у мя ёще одна идея родилась надо написать библиотеку функции как BEEPt,f (как на спеках)
где t-продолжительность f-нота

правда как это сделать не знаю еще не разу не писал ни каких библиотек
если где ошибся поправте :oops:
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза

Сообщение -= Александр =- » 04 дек 2006, 01:47

Пишешь си-файл с функцией и h-файл с ее описанием. А в программе просто делаешь инклуд этого файла.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение avr123.nm.ru » 04 дек 2006, 10:10

D-M писал(а):как это сделать не знаю еще не разу не писал ни каких библиотек


по образцу существующих библ.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение D-M » 04 дек 2006, 12:44

спасибо буду стараться
Аватара пользователя
D-M
 
Сообщения: 486
Зарегистрирован: 28 мар 2006, 17:28
Откуда: Пенза


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0