قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

hichem21
:: مهندس ::
تاريخ التسجيل: Apr 2012
المشاركات: 1
نشاط [ hichem21 ]
قوة السمعة:0
قديم 13-04-2012, 10:21 AM المشاركة 1   
ha MIDI + PIC + PWM مساعدة الله يجازيكم Twitter FaceBook Google+



بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله تعالى و بركاته
اولا اريد ان اقول اني جديد في برمجة ال ميكروكنترولر ، وكل ما يتعلق بالميدي، بالاضافة اني طالب اجنبي ،و الاستاد المسؤول عن المشروع لا يابه الى ما افعله بتاتاً.
في مشروع لي في الجامعة , اريد ان اوصل مدخل MIDI ب PIC16F887 ، وذلك لارسال معلومات MIDI من الكمبيوتر الى الميكروكنترولر ،مع العلم اني ساستعمل مخرج MIDI وحيد من الكمبيوتر متصل بعدت مداخل MIDI كل مدخل سيعمل مع ميكروكنترول مخصص لتنفيد مهمة اذا وصلته المعلومة الخاصة به. في الاول ، ساقوم بارسال معلومة الMIDI المكونة من 3 Octets ،من الحاسب الى ميكروكنترول عبر ال MIDI ,هذه المعلومة ستصل الى مجموع الميكروكنترولات التي استعملها ، ولاكن واحد فيها فقط سيقومة بتنفيد الامر، لانها مخصصة له. كمثال ، اريد ارسال النوته LA3 بسرعة معينة ، المعلومة midi ستكون من الشكل [10010000] [01000101] [01100100] ب 3 اوكته، هذه المعلومة سيتم استقبالها من جميع ال الميكروكنترولات، ولكن ، واحد فيهم فقط سينفد امر معين ( اشعال مصباح كمثال) بعد قراءة هذه المعلومة، لانها المعلومة الخاصة به.
بدات بكتابة البرنامج و لاكني حائر في كيفية كتابة الشرط الواجب تحقيقه ،ليقوم الميكرو كنترولر بالفعل.
هذا هو شكل البرنامج الذي كتبته
void main(void)
{
//reception, transmition MIDI
//initialisation
PORTA=0;
PORTC=0x80;
TRISC=0x80; //port C en sorti sauf C7 en RX/le TX en sorti
TRISA=0b00000000; //port a en sortie
//Config
SPBRG=1; //pour BRG en 8-bits (31250 bauds) (par défaut)
TXSTA=0b00001000; // TXSTA en mode synchrone
RCSTA=0b00001001; // RCSTA,SPEN,CREEN (activation du port serie , synchrone)

//while (//condition par exemple pour le choix du pic est verifiée//)
//généré une PWM
PR2=100; // définit la période du signal PWM , pour 609.2Hz on a T=1/f=0.0016414sec
CCP1CON=0x0C; // CCP1CON.5:4 = bits de poids fort du cycle = 0 , mode PWM
CCPR1L=50; // le rapport cyclique
T2CON=0x04; // prescaler et postscaler =1 , timer 2 on
//oû alumé la led !
}
مع العلم اني استعمل برنامج MPLAB مزود ب CC5Xللعمل في بيئة ال C.
لا اعلم ان كان اصلا ما كتبته صحيح ، كما قلت من قبل ، انا مبتدا في كل هذا ، و الاستاذ لا يصحح شئ.
اي مساعد ستكونة مفيد.
شكراً.

اعلانات

الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:0
قديم 13-04-2012, 04:02 PM المشاركة 2   
افتراضي


ان استخدمت العكس, انظر:
http://www.pic-tronics.com/Wireless-MIDI-Piano.php

لكن قبل كل هذا , اي برنامج تستخدم لل MIDI

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 03:25 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025