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

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

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:123
قديم 27-05-2012, 07:22 PM المشاركة 1   
افتراضي التحكم بااليد ماتركس عن طريق الكومبيوتر (الجزء الثاني) ...على بركة الله Twitter FaceBook Google+



السلام عليكم ورحمة الله وبركاته

اولاا: يلزمنا ان نحضر كوب الشاي او القهوة ضروري جداا

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

ثالثا: نرش القليل من الماء ..ههههههههههههههه على قول استاذي ناصر

رابعاا : واخيراا يجب ان لا نقراء بسرعه.. نكرر قرائه السطر اكثر من مره ونتاني فى كل سطر لان الموضوع دسم

نبدء الان فى شرح الكود وهو كود صديقنا الاستاذ احمد الطباخ (ليون)

وللعلم هذا الشرح هو من صديقى احمد الطباخ (lion) وما انا الا لنقل الامانه فقط

هذا هو المشروع كاملاا والذي سوف نشرح جزء الكود فقط هنا( نفس الملف الاول ) ..اما جزء الهاردوير والانترفيس فهو موجود فى الجزء الاول

http://www.mediafire.com/?jfmgdd400quaidi

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

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

مثلاا فى الفجوال بيسك ببعض الاحيان نقوم بانشاء ملف DLL وهذا المف مثله مثل المكتبه يقوم بعمل معين عند استدعائه
والمكتبات فى هذا البرنامج ما هي الا موديولات لتسيير البرنامج وتنظيمه وكل ما يهمنا هو البرنامج الرئيسي فيها
هنا قام الاخ احمد الطباخ بانشاء مكتبات ومويديولات بلغى السي امبيدد ( انا لم اتعامل مع هذه اللغه مطلقاا) وهذه المكتبات ما هي الا لكي نتعامل مع الليد ماتركس من نوع (8*16 ) الى (8*64) بكل سهوله

انتهت المقدمه

شرح البرنامج

فى مشروعنا هذا الموضوع يدور حول 5 ملفات وكل ملف له امتدادين امتداد (C) والامتداد (h) ..وهذه الملفات نستخدمها لتهيئه اطراف ونوع البك وسنشرح بعظها لكيفية تحويرها

قبل تصنيف الملفات اريد ان انوه الى انه كل ملف يحوي ملف اخر والملف الاخر يحوي الملف الاخر برمجياا اي كل ملف يستدعي ملف اخرى

الملفات هي :

1- (allchars.c) وهذا الملف يحتوي على مصفوفه به جميع الحروف الانجليزيه والرموز والتى نستخدمها لاخراج الاحرف عن طريق معادله خاصه لاستخراج كل حرف ويتم ذلك عن طريق الاسكي كود لكل حرف

2- (c4017_matrix.c) (c4017_matrix.h)
هذان الملفان هما خاصان بالتعامل مع المتكامله CD4017 وتهيئة اطرافها

3- (dio.c ) (dio.h ) (dio_config.h) وهي DIGITAL INPUT OUTPUT
وهذه الملفات خاصه بالميكروكونترولار وتهيئة اطراف الاخراج والادخال للميكرو وتمكننا من اختيار نوع المتحكم اذا كان AVR او PIC وكذلك الكرستاله وسيتم شرح جزئيه مهمه منه

4- (usart.h) (usart_config.h) (usart.c) هذه الملفات تخص بتهيئه اطراف الارسال والاستقبال

5- (test.ppc)(usart.c) وهذان الملفان معروفان هما لتجميع الملفات الرئيسيه والاكواد للبرنامج ككل وسنشرحه محتواه بالتفصيل

كيفية ادراج المكتبات فى اي مشروع


1-افتح برنامج الميكروسي.

2- انشاء برنامج جديد.

3-يتم نسخ الملفات السابق ذكرها الي المسار اللذي يحتوي علي المشروع الجديد

4- في برنامج الميكرو سي من قائمه project يتم اختيار add to project.

