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

   

الصورة الرمزية yasirh88
yasirh88
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2014
المشاركات: 155
نشاط [ yasirh88 ]
قوة السمعة:
قديم 06-11-2015, 11:21 PM المشاركة 9   
افتراضي



أخى
نعم يمكننى ذلك لكن قبلها هناك نقطتين يجب مراعاتهما
1- لا يوجد End If وهنا كيف سيتصرف الميكرو سيعود كليا و جزئيا على المترجم وكيف سيترجم هذا الموضوع
في برنامج المايكروسي لا تستخدم end if عكس لغة الفيجوال التي يجب استخدامها

2- كيف اثبت انه لا يعمل؟؟ لو اكملت الكود يجب ان تفعل السويتش و يكون فاعلا قبل توصيل التيار للميكرو
هل هذا ما تفعله؟؟
لم افهم هذه العبارة كيف افعل السويتش لا اعلم ماذا تقصد قصدك اعمل run للبرنامج ام ماذا فانا عملت رن وغيرت الكود اكثر من مرة وباستخدام if و while ونفس المشكلة

المهم اخي العزيز هل يمكنك ان تكتب لي برنامج لتشغيل ليد و اطفائه عن طريق pull up resistor جربه في حاسبتك وانا ساجربه لدي وارى ما النتيجة

اعلانات

borda
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2007
المشاركات: 85
نشاط [ borda ]
قوة السمعة:
قديم 07-11-2015, 04:26 AM المشاركة 10   
افتراضي


في برنامج المايكروسي لا تستخدم end if عكس لغة الفيجوال التي يجب استخدامها



لم افهم هذه العبارة كيف افعل السويتش لا اعلم ماذا تقصد قصدك اعمل run للبرنامج ام ماذا فانا عملت رن وغيرت الكود اكثر من مرة وباستخدام if و while ونفس المشكلة

المهم اخي العزيز هل يمكنك ان تكتب لي برنامج لتشغيل ليد و اطفائه عن طريق pull up resistor جربه في حاسبتك وانا ساجربه لدي وارى ما النتيجة
يا عم الحج انا كمان حصلتلي نفس المشكلة وغيرت التحكم اكتر من مرة وكل ده حصلي من يومين فقط بعد قراءة استفسارك ولا افهم لما دا فيرس ولا اية مشفاهم ثانيا انا حاولت افهم لحد ما جبت كود قديم وزوت علية السوتسش وقبل ففهمت ان في حاجة في الدريفر او دبج حصل مني ومسحت المترجم و اعت تنصيبه و نفس المشكله لو عمل مشروع جديد اما لو جبت مشر قديم حتي من 5 ايام بيشتغل الكود اما الجديد لا ارجو من المبرمجين الرد بسرعة والاهتمام ضروري دا اكل عيش

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

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 07-11-2015, 10:19 AM المشاركة 11   
افتراضي


في برنامج المايكروسي لا تستخدم end if عكس لغة الفيجوال التي يجب استخدامها

لم افهم هذه العبارة كيف افعل السويتش لا اعلم ماذا تقصد قصدك اعمل run للبرنامج ام ماذا فانا عملت رن وغيرت الكود اكثر من مرة وباستخدام if و while ونفس المشكلة

المهم اخي العزيز هل يمكنك ان تكتب لي برنامج لتشغيل ليد و اطفائه عن طريق pull up resistor جربه في حاسبتك وانا ساجربه لدي وارى ما النتيجة
تفعل السويتش أى تجعله ON أو OFF قبل أن تشغل البرنامج
مشكلتك انك كتبت برنامج بيقول للميكرو اختبر الطرف و افعل كذا وهى تأخذ 1 ميكرو ثانية أى تنتهى قبل أن تدرك انت انك قد اتممت توصيل التغذية للدائرة
هذا مطلوب فى تطبيقات و لكنه على ما يبدو ليس ما تريد
إذن ضعه فى LOOP حتى يظل طول الوقت يختبر السويتش و ينفذ الطلب الأول إن كان 1 و الطلب الثانى إن كان صفر ثم يعيد الكرة


الصورة الرمزية yasirh88
yasirh88
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2014
المشاركات: 155
نشاط [ yasirh88 ]
قوة السمعة:
قديم 08-11-2015, 12:08 AM المشاركة 12   
افتراضي


