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

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

mwz86
:: مهندس ::
تاريخ التسجيل: Mar 2014
المشاركات: 4
نشاط [ mwz86 ]
قوة السمعة:0
قديم 29-03-2014, 04:45 PM المشاركة 1   
افتراضي 750 خرج من مايكرو Twitter FaceBook Google+



السلام عليكم

عندي مصفوفة مكونة من سطر واحد و 750 عمود >اي عندي 750 قيمة<
تحتوي على قيم ثنائية <0 - 1 >

السؤال:
كيف أستطيع إخراج هذه القيم من مايكرو 8bit port في لحظة واحدة للتحكم بـ 750 ريليه؟

===========
على الهامش
===========
من خلال البحث عن حلول تبين معي ان افضل طريقة<حتى الآن> هي أستخدام

1- binary to BCD converter
على عدة مراحل (حوالي 20 مرحلة) لأصل إلى 100bit بالنهاية
وبالتالي نكون قسمنا العدد الكلي (750) على 8port.

2- طريقة العنونة
بما أن الحركة الميكانيكية بطيئة نسبيا ففكرت بإمكانية تقسيم الريليات إلى أجزاء مؤلفة 8 ريليات يتم التحكم بها عن طريق العنونة التفرعية

هل هذه حلول عملية؟؟؟



إذا هناك حل أفضل أرجو التفضل بإبداء آراكم

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 29-03-2014, 05:11 PM المشاركة 2   
افتراضي


السلام عليكم

عندي مصفوفة مكونة من سطر واحد و 750 عمود >اي عندي 750 قيمة<
تحتوي على قيم ثنائية <0 - 1 >

السؤال:
كيف أستطيع إخراج هذه القيم من مايكرو 8bit port في لحظة واحدة للتحكم بـ 750 ريليه؟

===========
على الهامش
===========
من خلال البحث عن حلول تبين معي ان افضل طريقة<حتى الآن> هي أستخدام

1- binary to BCD converter
على عدة مراحل (حوالي 20 مرحلة) لأصل إلى 100bit بالنهاية
وبالتالي نكون قسمنا العدد الكلي (750) على 8port.

2- طريقة العنونة
بما أن الحركة الميكانيكية بطيئة نسبيا ففكرت بإمكانية تقسيم الريليات إلى أجزاء مؤلفة 8 ريليات يتم التحكم بها عن طريق العنونة التفرعية

هل هذه حلول عملية؟؟؟



إذا هناك حل أفضل أرجو التفضل بإبداء آراكم
السلام عليكم
أخي كريم تقصد أنت تريد ربط 750 ريلي على بورت 8 بت
طبعا يمكن ذلك مثلا نستخدم 74HC595 ولهذا ايسي 8 بت وقابل للزياده بمضاعفات 8
مثلا 750 ريلي نقسم على 8 = 94 أيسي
يمكن أستخدام مكتبه 74HC595 لتحكم بأي بت وموجوده على هذا الرابط
http://www.qariya.info/vb/showthread...=143596&page=3
رقم مشاركه 19

للعلم هذه طريقه تستقل ثلاثه بتات من مايكرو ولكن سوف تستقل 750 بايت من رام لذا أنصحك بأستخدام العائله 18F
تحياتي

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

mwz86
:: مهندس ::
تاريخ التسجيل: Mar 2014
المشاركات: 4
نشاط [ mwz86 ]
قوة السمعة:0
قديم 29-03-2014, 06:18 PM المشاركة 3   
افتراضي


السلام عليكم
أخي كريم تقصد أنت تريد ربط 750 ريلي على بورت 8 بت
طبعا يمكن ذلك مثلا نستخدم 74HC595 ولهذا ايسي 8 بت وقابل للزياده بمضاعفات 8
مثلا 750 ريلي نقسم على 8 = 94 أيسي
يمكن أستخدام مكتبه 74HC595 لتحكم بأي بت وموجوده على هذا الرابط
http://www.qariya.info/vb/showthread...=143596&page=3
رقم مشاركه 19

للعلم هذه طريقه تستقل ثلاثه بتات من مايكرو ولكن سوف تستقل 750 بايت من رام لذا أنصحك بأستخدام العائله 18F
تحياتي

استاذ حسن

شكراً لك على الرد

إن المنظومة التي اعمل عليها تحتاج سرعة كبيرة (3 قيم على كل pin كل ثانية)

هل برأيك ان الحل الذي تفضلت به مفيد في هذه الحالة؟


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 30-03-2014, 02:51 AM المشاركة 4   
افتراضي