5-يتم اختيار المسار اللذي يحتوي علي المشروع ومن ثم يتم اختيار الملفات اللتي تم نسخها من قبل .

6-يتم تغير امتداد الملف من .c
الي .h
حتي نستطيع اضافه الملفات المتبقيه.

8- في بدايه البرنامج يتم استدعاء المديول عن طريق كتابه


كود:
#include “dio.h”
#include “c4017_matrix.h”
يمكنك الان استخدام المكتبه

ومن يجد صعوبه فى كيفية ادراج المكتبات لاي مشروع فليسأل وسوف ازيد فى التفصيل

شرح الموديلا المهمه للتغير والتحوير
الان سنشرح الموديلات المهمه التي تجعلنا نتعامل مع نوع pic

من الملفات التي تهمنا للتحوير هي (dio_config.h) وهو نوع هيدر فايل (موديول) ويجعلنا هذا الموديول ان نتعامل مع البك او avr بنفس الاكواد والمكتبات ومن هنا نستطيع ان نختار هل سوف نستخدم pic او avr
سنجد انه مكتوب به التعريفات الاتيه

كود:
#ifndef __DIO_CONFIG_H
 #define __DIO_CONFIG_H
 #define AVR   1
 #define PIC   2
 #define TRUE  1
 #define FALSE 0
 
 
 #define TARGET  PIC

 #define PA      FALSE
 #define PB      TRUE
 #define PC      TRUE
 #define PD      TRUE
 #define PE      FLASE
 #define PG      FALSE
#endif
فى السطر السابع
كود:
#define TARGET  PIC
اخترنا الهدف هو pic
اي اننا سنستعمل فى مشروعنا البك
طبعاا اذ اردنا avr نضع avrبدل pic

كود:
#define PA      FALSE
 #define PB      TRUE
 #define PC      TRUE
 #define PD      TRUE
 #define PE      FLASE
 #define PG      FALSE
هنا يمكننا ان نختار البورتات(المنافذ) المسموح لنا استعمالها ..البورت الذي نحتاجه نكتب بجانبه TRUE ويجب ان تكون الكتابه بالكابتل وليس اسمول والذي لا نحتاجه نكتب بجانبه FLASE

الان ناتي الى الموديول الاخر (usart_config.h) الخاص بالسيريال

ونجد الكود الاتي
كود:
#ifndef   __USART_CONFIG_H
 #define  __USART_CONFIG_H
 #ifndef  AVR
 #define  AVR  1
 #define  PIC  2
 #endif
 #define  CLOCK   20000000
 #define  TARGET  PIC
 
 //DETAILS FOR PIC
 #define  S_PORT  'C'
 
#endif
هنا سوف نتاكد من ان الكلوك الخاص بالبرنامج كما فى مثالنا هذا هو 20000000(20 ميجا) الموجود فى السطر السابع وكذلك نوكد على ان النوع المستخدم هو البك كما فى السطر الثامن

التعليمه
كود:
#define  S_PORT  'C'
هنا قلنا ان المنفذ المستعمل للسيريال (الاستقبال والارسال ) انه موجود على البورت سي ..لان البك 877 منفذ الاتصال له هو البورت سي
هذا يعني انه لو استعملنا بك اخر مثلاا نوع 628 فان منفذ الاتصال الخاص به هو البورت بي فذلك يعني ان نضع البورت بي بدل البورت سي

بهذان الموديلان استطعنا ان نحدد نوع الميكرو المستعمل والمنافذ الخاصه به

اما باقي الموديلات والمكتبات سياتي شرح بعظها من خلال شرحنا للداله الرئيسيه





شرح الدالة الرئيسيه (الملف الرئيسي)

كود:
#include "c4017_matrix.h"
#include "usart.h"
#define MATRIX_SIZE 20
volatile unsigned char gen_counter=0;
volatile unsigned char buff_selector=1;
volatile char buffer[2][MATRIX_SIZE]="Enter your message";