تفعل السويتش أى تجعله ON أو OFF قبل أن تشغل البرنامج
مشكلتك انك كتبت برنامج بيقول للميكرو اختبر الطرف و افعل كذا وهى تأخذ 1 ميكرو ثانية أى تنتهى قبل أن تدرك انت انك قد اتممت توصيل التغذية للدائرة
هذا مطلوب فى تطبيقات و لكنه على ما يبدو ليس ما تريد
إذن ضعه فى LOOP حتى يظل طول الوقت يختبر السويتش و ينفذ الطلب الأول إن كان 1 و الطلب الثانى إن كان صفر ثم يعيد الكرة
نعم اخي العزيز انا اعلم انه يحدث بسرعة كبيرة جدا وقد لا نلاحظها ولكني جربت بعمل تاخير 2000 مللي ثانية واكثر ونفس المشكلة وجربت مع جملة while وجربت اغير وضعية السويتش قبل تشغيل البرنامج وهذا الكود
while(ra0_bit=0){
portb=0xff;
}
وعند تشغيل البرنامج يجعل البورت بي 0xff قبل الضغط على المفتاح مع العلم اني عرفت البورت بي بالقيمة الابتدائية صفر وان الاخ بوردا يعاني من نفس المشكلة
ا عم الحج انا كمان حصلتلي نفس المشكلة وغيرت التحكم اكتر من مرة وكل ده حصلي من يومين فقط بعد قراءة استفسارك ولا افهم لما دا فيرس ولا اية مشفاهم ثانيا انا حاولت افهم لحد ما جبت كود قديم وزوت علية السوتسش وقبل ففهمت ان في حاجة في الدريفر او دبج حصل مني ومسحت المترجم و اعت تنصيبه و نفس المشكله لو عمل مشروع جديد اما لو جبت مشر قديم حتي من 5 ايام بيشتغل الكود اما الجديد لا ارجو من المبرمجين الرد بسرعة والاهتمام ضروري دا اكل عيش
وتوقعت ان برنامج المايكروسي هو السبب ولكن يبدو المشكلة ليس به
ولا اعلم ما السبب لذلك طلبت منك ان تعمل البرنامج لديك وتخبرني بالنتيجة ولكن اتوقع ان المشكلة ليست بالكود هناك مشكلة اخرى ولا اعلم ما هي ساحاول ان اجد شخصا حصلت معه نفس المشكلة وارى الى اين ساصل وشكراا على الاهتمام اخي الكريم


التعديل الأخير تم بواسطة : yasirh88 بتاريخ 08-11-2015 الساعة 12:36 AM

borda
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2007
المشاركات: 85
نشاط [ borda ]
قوة السمعة:
قديم 08-11-2015, 12:55 AM المشاركة 13   
افتراضي


نعم اخي العزيز انا اعلم انه يحدث بسرعة كبيرة جدا وقد لا نلاحظها ولكني جربت بعمل تاخير 2000 مللي ثانية واكثر ونفس المشكلة وجربت مع جملة while وجربت اغير وضعية السويتش قبل تشغيل البرنامج وهذا الكود
while(ra0_bit=0){
portb=0xff;
}
وعند تشغيل البرنامج يجعل البورت بي 0xff قبل الضغط على المفتاح مع العلم اني عرفت البورت بي بالقيمة الابتدائية صفر وان الاخ بوردا يعاني من نفس المشكلة
وتوقعت ان برنامج المايكروسي هو السبب ولكن يبدو المشكلة ليس به
ولا اعلم ما السبب لذلك طلبت منك ان تعمل البرنامج لديك وتخبرني بالنتيجة ولكن اتوقع ان المشكلة ليست بالكود هناك مشكلة اخرى ولا اعلم ما هي ساحاول ان اجد شخصا حصلت معه نفس المشكلة وارى الى اين ساصل وشكراا على الاهتمام اخي الكريم
يا بشمهدسين انا عندي نفس المشكلة ما العمل


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 08-11-2015, 11:02 AM المشاركة 14   
افتراضي


الإخوة
اكتبها لكم بالبيزك و انت حولوها إلى سى ، طبعا لا تنسوا المقدمة السابقة لتعريف البورت و ما إلى ذلك TRIS الخ
كود:
Main:
comcon=0x07
TRISA=0x0f
TRISB=0


while True
   If  PORTa.0  Then

   .
   .
   .
   Else
   .
   .
   Enf If
Wend

End.


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 08-11-2015, 09:06 PM المشاركة 15   
افتراضي


اخي الكريم اختيار العنوان للموضوع بشكل مناسب يرفع من نسبة التجاوب معه .

طبق هذا الكود على دائرتك و سوف يعمل ان شاء الله

كود:
void main()
 {cmcon=7;
 trisa=1;trisb=0;portb=0;
 while(1)
         {
          if(porta.f0==0){while(porta.f0==0){}
                          portb.f0=~portb.f0;
                          }
         }

}


borda
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2007
المشاركات: 85
نشاط [ borda ]
قوة السمعة:
قديم 09-11-2015, 01:40 PM المشاركة 16   
افتراضي


اخي الكريم اختيار العنوان للموضوع بشكل مناسب يرفع من نسبة التجاوب معه .

طبق هذا الكود على دائرتك و سوف يعمل ان شاء الله

كود:
void main()
 {cmcon=7;
 trisa=1;trisb=0;portb=0;dsvينرةيجيج
 while(1     dsdsifkomkidmomodopod)    
         {
          if(porta.f0==0){while(porta.f0==0){}
                          portb.f0=~portb.f0;
                          }
         }

}


اشكرك اخي الكريم علي الرد انا احد الشاكين ولست صاحب الموضع انا عرفت الخطاء الفادح الي انا ارتكبته علي المترجم المحترم mikroc
انا الخطاء عندي كان من قلة الاستخدام الفتر الي فاتت كان وضع


void main()
{
trisc.f0=1;
trisc.f4=0;
portc.f4=0;

while (1) ; { هنا كان الخطاء وضع هذه الاشارة
if (portc.f0==1)

{portc.f4=1;delay_ms(200);}
else{portc.f4=0;}
}}

اما الصح هذا الكود


void main(){
trisc.f0=1;
trisc.f4=0;
portc.f4=0;

while (1){ ليس هناك علامة ;
if (portc.f0==1)

{portc.f4=1;delay_ms(200);}
else{portc.f4=0;}
}}



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