استاذ حسن

شكراً لك على الرد

إن المنظومة التي اعمل عليها تحتاج سرعة كبيرة (3 قيم على كل pin كل ثانية)

هل برأيك ان الحل الذي تفضلت به مفيد في هذه الحالة؟
السلام عليكم
لااخي السرعة تعتمد على تردد كرستاله فمثلا تردد 4ميكا يتم تنفيذ الأوامر لكل 1 مايكرو ثانيه
يعني مثلا 750 ريلي يحتاج الى زمن 750مايكرو او أكثر من ذلك يعني لنفترض 1ملي ثانيه
لتقليل زمن نزيد تردد كرستاله
تحياتي


mwz86
:: مهندس ::
تاريخ التسجيل: Mar 2014
المشاركات: 4
نشاط [ mwz86 ]
قوة السمعة:0
قديم 31-03-2014, 02:07 PM المشاركة 5   
افتراضي


السلام عليكم
لااخي السرعة تعتمد على تردد كرستاله فمثلا تردد 4ميكا يتم تنفيذ الأوامر لكل 1 مايكرو ثانيه
يعني مثلا 750 ريلي يحتاج الى زمن 750مايكرو او أكثر من ذلك يعني لنفترض 1ملي ثانيه
لتقليل زمن نزيد تردد كرستاله
تحياتي
السلام عليكم

شكرا لك على المعلومات القيمة

أرجو النصيحة للحصول على الحل الأمثل (من ناحية سرعة الاستجابة والاستقرار)

===============================
إذا قسمنا العدد الكلي (750) على 3 مجموعات (3 microcontrollers ) وذلك بهدف تقليل إستخدام الرام الداخلية و وضعنا مايكرو للقيادة.

هل يصبح النظام اسرع وأكثر استقرارا برأيك أم انه غير ضروري؟

======================================

النظام هو عبارة عن حوالي 7 محركات و 15 حساس بالاضافة إلى 750 خرج (السابق ذكره) و سيتم ربطه بالحاسب عن طريق RS232 لأخذ قراءات دورية لبعض المعطيات الموجودة في الـ internal eeprom


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 31-03-2014, 02:32 PM المشاركة 6   
افتراضي


السلام عليكم

شكرا لك على المعلومات القيمة

أرجو النصيحة للحصول على الحل الأمثل (من ناحية سرعة الاستجابة والاستقرار)

===============================
إذا قسمنا العدد الكلي (750) على 3 مجموعات (3 microcontrollers ) وذلك بهدف تقليل إستخدام الرام الداخلية و وضعنا مايكرو للقيادة.

هل يصبح النظام اسرع وأكثر استقرارا برأيك أم انه غير ضروري؟

======================================

النظام هو عبارة عن حوالي 7 محركات و 15 حساس بالاضافة إلى 750 خرج (السابق ذكره) و سيتم ربطه بالحاسب عن طريق RS232 لأخذ قراءات دورية لبعض المعطيات الموجودة في الـ internal eeprom
السلام عليكم
المتحكمات 18f مثلا نستخدم 18f45k22 ذو 40 بن مناسب للنظام و 28 قناه لقراءه الحساسات ولاادعي لتقسيم الى أكثر من مايكرو
ولكن ذاكره هذا البك كبيره تصل الى 32 كيلوبات ورام تصل الى 1536 بايت
ويمكن أستخدام نوعيه اخرى اذا تطلب نظام أكثر من ذلك
ولجعله سريع نزيد تردد كرستاله فهو يعمل بكرستاله داخليه وخارجيه ولكني لم أجربه اكثر من 8 ميكاهيرتز الا انه يمكن ان تصل سرعته الى 64 ميكاهيرتز
عموما أنت تشرحلي نظامك كيف يعمل لانه غامض بعض شيئ وماهي نوعيه الحساسات وماهي المحركات
بالنسبه للحساسات توجد دوائر متكامله ممكن ربط عليها عدد من حساسات ولكن لايحضر الان ببالي هذا النوع
عموما مشروعك يحتاج الى تخطيط اولا ومن ثم قرار في البرمجه
يعني اقصد رسم خريطه الالكترونيه وبعدها البرمجه فالبرمجه تعتمد على عمل مشروع وخارطه الالكترونيه
تحياتي


mwz86
:: مهندس ::
تاريخ التسجيل: Mar 2014
المشاركات: 4
نشاط [ mwz86 ]
قوة السمعة:0
قديم 08-04-2014, 10:19 AM المشاركة 7   
افتراضي