void interrupt(void)
{
//dio_toggle_bit('c',3);
 //serial interrupt
  buffer[buff_selector][gen_counter]=_usart_read_interrupt();
  //_usart_send(myname[gen_counter]);
  gen_counter++;
  gen_counter=gen_counter%(MATRIX_SIZE-1);
  if(gen_counter==0){buff_selector++;
                     buff_selector=buff_selector%(2);
                     }
    
   INTCON|=1<<GIE | 1<<PEIE; 
   PIR1&=~(1<<RCIF); 
}

void main(void)
 {
  c4017_matrix_init('b','d',4,'d',7);
  //dio_init_bit_output('c',3);
  _usart_init(9600);
  _usart_config_interrupts(RX_EN,TX_DIS);
   INTCON|=1<<GIE | 1<<PEIE;
   _usart_send_text("serial_init_done");
   while(1)
   {
   c4017_matrix_print_text(buffer[(buff_selector+1)%2],10,80,10);
   }
 }
سناتي الى شرح كل جزء انشالله

كود:
#include "c4017_matrix.h"
#include "usart.h"
#define MATRIX_SIZE 20
volatile unsigned char gen_counter=0;
volatile unsigned char buff_selector=1;
volatile char buffer[2][MATRIX_SIZE]="Enter your message";
فى اول السطرين قمنا باحتواء الملفين (usart.h) (c4017_matrix.h) وهما يقومان باحتواء باقي الملفات ..اي كما قلنا ان كل ملف يستدعي ملف اخر وكل ملف يحتوي ملف اخر ..وبهذه التعليمه احتوينا الملفان اللذان سيقومان بدورهما باستدعاء او احتواء باقي الملفات الخاصه بتهيئة اطراف البك والمتكامله 4017

ولو فتحنا الملف (usart.h) سنجد انه يحتوي على دوال ..والان نستطيع استخدام هذه الدوال بكل حريه وسنشرح الدوال التي استخدمناها

السطر الثالث قمنا بتعريف حجم مصفوفه بعشرين حرف

السطر الرابع هو خاص لعد الحروف ( عدادا الحروف ) ويبدا العد من الصفر وسوف نشرح كيف نستخدمه

السطر الخامس هو خاص لاختيار المصفوفه وسوف ياتي دور شرحه ..وانا اسميه فى الشرح بالاخ سيليكتور

السطر السادس قمنا بتعريف عدد المصفوفات وهنا ثلاث مصفوفات واحد رقمها صفر وهي التي تعرض رساله مخزنه (ثابته) وهذه الرساله هي( Enter your message)

اما المصفوفتان الاخريتان وهي المصفوفه 1 والمصفوفه 2
وستكون هاتان المصفوفتان للعرض ..كيف؟؟؟

باختصار ستكون مصفوفه تعرض فى الجمله والاخرى تنتظر ان تمتلي واذا امتلئت المصفوفه الثانيه سيتم عرضها وانتظار امتلاء المصفوفه الاخر وهكذا

اي واحده تعرض والاخرى تنتظر الى ان تمتلى وبعد امتلائها ستعرض هي وتفرغ الاخرى وتنتظر هي الاخرى الى ان تمتلئ
وساشرح كيف يتم ذلك عن طريق الكود

كود:
void interrupt(void)
{

  buffer[buff_selector][gen_counter]=_usart_read_interrupt();

  gen_counter++;
  gen_counter=gen_counter%(MATRIX_SIZE-1);
  if(gen_counter==0){buff_selector++;
                     buff_selector=buff_selector%(2);
                     }
    
   INTCON|=1<<GIE | 1<<PEIE; 
   PIR1&=~(1<<RCIF); 
}
وهي داله المقاطعه
السطر الاول:
يقوم الاخ بفرسيليكتور [buff_selector]بتاشير على المصفوفه الجديده فى حالة امتلائت المصفوفه الاولى ويقوم باحظارها الى دالة الطباعه لطباعة المصفوفه الممتلئه
اي هو الذي يختار اي مصفوفه التي سنعمل عليها

