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

   

الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:
قديم 15-05-2012, 01:51 AM المشاركة 129   
افتراضي



اخى حيدر علاج حسن الواضح فى الحلقه انه ليس عدد بيتاته من يتغير فعدد بيتاته ثابت من تعريفه بل حالة البيتات هى التى تتغير بعملية الازاحة الى اليمين Mask = Mask << 1;


عندما تكون
t=0

Mask = 0x0000000000000001


t=1

Mask = 0x0000000000000010


t=2

Mask = 0x0000000000000100


t=3

Mask = 0x0000000000001000
.
.
.
.

t=15

Mask = 0x1000000000000000


التعديل الأخير تم بواسطة : abdeslem1982 بتاريخ 15-05-2012 الساعة 01:56 AM
اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 15-05-2012, 02:00 AM المشاركة 130   
افتراضي


طبعا على هذه الصيغة لن يستوعب اكثر من 16 بت
و لكن يمكن زيادة عدد بتاته لو غيرنا التعريف بهذا الشكل

كود:
 unsigned long int mask=1;
و هكذا ستكون عدد بتاته 32 بت ...

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

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,473
نشاط [ lovevb6 ]
قوة السمعة:
قديم 15-05-2012, 02:27 AM المشاركة 131   
افتراضي


طبعا على هذه الصيغة لن يستوعب اكثر من 16 بت
و لكن يمكن زيادة عدد بتاته لو غيرنا التعريف بهذا الشكل

كود:
 unsigned long int mask=1;
و هكذا ستكون عدد بتاته 32 بت ...
نعم هذه هي مشكلتى معه انه لا يقبل اكثر من 16 وعندما زدت ماتركس اخرى لم يعمل معه ..

ولكن يااخي حيدر اين تقصد ان نضع المتغير unsigned long int mask=1


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 15-05-2012, 02:34 AM المشاركة 132   
افتراضي


فقط تضيف كلمة long على التعريف يا عبد السلام ...
فوق الخط الاحمر



الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:
قديم 15-05-2012, 02:40 AM المشاركة 133   
افتراضي




صورة الهارد توضح ان rb0 موصوله بمدخل الداتا للسركوى 74hc595 يعنى ان النبضه

Serial_Data هى التى سنعبىء ريجستر المخارج 16 ل 2 سركى 74hc595 وهى

التى ستتحكم فى حالة الكاتودات يعنى فى كل دوره من البوكل for

void send_data(unsigned int temp){ unsigned int Mask = 0x0001, t, Flag; for (t=0; t<16; t++){ Flag = temp & Mask; if(Flag==0) Serial_Data = 0; else Serial_Data = 1; SH_Clk = 1; SH_Clk = 0; Mask = Mask << 1; } ST_Clk = 1; ST_Clk = 0; }


نكون قد عبئنا كل البتات وهم 16 بيت


بالنتسبة لهذه النبضه
SH_Clk = 1;
SH_Clk = 0;
هى موصله ب rb1
واضح انها نبضه تسمح بنقل حالة نبضة الSerial_Data اما 1 او 0 الى اول ريجستر ب

2 سركى 74hc595

و بالنسبه لهذا


ST_Clk = 1;
ST_Clk = 0;
هى موصوله ب rb2

واضح انها نبضه لتخبر 2 سركى 74hc595 غلى ان عملية ارسال البياناة انتهت ثم تقوم 2 سركى 74hc595 باخراج البيتات المخزنه بها ثم نمر ل temp الجديد وتكرر نفس العملية عند كل حالة ارسال للبيانات اى 16 بيت الاخرى


التعديل الأخير تم بواسطة : abdeslem1982 بتاريخ 15-05-2012 الساعة 02:46 AM

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,473
نشاط [ lovevb6 ]
قوة السمعة:
قديم 15-05-2012, 02:43 AM المشاركة 134   
افتراضي


فقط تضيف كلمة long على التعريف يا عبد السلام ...
فوق الخط الاحمر

لم تعمل الماتركس الثالثه


التعديل الأخير تم بواسطة : lovevb6 بتاريخ 15-05-2012 الساعة 03:02 AM

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,473
نشاط [ lovevb6 ]
قوة السمعة:
قديم 15-05-2012, 03:03 AM المشاركة 135   
افتراضي




صورة الهارد توضح ان rb0 موصوله بمدخل الداتا للسركوى 74hc595 يعنى ان النبضه

Serial_Data هى التى سنعبىء ريجستر المخارج 16 ل 2 سركى 74hc595 وهى

التى ستتحكم فى حالة الكاتودات يعنى فى كل دوره من البوكل for

void send_data(unsigned int temp){ unsigned int Mask = 0x0001, t, Flag; for (t=0; t<16; t++){ Flag = temp & Mask; if(Flag==0) Serial_Data = 0; else Serial_Data = 1; SH_Clk = 1; SH_Clk = 0; Mask = Mask << 1; } ST_Clk = 1; ST_Clk = 0; }


نكون قد عبئنا كل البتات وهم 16 بيت


بالنتسبة لهذه النبضه
SH_Clk = 1;
SH_Clk = 0;
هى موصله ب rb1
واضح انها نبضه تسمح بنقل حالة نبضة الSerial_Data اما 1 او 0 الى اول ريجستر ب

2 سركى 74hc595

و بالنسبه لهذا


ST_Clk = 1;
ST_Clk = 0;
هى موصوله ب rb2

واضح انها نبضه لتخبر 2 سركى 74hc595 غلى ان عملية ارسال البياناة انتهت ثم تقوم 2 سركى 74hc595 باخراج البيتات المخزنه بها ثم نمر ل temp الجديد وتكرر نفس العملية عند كل حالة ارسال للبيانات اى 16 بيت الاخرى
اوكي

ولكن كيف اجعلهم 24 او 32 بدل ال 16 ؟؟


الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:
قديم 15-05-2012, 03:04 AM المشاركة 136   
افتراضي


كدلك اعد تعريف temp ب unsigned long int



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