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

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

abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 384
نشاط [ abnidal ]
قوة السمعة:0
قديم 13-03-2010, 12:23 PM المشاركة 1   
افتراضي طلب شرح لهذا الكود (مايكروسي) Twitter FaceBook Google+



السلام عليكم جميعاً
هذا كود لاصدار صوت من خلال البك وارغب بالحصول على شرح له ولكن
(سطر سطر ) حيث ان استيعابي بطي شيئا ما

void tone1 (){ sound_play(659,250);}

void tone2 (){ sound_play(698,250);}

void tone3 (){ sound_play(784,250);}

void melody(){

tone1();tone2();tone3();tone3();
tone1();tone2();tone3();tone3();
tone1();tone2();tone3();
tone1();tone2();tone3();tone3();
tone1();tone2();tone3();
tone3();tone3();tone2();tone2();tone1();
}

void main(){ دالة معروفة لا داعي لشرحها
trisc=0; لا داعي للشرح هنا
portc=0; لا داعي للشرح هنا
(sound_init(&portc,1
portc.f1=1; لا داعي ايضا للشرح

melody(){
(delay_ms(50 لا داعي للشرح
portc.f1=0; لا داعي للشرح
}

ارجو شرح مطول للسطر الاحمر (لو تكرمتم)
بالله عليكم
شرح سطر سطر
شرح قيم الارقام الموجودة 659 و 698 و 784 في الدالة tone

سؤال يهمني ايضاً
عندما اغير قيمة تردد البك من 1 الى 4 يصبح الصوت غير مفهوم(سريع جدا) ولدي مشروع اقوم انشاء الله بتجهيزه ولكن انا ملزم بقيمة ال 4 لتردد البك المستخدم فماذا علي فعله
لقد اكثرت عليكم ولكن املي كبير




اعلانات

lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:0
قديم 13-03-2010, 04:18 PM المشاركة 2   
افتراضي


السلام عليكم جميعاً
هذا كود لاصدار صوت من خلال البك وارغب بالحصول على شرح له ولكن
(سطر سطر ) حيث ان استيعابي بطي شيئا ما

void tone1 (){ sound_play(659,250);}

void tone2 (){ sound_play(698,250);}

void tone3 (){ sound_play(784,250);}

void melody(){

tone1();tone2();tone3();tone3();
tone1();tone2();tone3();tone3();
tone1();tone2();tone3();
tone1();tone2();tone3();tone3();
tone1();tone2();tone3();
tone3();tone3();tone2();tone2();tone1();
}

void main(){ دالة معروفة لا داعي لشرحها
trisc=0; لا داعي للشرح هنا
portc=0; لا داعي للشرح هنا
(sound_init(&portc,1
portc.f1=1; لا داعي ايضا للشرح

melody(){
(delay_ms(50 لا داعي للشرح
portc.f1=0; لا داعي للشرح
}

ارجو شرح مطول للسطر الاحمر (لو تكرمتم)
بالله عليكم
شرح سطر سطر
شرح قيم الارقام الموجودة 659 و 698 و 784 في الدالة tone

سؤال يهمني ايضاً
عندما اغير قيمة تردد البك من 1 الى 4 يصبح الصوت غير مفهوم(سريع جدا) ولدي مشروع اقوم انشاء الله بتجهيزه ولكن انا ملزم بقيمة ال 4 لتردد البك المستخدم فماذا علي فعله
لقد اكثرت عليكم ولكن املي كبير


لنبدء بالسؤال الذي يهمك أولا :

عند فتح برنامج ال mikroc في البداية لعمل برنامج جديد أي مشروع جديد
يكون المذبذب مضبوط على 1mhz فاذا كنا سوف نعمل على مذبذب مختلف
وليكن 4mhz فلابد من تغيير المذبذب قبل أن نعمل compil أي قبل تحويل البرنامج الى HEX وليس بعد ال compil
فاذا كنا قد عملنا compil ثم أردنا تغيير المذبذب لا بد من عمل compil مرة أخرى أي اذا غيرنا أي شيئ في البرنامج فلا يصبح ساري المفعول الا اذا عمنا compil
ملاحظة :
ان تغيير قيمة الذبذب في ال proteus لا تعني أننا غيرنا المذبذب

ان (sound_init(&portc,1

تعني اجعل الرجل رقم 1 من ال portc مخرج للصوت

ان الاسطر التالية هي نفس السطر مكرر مع تغيير المعطيات:

void tone1 (){ sound_play(659,250);}---0

void tone2 (){ sound_play(698,250);}----0

void tone3 (){ sound_play(784,250);}----0

قبل أن أشرح معنى هذه الاسطر سوف أوضح كيف يعمل ال mikroc
ان ال mikroc يعمل بشئ يسمى الدوال وبما أنك تعرف دالة main فلا داعي لشرح الدوال
هنا sound_play هي دالة تولد الصوت فماذا نحتاج لتوليد صوت معين
نحتاج الا شيئين هما ذبذبة الصوت و مدة هذا الصوت فمثلا :

sound_play(659,250)----0 تعني ولد صوت بذبذبة 659hz لمدة 250ms
بمعنى ولد صوت ذو ذبذبة 659 هرتز(أي هزة في الثانية) لمدة ربع ثانية
سمينا هذا البرنامج tone1 عند تنفيذ هذا البرنامج لا يرجع لنا قيمة عددية لذالك لا نحتاج مكان للتخزين فنكتب void
أي كلمة void تعني لا تحجز مكان في الذاكرة الحية RAM

الان ادا أردنا أن نصدر صوت بذبذبة 659 هرتز لمدة ربع ثانية نكتب فقط tone1
طبعا لايمكن سماع شيء في مدة ربع ثانية لذالك لابد من تكرار هذه الدالة tone1
لعدة مرات هكذا مثلا : tone1;tone1; tone1; tone1.........

طبعا هنا سوف نحصل على نفس الصوت .
لنحصل على صوت جميل أي نغمى موسيقية عرفنا أصوات بذبذبات مختلفة tone1 و tone2 و tone3
وقمنا باستدعائهم بترتيب معين فتعطي نغمة معينة فاذا غيرنا الترتيب تتغير النغمة
الان سمينا هذا الترتيب المعين melody
ان كل ما سبق هو تعريفات للدوال فاذا أردنا اصدار الصوت نقوم باستدعاء الدالة
وذلك بكتابة اسمها فقط
الان اذا أردنا اصدار هذا الصوت نكتب كلمة واحدة وهي اسم الدالة melody();---0 داخل دالة main

ملاحظة :
ان ( 0---------) لا تعني شيئ لتسهيل الكتابة فقط


التعديل الأخير تم بواسطة : lahoioui بتاريخ 13-03-2010 الساعة 05:23 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

حمودي1010
:: مهندس جيد ::
تاريخ التسجيل: Apr 2007
المشاركات: 237
نشاط [ حمودي1010 ]
قوة السمعة:0
قديم 13-03-2010, 05:54 PM المشاركة 3   
افتراضي


بارك الله فيك يعطيك الصحة


abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 384
نشاط [ abnidal ]
قوة السمعة:0
قديم 14-03-2010, 07:21 AM المشاركة 4   
ha جزاك الله خيرا


السلام عليكم
قد افهمتني جزاك الله خيرا وجعل عملك في ميزان حسناتك
وانا لك من الشاكرين ولي بعض الاسئلة لو سمحت لي:
كيف تمت عملية استنتاج هذه الارقام(ضمن دالة التون) 659 و 698 و 784
كيف تم استنتاج قيمة هذا التوقيت (ضمن دالة التون)
وفي حال لدي نغمة اخرى (wave) كيف لي ان استخلص التوقيت والتردد السليم لها


التعديل الأخير تم بواسطة : abnidal بتاريخ 14-03-2010 الساعة 08:25 AM

lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:0
قديم 14-03-2010, 12:23 PM المشاركة 5   
افتراضي


السلام عليكم
قد افهمتني جزاك الله خيرا وجعل عملك في ميزان حسناتك
وانا لك من الشاكرين ولي بعض الاسئلة لو سمحت لي:
كيف تمت عملية استنتاج هذه الارقام(ضمن دالة التون) 659 و 698 و 784
كيف تم استنتاج قيمة هذا التوقيت (ضمن دالة التون)
وفي حال لدي نغمة اخرى (wave) كيف لي ان استخلص التوقيت والتردد السليم لها
هذه الارقام مستنتجة بالتجريب فعند رفع الذبذبة يزداد الصوت حدة أي يصبح رقيق والعكس عند خفض الذبذبة يصبح الصوت غليظ أي خشن جرب أنت وسوف تصل الى
نغمات مميزة
اما اذا كانت هناك نغمة معينة لديك وتريد أن تجعل ال pic ينفذها فهناك برنامج معين
يولد لك الدالة في ال c
على كل اذا كنت تريد أن تفهم الموضوع على أصوله فهناك أمثلة نغمات عديدة مع
شرح وافي لكيفية توليدها للاخ :
أحمد سمير فايد
في العنوان التالي:
http://www.qariya.com/vb/showthread.php?t=40760


abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 384
نشاط [ abnidal ]
قوة السمعة:0
قديم 14-03-2010, 01:12 PM المشاركة 6   
افتراضي


اكمل معروفك معي :
اولا لا انسى فضل الاستاذ احمد الفايد وكنت قرات هذا الكتاب وهو موجود عندي لكن لم يتطرق الى هذه الدالة (tone) وقد عالج الموضوع باسلوب رائع غير ذلك
ومع ملاحظة ان اي تقصير وعدم استيعاب انا المسؤول عنه فالاستاذ احمد شرحه سلس للغاية . وجزاه الله خيراً
ماهو البرنامج اللذي يولد الدالة (انت ذكرت ذلك)
حيث فعلا احتاج الى هذه النقطة بالذات


lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:0
قديم 14-03-2010, 04:04 PM المشاركة 7   
افتراضي


اكمل معروفك معي :
اولا لا انسى فضل الاستاذ احمد الفايد وكنت قرات هذا الكتاب وهو موجود عندي لكن لم يتطرق الى هذه الدالة (tone) وقد عالج الموضوع باسلوب رائع غير ذلك
ومع ملاحظة ان اي تقصير وعدم استيعاب انا المسؤول عنه فالاستاذ احمد شرحه سلس للغاية . وجزاه الله خيراً
ماهو البرنامج اللذي يولد الدالة (انت ذكرت ذلك)
حيث فعلا احتاج الى هذه النقطة بالذات
أنظر هنا وسوف تجد ماتصبو له
http://www.romanblack.com/picsound.htm
أردت أن أوضح شيئ فقط ان الدالة tone ليست دالة تابعة لل mikroc انما نحن من
وضع هذا الاسم وكان من الممكن ان نسميها music مثلا ويكون لدينا music1 و music2 و music3

اما ال sound_play(y,x)----0 فهي دالة تابعة لل mikroc ولا يمكن أن نستبدلها
بشئ اخر كما لا يمكن أن نكتبها بحرف ناقص أو خاطئ


التعديل الأخير تم بواسطة : lahoioui بتاريخ 14-03-2010 الساعة 04:09 PM

abnidal
:: مهندس متميز ::
تاريخ التسجيل: Nov 2006
الدولة: مصر
المشاركات: 384
نشاط [ abnidal ]
قوة السمعة:0
قديم 15-03-2010, 07:18 AM المشاركة 8   
افتراضي جزاك الله خيراَ واسكنك فسيح جناته انشاء الله


اتعبتك معي :
ان هذا البرنامج لدي منذ فترة وصراحة لم افلح بالعمل عليه هذا اولا وثانيا قد قرات في احدى المشاركات ان هذا البرنامج لا يمكن استخدامه لهذا الغرض

طيب اعتبر الكلام السابق ملغي:
البرنامج عندي فهل تدلني على كيفية استخدامه وكيفية استغلال واستخدام الكود اللذي يولده
وانا لك من الشاكرين ودمت خيرا لكل المسلمين


التعديل الأخير تم بواسطة : abnidal بتاريخ 15-03-2010 الساعة 07:22 AM
إضافة رد

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

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

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


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

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