[gen_counter] وهذا يعد احنا واقفين على اي حرف ..اي يخبرنا فى اي حرف
طبعاا الحروف بتتعد كالاتي الحرف الاول صفر والحرف الثاني 1 وهكذا
اذاا وظيفته هو العد وهنا وظيفته لكي يقول لنا فى اي رقم من الحروف الان
الحروف التي يستقبلها يقوم بوضعها كترتيب للحروف ..اي الحرف الاول الذي يستقبله يقوم بوضعه فى الخانه صفر والحرف الاخر يضعه فى الخانه 1 وهكذا الى ان تمتلئ المصفوفه
اي لو كان [gen_counter] بصفر فهذا يعني انه واقف على الحرف الاول واذا كان بواحد فهذا يعنى انه واقف على الحرف الثاني وهكذااا

_usart_read_interrupt() هي داله جاهزه تعرفيها موجود فى احدى الملفات ووضيفتها تستقبل الحرف من السيريال وتضعه فى البفر

السطر الثاني++gen_counter هنا اضفنا العداد بواحد

السطر الثالث والرابع والخامس
وهي معادله لظبط الماتركس كحجم لاننا لا نريده ان يتعدي حجم الرساله والتي حددناها ب20 لانه لو عد اكثر من 20 معناها انه سيخرج خارج الماتركس
تخليه لو خرج بره المصفوفه حتخليه يرجع من جديد

نحن نعرف ان اخر المصفوفه هي 20 يعني كعداد هو 19
واستعملنا خاصيه باقى القسمه لكي يحافظ على رقم 19 ولا يخرج خارج الماتركس
وهو الان يعمل فى دوره مستمره ويلف على المصفوفه ليملئها وفى حالة باقى القسمه سيرجعها الى صفر