السلام عليكم

استاذي شكرا لك على المساعدة
قمت بالعمل بنصيحتك وقد كتبت الكود التالي للـ output :
كود:
// S_CP = 11&12
// DATA = 14
// OE = 10


sbit DATA at PORTC.B0;
sbit S_CP at PORTC.B1;
sbit OE   at PORTC.B2;
unsigned short count;
unsigned short counter;
unsigned short b_cont;
unsigned int ii=0;
unsigned long tester[]={0b11111111,0b11111111,0b11111111,0b11111111
                                  ,0b01111111,0b11111111,0b11111111,0b11111111
                                  ,0b00111111,0b11111111,0b11111111,0b11111111
                                  ,0b00011111,0b11111111,0b11111111,0b11111111};

void HC595(unsigned char out_bit)
{
     unsigned int i=8;
     unsigned char out_temp;
     if(b_cont==3)
       i=9;
     for(counter=0;counter<i;counter++)
     {
          out_temp = out_bit & 0x80;
          DATA = out_temp && 0x80;
          S_CP = 1;
          S_CP = 0;
          out_bit <<= 1;
     }
}

void main ()
{
     DDRC=0xFF;
     PORTC=0x00;
     do {
             for(count=0;count<4;count++)
             {
                 OE=1;
                 for(b_cont=0;b_cont<4;b_cont++)
                 {
                      HC595(tester[ii]);
                      ii++;
                 }
                 OE=0;
             }
             ii=0;
          }
          while(1);
}
المايكرو المستخدم atmega8
واربع 74hc595

قمت بتجريبها على البروتوس وعملت
ولكن هل نستطيع كتابة خوارزمية أسرع وأفضل؟؟

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

والقراءة منها كدخل للخوارمية السابقة عوضا عن المصفوفة الثابتة؟

مع جزيل الشكر


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 08-04-2014, 03:02 PM المشاركة 8   
افتراضي


السلام عليكم

استاذي شكرا لك على المساعدة
قمت بالعمل بنصيحتك وقد كتبت الكود التالي للـ output :
كود:
// S_CP = 11&12
// DATA = 14
// OE = 10


sbit DATA at PORTC.B0;
sbit S_CP at PORTC.B1;
sbit OE   at PORTC.B2;
unsigned short count;
unsigned short counter;
unsigned short b_cont;
unsigned int ii=0;
unsigned long tester[]={0b11111111,0b11111111,0b11111111,0b11111111
                                  ,0b01111111,0b11111111,0b11111111,0b11111111
                                  ,0b00111111,0b11111111,0b11111111,0b11111111
                                  ,0b00011111,0b11111111,0b11111111,0b11111111};

void HC595(unsigned char out_bit)
{
     unsigned int i=8;
     unsigned char out_temp;
     if(b_cont==3)
       i=9;
     for(counter=0;counter<i;counter++)
     {
          out_temp = out_bit & 0x80;
          DATA = out_temp && 0x80;
          S_CP = 1;
          S_CP = 0;
          out_bit <<= 1;
     }
}

void main ()
{
     DDRC=0xFF;
     PORTC=0x00;
     do {
             for(count=0;count<4;count++)
             {
                 OE=1;
                 for(b_cont=0;b_cont<4;b_cont++)
                 {
                      HC595(tester[ii]);
                      ii++;
                 }
                 OE=0;
             }
             ii=0;
          }
          while(1);
}
المايكرو المستخدم atmega8
واربع 74hc595

قمت بتجريبها على البروتوس وعملت
ولكن هل نستطيع كتابة خوارزمية أسرع وأفضل؟؟

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

والقراءة منها كدخل للخوارمية السابقة عوضا عن المصفوفة الثابتة؟

مع جزيل الشكر
السلام عليكم
اخي كريم انا لم أتعامل مع مايكروكنترولر من انواع غير البيك
لكن عموما ارفقلي ملف البروتيس مع ملف البرمجه لقوم بالتعديل عليه ويمكن استخدام مكتبه لايسي 74HC595

بالنسبه للكتابه على فلاش البيك اذا كنت تقصد كتابه على روم فهذا يتم فقط عند برمجه مايكرو
اما للكتابه على رام او قراءه منه فيمكن ذلك عبر نظام uart يعني نستخدم RS232
لاتصال بين البيك وكمبيوتر ولكن هنا ماذا تريد أن تقرأ ؟

إضافة رد

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

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

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


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

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