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

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

hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 587
نشاط [ hamadalla31 ]
قوة السمعة:0
قديم 11-08-2009, 12:13 PM المشاركة 73   
افتراضي



بسم الله ماشاء الله شرح جميل ووافي ولكني افهم قليلا في البيك بيزيك فهل اجد امثله عملية بالبيك بيزيك لأتعلم منها كيفية الإستفاده من الموؤقت الداخلي والهوت دوج
وجزاكم الله بكل خير

اعلانات

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,139
نشاط [ geniusse01 ]
قوة السمعة:106
قديم 11-08-2009, 05:36 PM المشاركة 74   
افتراضي


السلام عليكم

كيف الحال اخي mizort1989 ...ان شاء الله تكون بخير وعافية..ان هذا مشروع جميل وان شاء اللع تكمله وتشاركنا فيه قريبا...انا لم افكر في عمل مشروع مثل هذا يعتمد على اشارة غيرة محددة المدة الزمنية (600 ميكروثانية او 1200 ميكروثانية )..وهناك امر لم اعرفه ولم اجده في ميكروسي عندي وهو :
كود:
val = !testBit(PORTB,0);
اهم ما يجب ان تعرفه في الموضوع ان امر التاخير ليس دقيقا جدا في الميكروسي بالنسبة للحسابات الزمنية فالافضل ان تتجنب استخدامه هنا خصوصا انك تتعامل بزمن دقيق جدا وهو تقريبا 600 ميكروثانية..في هذه الحالة فان الحل يكمن في استخدام التامير زيرو للحساب..لانه عند استخدامه عداد لنبضات الساعة (وعلى العتبار ان تستخدم كريستالة 4 ميجا فان العداد يعد 1 ميكروثانية بالضبط وهكذا تعتبر هذه الوحدة الاساسية ) طبعا بما ان الزمن من مرتبة الميكروثانية فنقوم باعدادات التامير زيرو بحيث انه يعد كل 1 ثانية ..ومجال تقسيم 1:1 ..هذا يتعلق بالنسبة لاعدادات الزمن للتامير زيرو..يمكن ان تستخدم مثلا المقاطعة على الجبهة الهابطة للطرف RB0 وليس الصاعدة . ولكن لماذا ؟؟؟؟ لان لو استخدمت الجبهة الصاعدة فان اخر رقم في الاشارة لن يتعرف انه قد عد 13 رقم (لان المقاطعة تحصل عند التغير على RB0 من صفر الى واحد .وطبعا في نهاية هذا الرقم 13 فانه يكون جبهة هابطة ...ولا يتعرف البيك انه انتهى من 13 قيمة ..وهكذا سينتظر الى الضغطة التالية للزر ليوقف العد وهذا سيصنع خطا..الان ما انتظره منك ان تبدا بعدادات التايمر زيرو مع ضبط المقاطعة على الطرف RB0 على الجبهة الهابطة..وان شاء الله نكمل معا..انتظر منك الجواب لنكمل معا..ربنا يوفقك ويسهل امورك...

واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..

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

geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,139
نشاط [ geniusse01 ]
قوة السمعة:106
قديم 11-08-2009, 05:51 PM المشاركة 75   
افتراضي


بسم الله ماشاء الله شرح جميل ووافي ولكني افهم قليلا في البيك بيزيك فهل اجد امثله عملية بالبيك بيزيك لأتعلم منها كيفية الإستفاده من الموؤقت الداخلي والهوت دوج
وجزاكم الله بكل خير

السلام عليكم

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

واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..


الصورة الرمزية mohamedse
mohamedse
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2008
الدولة: مصر الأسكندرية
المشاركات: 681
نشاط [ mohamedse ]
قوة السمعة:123
قديم 11-08-2009, 08:27 PM المشاركة 76   
افتراضي


السلام عليكم

بالنسبة لقياس شفرة الريموت فلقد تم وضع موضوع متكامل بخصوص قياس شفرتة بالميكرو ثانية
و تم العمل على الدوائر المتكاملة العادية و بالطبع تحويل الفكرة الى برنامج للميكرو كنترولر أمر ليس صعبا
و أليكم الموضوع


جهاز متطور لرسم الأشارة و قياس التردد


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 11-08-2009, 09:43 PM المشاركة 77   
adevil


اخى mizort1989 مشروعك رائع وجميل وانا مهتم به جدا.
اعتقد ان امر pulsin فى لغة بيزيك سيقوم بفك الترميزكافضل مايكون و بدون اى تعقيدات وانت ذكرت هذا الامر فى احد المواضيع واتمنى ان تحاول استخدامه مع العلم ان لغة بيزيك سهلة جدا وتعلم اساسياتها لا يكلفك الا سويعات قليلة.
على كل حال هذا رابط عدد يناير 2005 من مجلة servo ,وفيه مقال للباحث كارل وليام يشرح فيه ترميز الريموت كنترول باستخدام بيك (pic) وبا استخدام لغة بيزيك
وهذا رابط المجلة:
http://www.scribd.com/doc/14612465/S...azine-01-2005و
هذا رابط البرنامج بالبيزيك+hex
http://filaty.com/f/908/86636/robota.zip.html
اما بالنسبة لاشارة سونى فهى بسيطة ولا تحتاج الى تايمر ولاحتى مقاطعات. وهذا برنامج قمت بكتابته لنفس الاشارة يقوم باخراج البتات فى شكل مصفوفة اول سبعة عناصر تمثل الcommand والخمسة الاخرى تمثل العنوان (address)
كود:
#define signal portb.f0
void main()
{
unsigned char s[12];
int x=1;
TRISB=0;
while(1){
end:
 while (signal==1)
{
d:
while (signal==0)
{
u:
while (signal==1)
  delay_us(750);
if(signal==1)
{
s[x]=1;
x=x+1;
if(x==13)
goto end;
goto d;
}
if(signal==0)
s[x]=1;
x=x+1;
if(x==13)
goto end;
goto u;
}}

     } }
يعتمد البرنامج على طول النبضة بعد انتهاء ال start bit يكون تاخير زمنى اكبر من600u واقل من 1200u خلال هذه الفترة تكون النبضة +5v فى حالة ال1 وصفر فولت فى حالة ال 0,,,,,,,,
واتمنى ان تشاركنا معك فى تطورات المشروع وبالتوفيق.
اعتذر من الاخ فادى لهذا الخروج عن الموضوع الاساسى ولكنى فقط احببت المساعدة.


التعديل الأخير تم بواسطة : robota بتاريخ 11-08-2009 الساعة 11:45 PM

mizort1989
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
المشاركات: 70
نشاط [ mizort1989 ]
قوة السمعة:0
قديم 12-08-2009, 06:03 AM المشاركة 78   
افتراضي


اخى mizort1989 مشروعك رائع وجميل وانا مهتم به جدا.
اعتقد ان امر pulsin فى لغة بيزيك سيقوم بفك الترميزكافضل مايكون و بدون اى تعقيدات وانت ذكرت هذا الامر فى احد المواضيع واتمنى ان تحاول استخدامه مع العلم ان لغة بيزيك سهلة جدا وتعلم اساسياتها لا يكلفك الا سويعات قليلة.
على كل حال هذا رابط عدد يناير 2005 من مجلة servo ,وفيه مقال للباحث كارل وليام يشرح فيه ترميز الريموت كنترول باستخدام بيك (pic) وبا استخدام لغة بيزيك
وهذا رابط المجلة:
http://www.scribd.com/doc/14612465/S...azine-01-2005و
هذا رابط البرنامج بالبيزيك+hex
http://filaty.com/f/908/86636/robota.zip.html
اما بالنسبة لاشارة سونى فهى بسيطة ولا تحتاج الى تايمر ولاحتى مقاطعات. وهذا برنامج قمت بكتابته لنفس الاشارة يقوم باخراج البتات فى شكل مصفوفة اول سبعة عناصر تمثل الcommand والخمسة الاخرى تمثل العنوان (address)
كود:
#define signal portb.f0
void main()
{
unsigned char s[12];
int x=1;
TRISB=0;
while(1){
end:
 while (signal==1)
{
d:
while (signal==0)
{
u:
while (signal==1)
  delay_us(750);
if(signal==1)
{
s[x]=1;
x=x+1;
if(x==13)
goto end;
goto d;
}
if(signal==0)
s[x]=1;
x=x+1;
if(x==13)
goto end;
goto u;
}}

     } }
يعتمد البرنامج على طول النبضة بعد انتهاء ال start bit يكون تاخير زمنى اكبر من600u واقل من 1200u خلال هذه الفترة تكون النبضة +5v فى حالة ال1 وصفر فولت فى حالة ال 0,,,,,,,,
واتمنى ان تشاركنا معك فى تطورات المشروع وبالتوفيق.
اعتذر من الاخ فادى لهذا الخروج عن الموضوع الاساسى ولكنى فقط احببت المساعدة.
شكرا علي المشاركه الرائعه

انا بالفعل كنت قد عملت البرنامج بال basic و استجدمت امر الpulse in

لكن الفكره اني في الكليه تعلمت ان c و كل البرامج التي عملتها بالc

و هذا هو البرنامج الوحيد اللي بالbasic

فأنا بحاول اعمل library في الc لعمليات القياس من هذا النوع في الc

لكي يستفيد بها الناس

انا معاك انه ممكن ميكنش محتاج interrupt لأني في الbasic كنت عامله علي

portb.f7 و كان شغال كويس و طلعت الأكواد علي LCD و حفظتها عندي

و من هنا كان سؤالي طالما عملته بال basic ليه مقدرش اعمله بال c


ملحوظه اخري

امر (While portX.fX ==1)
مش هينفع هنا ;مش عارف ليه بس انا منت جربته قبل كده و منفعش

و ده اللي جعلني افكر في الinterrupt


robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 12-08-2009, 07:32 AM المشاركة 79   
افتراضي


الاخ العزيز mizort1989 انا اوافقك الراى فيما يتعلق باضافة بعض الاوامر المهمة الموجودة فى بيزيك واضافتها لمكتبة السى. وانا قمت بتحويل الامر pot(الامر pot فى البيزيك يقوم بقراءة المقاومات بدون استخدام ADC) الى c .وانشاء الله ساعرضه قريبا فى المنتدى.
المهم ما رأيك ان تقوم بكتابة موضوع رئيسى ونتعاون جميعا فى القيام بهذا العمل المهم.

اما بالنسبة للامر (While portX.fX ==1 ) برنامج ال mikroc لا يقبل هذا الامر error لكن الحل بسيط قم بتعريف portX.fX
كود:
#define signal portb.f7
...............

while(signal==1)
وسيعمل بصورة جيدة انشاء الله.


الصورة الرمزية ahmed-1a
ahmed-1a
:: مهندس جيد ::
تاريخ التسجيل: Apr 2008
المشاركات: 205
نشاط [ ahmed-1a ]
قوة السمعة:0
قديم 18-09-2009, 08:49 PM المشاركة 80   
افتراضي


بسم الله الرحمن الرحيم

احيي أخي
geniusse01 على موضعه الأكثر من جميل ...

يوجد لدي سؤال بخصوص استخدام التايمر زيرو كعداد أو للتوقيت الحقيقي ، فأني وبعدما اطلعت على الموضوع لا أجد فرق فيما بينهما سوى أن استخدام التايمر كعداد بحيث يعد من الخارج واستخدامه كمؤقت يعني حساب النبضات من الكرستاله ، فهل هذا صحيح وما رأي الأخوة ؟

السؤال الثاني ، اذا كان يوجد للغة مايكروسي ومايكروبيسك أمر
Delay لماذا نستخدم التايمر كمؤقت ؟

السؤال الثالث ، ما هو كلب الحراسة وهل يمكن شرحة بكامل خواصه ...

إضافة رد

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

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

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


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

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