if(gen_counter==0){buff_selector++;
واذا كانت بصفر سنجعله يختار مصفوفه لكي يملئها من جديد ..اي المصفوفه التي عليها الدور لكي تمتلئ

INTCON|=1<<GIE | 1<<PEIE;
PIR1&=~(1<<RCIF);
فى هاذين الخطوتين عملنا تنضيف او مسح (CLEAR) للسيريال وكذلك عملنا ENABLE للمقاطعه لاحتمال انه يعمل ريسيت اثناء(interrupt handling)

ان لم تفهم فلا تحزن فسوف تفهم فى الداله الرئيسيه



كود:
void main(void)
 {
  c4017_matrix_init('b','d',4,'d',7);
  //dio_init_bit_output('c',3);
  _usart_init(9600);
  _usart_config_interrupts(RX_EN,TX_DIS);
   INTCON|=1<<GIE | 1<<PEIE;
   _usart_send_text("serial_init_done");
   while(1)
   {
   c4017_matrix_print_text(buffer[(buff_selector+1)%2],10,80,10);
   }
 }
السطر الاول
عملنا تهيئه للموديول الخاص بالعداد 4017 وهو موجود فى الملف c4017_matrix.h وسنجده فى اول داله وهو كالاتي
كود:
c4017_matrix_init(unsigned char data_port,unsigned char scan_port,unsigned char number_of_blocks,unsigned char clock_port,unsigned char clock_bin);
كود:
c4017_matrix_init('b','d',3,'d',7);
اما وظيفة هذا السطر هو كالاتي
سنجد اول رمز (b) وهذا يعني ان الداتا سترسل من البورت دي للبك
سنجد اول رمز (d) وهذا يعني ان الاينيبل للبورت دي الخاص ب 4017 الذي سنوصل به العداد
ويلي ذلك رقم (3) وهو الذي نحدد به عدد البلوكات (عدد الماتركس) وكل بلوك (ماتركس) يحتوي على 8 بتات
اي يحدد لنا نوع الماتكرس اذا كانت ستكون من نوع 8*24 كمثالنا هذا او اذا اردنا ان نضيف ماتركس اخرى من نوع 8*32 سنجعل الرقم 4 بدل من 3 وهكذا الى 64
وبعد ذلك يلى الرمز (d) وهذا يعني اننا سنستعمل نفس البورت دي لاعطاء النبظات (الكلوك) وهو الكلوك الذي يحتوي على البت لكي نعمل كلوك لل 4017
واخيراا الرقم (7 ) وهو عباره عن رقم البت التي تعمل كلوك لل 4017 الذي استخدمناه فى مثالنا هو البورت (RD7)

ولكن كيف عرف الميكروسي هذا الترتيب ؟؟؟
عن طريق الداله الخاصه بذلك لاحظ الصوره وسوف تفهم عمل الدوال




السطر الثاني


السطر الثاني لن نحتاج اليه وكانت وظيفته هو جعل البور سى 3 كا output

السطر الثالث

جعلنا سرعة نقل البيانات تساوي 9600 وكذلك فى الانترفيس يجب ان تتوافق نفس السرعه

السطر الرابع

كود:
 _usart_config_interrupts(RX_EN,TX_DIS);
RX ENEBLE=RX_EN
TX ENEBLE=RX_DIS
كان هذا توضيح لمعني (RX_EN,TX_DIS)
ووظيفه هذا السطر هو تفعيل المقاطعه على بن الاستقبال وحعل بن الارسال خامله الخاصه بالسريال

السطر الخامس

كود:
 INTCON|=1<<GIE | 1<<PEIE;
هنا عملنا تفعيل لخاصيه المقاطعه جنيرال انتربت للارسال

السطر السادس

كود:
 _usart_send_text("serial_init_done");
هذا السطر هو فقط لتاكد من سلامة الاتصال وهو لارسال جمله من البك الى الكومبيوتر

السطر الاخير

كود:
 c4017_matrix_print_text(buffer[(buff_selector+1)%2],10,80,10);
وهو اهم سطر ووظيفته انه ياخذ البفر وقد عرفنا ان البفر هو عباره عن مصفوفه من 20 حرف وهذه المصفوفه تحتوي على الرساله المراد اضهارها على الماتركس
ومن خلال الداله الخاصه بها الموجوده فى الملف( c4017_matrix.h السطر الثالث) نجد ان الداله تاخذ الرساله ثم السرعه وهي عباره عن عدد تكرار الرساله نفسها قبل ما نعمل لها شفت ثم زمن التشغيل ثم زمن الاطفاء

وهو موضح بالصوره


تنبيه: الرقم الاخير الذي يمثل زمن الاطفاء ويجب تغييره الى ان نضبط الشكل المناسب وهنا تم وضع 10 لكي تظهر المحكاة بشكل افضل
اما فى الهاردوير سنضع ما بين الصفر الى 6 فهذا يعتمد على التجارب ...واعتقد ان رقم 5 هو المناسب ...وعلى نصيحه اخي احمد الطباخ فقط نصح فى هذا السطر بستعمال الارقام الاتيه ((((19,32,5))))) والتجارب هي التي تحكم


هذه الداله باختصار بتعرض الرساله التي امتلائت وذلك عن طريق buff_selector+1
وهو الذي بيعرض الرساله
اي بعرض المصفوفه التي لا يشير اليها البفر سيلكتور

شرح هذه السطر بطريقه اخرى

