|
|
Своими руками Завершенные и текущие проекты, хард & софт |
|
Опции темы | Опции просмотра |
17.12.2008, 18:21 | #1 |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
RTOS для начинающих: музыка на ПИКе
Набросал небольшой пример использования RTOS OSA для синтезирования 4-канальной мелодии на PIC16F628A:
http://wiki.pic24.ru/doku.php/osa/ref/appendix/quartet Программа состоит из 5 задач: "дирижера" и четырех "музыкантов". Думаю, начинающих заинтересует. Последний раз редактировалось tester; 17.12.2008 в 18:55. |
17.12.2008, 19:30 | #2 |
Senior Member
Регистрация: 05.06.2007
Возраст: 52
Сообщений: 3,808
Вес репутации: 6357/163 |
Ответ: RTOS для начинающих: музыка на ПИКе
Полифония однако...
Впечатляет... |
17.12.2008, 22:36 | #3 |
Super Moderator
|
Ответ: RTOS для начинающих: музыка на ПИКе
прикольно =) в новости добавь
__________________
даташит читать до того , а не после |
18.12.2008, 08:27 | #4 |
Senior Member
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 273
Вес репутации: 232/67 |
Ответ: RTOS для начинающих: музыка на ПИКе
Неплохо.
|
18.12.2008, 09:25 | #5 |
Senior Member
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/118 |
Ответ: RTOS для начинающих: музыка на ПИКе
Спасибо.
|
18.12.2008, 10:06 | #6 |
Senior Member
Регистрация: 16.01.2008
Возраст: 45
Сообщений: 287
Вес репутации: 120/63 |
Ответ: RTOS для начинающих: музыка на ПИКе
Что-то у меня не собирается. Сначала требовал OSA.h -> заменил на OSAcfg.h в файле quartet_main.c. Выдает много ошибок.
|
18.12.2008, 10:08 | #7 | |
Senior Member
Регистрация: 30.07.2008
Возраст: 51
Сообщений: 117
Вес репутации: 107/60 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
по 15. Можно ли сделать матрицу R-2R на 10K-15K или на 5.1K-10K и как будет лучше? |
|
18.12.2008, 10:08 | #8 |
Senior Member
Регистрация: 21.04.2007
Сообщений: 516
Вес репутации: 1151/79 |
Ответ: RTOS для начинающих: музыка на ПИКе
Здорово, молодец!
__________________
if(!Operate) Read(pDatasheet); |
18.12.2008, 11:34 | #9 | |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Спасибо за отзывы!
Цитата:
|
|
18.12.2008, 11:36 | #10 |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Работать будет и так и так, только при 10-15 будут искажения. А 5.1-10 - очень хорошее соотношение, так что лучше их ставь.
|
18.12.2008, 11:49 | #11 | |
Senior Member
Регистрация: 16.01.2008
Возраст: 45
Сообщений: 287
Вес репутации: 120/63 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Код:
Error[499] : undefined symbol: _OS_ClearCSem (C:\TEST\QUARTET\quartet_main.obj) |
|
18.12.2008, 11:57 | #12 | |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
По порядку: 1. Проект должен находиться в папке "C:\TEST\QUARTET". По строке компилятора вижу, что так и есть. 2. Система должна находиться в "C:\OSA", т.е. полный уть к osa.c "C:\OSA\OSA.C" 3. В папке с OSA дожна находиться папка "SERVICE" (C:\OSA\SERVICE") 4. В этой папке должен быть файл osa_csem.h 5. Файл OSAcfg.h должен находиться в папке с проектом. 6. Вернул ли ты #include "OSA.h"? (ты его менял) Ну, и на всякий случай: OSA не будет работать под PRO-версией компилятора HT-PICC. |
|
18.12.2008, 12:17 | #13 | |
Senior Member
Регистрация: 16.01.2008
Возраст: 45
Сообщений: 287
Вес репутации: 120/63 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Код:
Clean: Deleting intermediary and output files. Clean: Deleted file "C:\TEST\QUARTET\quartet_main.obj". Clean: Deleted file "C:\TEST\QUARTET\quartet_main.cce". Clean: Deleted file "C:\OSA\OSA.obj". Clean: Deleted file "C:\OSA\OSA.cce". Clean: Done. Executing: "C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe" -C -E"quartet_main.cce" "quartet_main.c" -O"quartet_main.obj" -I"C:\TEST\QUARTET" -I"c:\osa" -Zg9 -O -ASMLIST --MSGDISABLE=1207,1208 -Q -MPLAB -16F628A Warning[361] C:\TEST\QUARTET\quartet_main.c 95 : function declared implicit int Executing: "C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe" -C -E"OSA.cce" "OSA.c" -O"OSA.obj" -I"C:\TEST\QUARTET" -I"c:\osa" -Zg9 -O -ASMLIST --MSGDISABLE=1207,1208 -Q -MPLAB -16F628A Executing: "C:\Program Files\HI-TECH Software\PICC\std\9.60\bin\picc.exe" -E"quartet.lde" "C:\TEST\QUARTET\quartet_main.obj" "C:\OSA\OSA.obj" --MSGDISABLE=1207,1208 -M"quartet.map" -O"quartet.cof" -O"quartet.hex" -Q -MPLAB -16F628A Error[499] : undefined symbol: _OS_ClearCSem (C:\TEST\QUARTET\quartet_main.obj) BUILD FAILED: Thu Dec 18 11:11:09 2008 |
|
18.12.2008, 12:24 | #14 | |
Senior Member
Регистрация: 30.07.2008
Возраст: 51
Сообщений: 117
Вес репутации: 107/60 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Ничего не понимаю. Все ножки порта А подтянуты к +, пробовал замыкать на землю, то же самое. Если все замкнуть на землю, то звук пропадает. Все ножки порта Б постоянно генерят, т. е. что-то все-таки выдается. Смотрю осциллографом на аналоговом выходе после rc-фильтра - там шум, по виду сигнал совсем не похож на музыку. Буду дальше разбираться |
|
18.12.2008, 12:30 | #15 |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Может, ты изменил OSAcfg.h, пока менял инклюды? Сравни:
Код:
#ifndef _OSA_CFG #define _OSA_CFG //----------------------------------------------- #define OS_ENABLE_CSEM // Defined if need counting semaphores #define OS_ENABLE_CRITICAL_SECTION #define OS_ENABLE_TIMER #define OS_TASKS 5 // Number of tasks active at one time (number of descriptors in memory) #define OS_BSEMS 4 // Number of binary semaphores #define OS_BANK_OS 0 // Allocation of system variables (temp, tasks, static timers, binary semaphores) #define OS_BANK_TASKS 1 // Allocation of tasks #define OS_BANK_BSEMS 0 // Allocation of binary semaphores #define OS_CSEM_SIZE 1 // Size of counting semaphores #define OS_TTIMER_SIZE 1 //----------------------------------------------- // List of binary semaphores ID enum OSA_BSEMS_ENUM { BS_RESTART, BS_BASS, BS_VIOLIN, BS_GUITAR1, BS_GUITAR2 }; |
18.12.2008, 12:32 | #16 | |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
2. Не напутал ли чего с разрядами (RB0 - младший, RB7 - стрший)? |
|
18.12.2008, 12:38 | #17 |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
|
18.12.2008, 12:57 | #18 | |
Senior Member
Регистрация: 30.07.2008
Возраст: 51
Сообщений: 117
Вес репутации: 107/60 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
PS. Понравилась фраза из описания, что музыканты сообщают дирижеру, что их какое-то время не надо беспокоить |
|
18.12.2008, 13:03 | #19 | |
Senior Member
Регистрация: 16.01.2008
Возраст: 45
Сообщений: 287
Вес репутации: 120/63 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Код:
// Clear counting semaphore #define OS_ResetCSem(countsem) _OS_ResetCSem(&countsem) #define OS_CreateCSem(countsem) _OS_ResetCSem(&countsem) Код:
void _OS_ClearCSem(OST_CSEM *pCSem) { _OST_INT_TYPE cGIETemp; cGIETemp = OS_DI(); *pCSem = 0; OS_RI(cGIETemp); } |
|
18.12.2008, 13:06 | #20 | |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Я не спешил с обновлением osa_csem.h, потому что сомневался в некоторых его новшествах, да еще и сервис ненужный добавил, а потом еще сам им воспользовался... |
|
18.12.2008, 13:29 | #21 | |
Senior Member
Регистрация: 16.01.2008
Возраст: 45
Сообщений: 287
Вес репутации: 120/63 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Для перехода на PIC16F690 что-то в программе изменить нужно? А то у меня из малых только такие. |
|
18.12.2008, 13:37 | #22 | |
Senior Member
|
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Автору респект. |
|
18.12.2008, 13:41 | #23 | |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
1. отключить все АЦП; 2. настроить биты конфигурации; 3. вместо PORTB придется использвать PORTC, т.к. только он 8-разрядный (соответственно, изменить в файле interrupt.c вывод в порт и в файле quartet_main.c в функции Init() инициализацию портов). |
|
18.12.2008, 14:00 | #24 | |
Senior Member
|
Ответ: RTOS для начинающих: музыка на ПИКе
Цитата:
Ага занят но на сколько? Сдается мне тут можно от резисторов избавиться Последний раз редактировалось IgorV; 18.12.2008 в 14:06. |
|
18.12.2008, 14:05 | #25 |
Super Moderator
Регистрация: 28.02.2007
Возраст: 47
Сообщений: 3,577
Вес репутации: 4386/141 |
Ответ: RTOS для начинающих: музыка на ПИКе
|
Метки |
osa, rtos, музыка на pic, полифония |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кооперативная RTOS для PIC24/dsPIC | tester | Продукция MICROCHIP | 5 | 07.10.2008 02:34 |
Исходник на HI-TECH для работы с LCD NOKIA 3310 | vsvetlov | Продукция MICROCHIP | 4 | 25.09.2008 11:46 |
Переход с PICC для 18-х на С30 для 24-х | Evgeniy | Продукция MICROCHIP | 5 | 04.06.2008 07:23 |
USART для PIC16F877 и PIC16F628A на Ассемблере | vrup | Продукция MICROCHIP | 1 | 19.04.2007 12:45 |
Нужна прошивка на PIC16F877 для бегущей строки!!! | VanoMC | Продукция MICROCHIP | 12 | 13.04.2007 11:06 |