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

   

zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 24-04-2012, 10:11 PM المشاركة 33   
افتراضي



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

انا وقفت عند نقطه بسيطة جدا وحاولت ان ابسطها لكل من حاب ان يساعدني

فانا اريد التاكد عبر دالة وليس عبر الدالة الرئيسية .. هذه هي النقطة المهمة

لذا انا حاب ان يكون عبر دوال
وليس عبر المين

في دالتين قبل المين ... الدالة الاولى تعمل عند الضغط على المفتاح بي4 فترسل القيمة 8 الى البورت دي ... هذه النقطة الاولى

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

مثال فحص البورت دي ووجد القيمة فية 8 يرسل القيمة 4 للبورت دي

هذه هي الموضوع كله ..

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 24-04-2012, 11:59 PM المشاركة 34   
افتراضي


طبعا حسب ما تفضلت به لن تستطيع مشاهدة الرقم 8 على المنفذ D لان المتحكم سريع جدا .. لذلك دعنا نضع فاصل زمني بين الرقمين 8 و 4 ...



كود:
void test(){
            portd=8;}
void send(){
            portd=4;}
void main(){
            trisb.f4=1;trisd=0;portd=0;
            loop:
            if(portb.f4==0){while(portb.f4==0){}
            test();
            delay_ms(5000);
            send();}
            goto loop;}

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

zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 26-04-2012, 03:06 PM المشاركة 35   
افتراضي


اشكرك اخي حيدر على الرد
اشتغل كل شئ تمام لكن هناك مشكلة بسيط

كيف اجعل القيمة في البورت دي تظل كما هي حتى بعد خروجي من الدالة ....
علما بانني استخدم المقاطعات من بي4-7
وهي التي ستخرجني من الدالة الاولى الى الثانية
وهما دوال غير دالة المين
اي ان الدالتين قبل المين


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 26-04-2012, 03:51 PM المشاركة 36   
افتراضي


ضع القيمة في متغير مثل x
ثم ارسلها الى المنفذ B مع التزحيف 4 مراتب الى اليسار ..

كود:
portb=x<<4;

لكن يجب الا يتجاوز العدد 15 ...


zoro238
:: مهندس جيد ::
تاريخ التسجيل: Apr 2006
المشاركات: 290
نشاط [ zoro238 ]
قوة السمعة:
قديم 27-04-2012, 05:46 PM المشاركة 37   
افتراضي


مشكور اخي حيدر وجزاك الله الف خير

وشكرا جزيلا لك من ساعدني فجزاكم الله الف خير



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