هنا تاخذ الرساله المراد طباعتها (buffer[(buff_selector+1)%2] وبعد ان يتاكد من حجم المصفوفه وهي 19 يعني الرساله تكون جاهزه للطباعه وينقصها التنسيق فى السرعه وزمن التشغيل والاطفاء
وبعد ذلك تاخذ باقى المعطيات (,10,80,10) والتي تم شرحها بالصوره

انتهى شرح الكود

الخلاصه :

نفهم ان وضيفة الكود هو قمنا بتعريف 3 مصفوفات
المصفوفه 0 ..المصفوفه 1 ...المصفوفه 2
المصفوفه صفر هي ثابته وتعرض فى رساله ثابته
المصفوفه واحد والمصفوفه 2 هما لتبادل العرض
وحتى لا يحدث خروج عن نطاق المصفوفه وضعنا معادله لتنظيم المصفوفه
الاخ( بفر سيلكتور) هو المسؤل عن اي من المصفوفتين( المصفوفه واحد والمصفوفه 2 ) التي امتلئت ويقوم باحضارها الى دالة الطباعه ويراقب المصفوفه التي لم تمتلئ او التى على وشك الامتلائ وبعد امتلائها يمسح المصفوفه التى كانت تعرض ويضع بدلها المصفوفه الجديده ويبدء فى مراقبه المصفوفه القديمه من جديد وهكذاا


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

التحكم فى الاطراف التي نريدها بكل سهوله وتغيير اي طرف نريد

هذا الشرح هو منقول من الاستاذ احمد الطباخ وهو حالياا مشغول بالامتحانات وانشالله سوف يدلو بدلوه فى الموضوع

اتمنى من الجميع طرح اسئلته فى هذا المشروع حتى تعم الفائده ولكن لا اعد احد بالاجابه الا اذا كنت على علم بها والا سوف الجاء بسؤال صديقى احمد الطباخ لو امكننى ذلك وذلك بعد التوفيق من الله عز وجل

طبعاا الدوال كثيره ولكن اغلبها كما تم شرحها فى هذا المثال

###############################################

الان لكي نعكس خرج البورت بي وذلك لكي نستطيع اضافه uln2803 مثلاا
وطبعاا مشكلة البروتس لا يستطيع التعامل مع هذه المتكامله
فلذلك سوف نضع بوابة not امام كل خرج من البورت بي لنتاكد من ان الخرج قد نجح عكسه

اولاا من ناحية الكود ::

نفتح الملف c4017_matrix.c ونغير كما فى الصور المرفقه
وننتبه لان ارقام تدرج الاكواد ان تكون مطابقه للكود الاصلي عشان تسلسل الارقام الخاصه بالميكرو سي ولكي تستطيع الذهاب الى سطر الكود مباشره





الان من ناحية بروتس للتاكد

نكتب not لاستخراج الاداه من بروتس ..كذلك الصور تشرح الطريقه



والان بكل بساطه نوصلها كما فى الصوره



والحمدالله الذي بفضله تتم الصالحات

اللهم صل وسلم على سيدنا محمد وعلى اله وصحبة اجمعين


التعديل الأخير تم بواسطة : lovevb6 بتاريخ 27-05-2012 الساعة 08:30 PM
اعلانات

hanimaiz
:: مهندس ::
تاريخ التسجيل: May 2012
المشاركات: 44
نشاط [ hanimaiz ]
قوة السمعة:0
قديم 28-05-2012, 07:00 PM المشاركة 2   
Thumbs up


شكرا يا استذنا علي الشرح الوافي
بس ممكن تعرض صوره البروتس للدائره كامله
او تحويله علي بروتس 7.2 كما وعدتني سابقا
و ربنا يبارك فيك يا عسل مسكر

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

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:123
قديم 28-05-2012, 10:01 PM المشاركة 3   
افتراضي


شكرا يا استذنا علي الشرح الوافي
بس ممكن تعرض صوره البروتس للدائره كامله
او تحويله علي بروتس 7.2 كما وعدتني سابقا
و ربنا يبارك فيك يا عسل مسكر
تفضل يااخي

http://www.mediafire.com/?ku3czzouuhult28


الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:123
قديم 28-05-2012, 10:07 PM المشاركة 4   
افتراضي


منقول من الجزء الاول


شكرا جزيلا استاذنا العزيز ولكننا ضعيفين جدا في المكتبات ياريت لو تم الشرح قليلا عن عملية انشاء مكتبة بسيطة من حيث ملف (h) *(c) وكيفية توليدهما وارفاقهما ممكن ان نفهم اكثر لانو الطاسة ضايعة وشكرا لكم

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

تحياتي لك


التعديل الأخير تم بواسطة : lovevb6 بتاريخ 28-05-2012 الساعة 10:21 PM

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:123
قديم 28-05-2012, 10:27 PM المشاركة 5   
افتراضي


هههههههههههههههه

يبدو ان كباية الشاي الي عاملينها مش ثقيله اوي ...يبقا ياريت تثقلوها... ولو ما حصلش حاجه ...يبقا جربو القهوه....بدون سكر طبعاااا...

وبطلو كثرة رش ميه عشان ما نعملش ازمه فى الوطن العربي ...ههههههههههه


بالليبي ..كنكم ياشباب... كيف صار معاكم انشالله الكود تمام .....انشالله ما انكونش قصرت معاكم بس ..

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


التعديل الأخير تم بواسطة : lovevb6 بتاريخ 28-05-2012 الساعة 10:30 PM

الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,121
نشاط [ أبو معاذ 2010 ]
قوة السمعة:212
قديم 28-05-2012, 11:18 PM المشاركة 6   
افتراضي


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

السلام عليكم ورحمة الله وبركاته

ما شاء الله عليك يا عبد السلام ، عمل ممتاز ،لكن الظاهر أن الموضوع محتاج أكثر من قهوة و شاي، و عن نفسي حتى لو رشيت نفط فلن أفهم .

الفكرة العامة وضحت ، لكن هذه المكتبات مستعصية !!!! ما علينا ناخذ الزبدة و ندع اللبن حتى ندرس هذه الأومبادد سي ان شاء المولى .

أحييك على المجهود الكبير و بارك الله فيك .


الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:123
قديم 28-05-2012, 11:39 PM المشاركة 7   
افتراضي


ياجماعة الخير :

السلام عليكم اولا:

انا لم اقصد في شرحي ان اشرح المكتبات وكيفية انشائها ..والله لو اعرف لكنت شرحتها

بل الهدف هو فهم اهم اجزاء الموضوع وكيفية تحوير الكود وكذلك الهاردوير قليلاا
على الاقل عرفنا كيف يعمل الكود

وانا مثلكم تماما كل ما احاول فعله هو تسهيل الامور التي لازالت مستحيله على الاكثريه وهي ارسال جمل الى الماتركس عن طريق الكومبيوتر

وعلى الاقل الان نستطيع تدارك الامر ولو نسبياا

اما من ناحيه المكتبات لقد قلت فيها زبدة الموضوع فى المقدمه وهي انها مثلها مثل المكاتب الجاهزه التي توجد بالميكروسي ولكنها غير ظاهره لنا

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

هل يمكن لاحد ان يشرح لنا كيف تعمل مكتبة ال(usart) انا متاكد لا احد ....

فهذه هي الفكره

مكتبة جاهزه نستطيع بها عمل ماتركس من 8*8 الى 8*64
ومن 16*8 الى 16*64

وذلك عن طريق الكومبيوتر واضف الى ذلك اننا لم نستعمل من الذاكره الا نصفها تقريبااا ...

اتمنى ان ينظر الى الموضوع من الجانب المشرق وليس من الجانب الصعب

تحياتي للجميع


التعديل الأخير تم بواسطة : lovevb6 بتاريخ 28-05-2012 الساعة 11:44 PM

the lion
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2009
الدولة: egypt
المشاركات: 117
نشاط [ the lion ]
قوة السمعة:0
قديم 28-05-2012, 11:46 PM المشاركة 8   
افتراضي


ماشاء الله مجهود رائع مهندس عبد السلام .. احيك عليه وارفع لك القبعه

*********
اما يا اخواني عن المديولات او المكاتب فهي ببساطه عباره عن مجموعه من الدوال تؤدي وظائف معينه مرتبطه مع بعضها بشكل ما ... عندما تريد ان تستعمل هذه الدوال كل ما عليك فعله هو استدعاء المديول ... اما عن طريقه عملها فهي سهله وبسيطه جدا .. ومن الممكن ان نجعل لها موضوع خاص بها

المهم الان هو التركيز علي كيفيه استعمالها
*ملحوظه : يمكن قراءه وصف كل داله في ملف السي الخاص بها وذلك لمعرفه كيفيه الاستخدام

إضافة رد

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

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

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


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

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