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

   

الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 06-06-2009, 02:37 AM المشاركة 9   
افتراضي



DDRB =0B00111111;

الصفر يعني إدخال
الواحد يعني إخراج

اعلانات

الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 06-06-2009, 02:39 AM المشاركة 10   
افتراضي السلام عليكم


أرجوا ملاحظة هذا الكود وتحليله

كود:
/*
 * Project name:
     Button (Demonstration of using Button Library)
 * Copyright:
     (c) Mikroelektronika, 2008.
 * Revision History:
     20080110:
       - initial release;
 * Description:
     This program demonstrates usage on-board button as PORTB input.
     On every PB0 one-to-zero transition PORTC is inverted.
 * Test configuration:
     MCU:             ATmega128
     Dev.Board:       BigAVR2
     Oscillator:      External Clock 08.0000 MHz
     Ext. Modules:    -
     SW:              mikroC PRO for AVR
 * NOTES:
     - Make sure you turn ON the PORTC LEDs.
     - Put button jumper (J6) into VCC position and pull-down PORTB. (board specific)
*/
// Button connections
sbit Button_Pin           at PINB.B0;   // Input pin, PINx register is used
sbit Button_Pin_Direction at DDRB.B0;
// End Button connections
bit oldstate;                       // Old state flag
void main() {
  Button_Pin_Direction = 0;         // Set pin as input
  DDRC  = 0xFF;                     // Configure PORTC as output
  PORTC = 0xAA;                     // Initial PORTC value
  
  oldstate = 0;
  
  do {
    if (Button(1, 1)) {             // Detect logical one
      oldstate = 1;                 // Update flag
    }
    if (oldstate && Button(1, 0)) { // Detect one-to-zero transition
      PORTC = ~PORTC;               // Invert PORTC
      oldstate = 0;                 // Update flag
    }
  } while(1);                       // Endless loop
}

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

الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,583
نشاط [ 5282 ]
قوة السمعة:
قديم 06-06-2009, 08:15 AM المشاركة 11   
Post السلام عليكم


لقد كتبت هذا الموضوع عن برمجة الavr ب ميكروبيسك لانة اسهل وابسط من الميكرو سى يمكنك الاطلاع علية من على هذا الرابط وبة بعض المشاريع


http://www.qariya.com/vb/showthread.php?t=39998


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 07-06-2009, 02:31 AM المشاركة 12   
افتراضي


كود:
DDRB =0B00111111;
اخي ابو زكور
كنت قد سالتك عن هذه العبارة . فقلت لي هي تعمل مع هذا النوع من المتحكمات
و الشيء الجيد انك استعرضت موضوع avr و لو تلاحظ ان هذه العبارة خاصة بلغة المايكرو بيزك حسب ما افاد الاخ العزيز صاحب الموضوع . فهنا انت ا ستخدمت عبارة من المايكروبيزك في المايكروسي . و هذا طبعا غير ممكن الا اذا كانت فعلا متوافقة
بالاضافة الى ان AVR غير موجود في برنامج المايكروسي .
اما ان تغير اللغة او تغير المتحكم


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 07-06-2009, 04:39 PM المشاركة 13   
افتراضي


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

أتمنى لك أخي الكريم رحلة موفقة في طريقك لاحتراف برمجة avr و atmega و...

أرجو أن تسمح لي بأن أقدم بعض التوضيحات في هذا الجانب .

أولا :

DDRB =0B00111111;
اخي ابو زكور
كنت قد سالتك عن هذه العبارة . فقلت لي هي تعمل مع هذا النوع من المتحكمات
و الشيء الجيد انك استعرضت موضوع avr و لو تلاحظ ان هذه العبارة خاصة بلغة المايكرو بيزك حسب ما افاد الاخ العزيز صاحب الموضوع . فهنا انت ا ستخدمت عبارة من المايكروبيزك في المايكروسي .
أخي الكريم المهندس / حيدر إن الأمر السابق ليس خاص بلغة البيزك . بل إن المسجل DDRB يمكنك استخدامه في لغة البيزك أو السي أو باسكال أيضا .
لماذا ؟
لأنه ليس أمر بل إنه مسجل داخلي يوجد داخل هذا النوع من المتحكمات التي هي من نوع AVR أو ATMEGA ...
وبالطبع ليس موجود في المتحكمات PIC ولكن يوجد شبيه به وهو TRISB والذي يقوم بنفس الوظيفة (الوظيفة هي تحديد الدخل والخرج)
حيث أنه في DDRB نجد العلاقات التالية :

1 منطقي تعني خرج صفر منطقي تعني دخل

وهذا طبعا على عكس الموجود في TRISB
حيث أنه في TRISB نجد العلاقات التالية

1 منطقي تعني دخل صفر منطقي تعني خرج .

-------------------------
ثانيا :
بالاضافة الى ان AVR غير موجود في برنامج المايكروسي .
أخي الكريم الأستاذ حيدر لعلك بحثت في الإصدار الذي لديك من المايكروسي على AVR أو ATMEGA ولم تجد هذه المتحكمات من المتحكمات المتاحة فجاءت بعض الحيرة .
إن الإصدار الذي لديك ولدى الإغلبية من الناس هو الإصدار الخاص ببرمجة البك PIC ولا يستطيع برمجة AVR أو ATMEGA أو 8051 أو ...
فهو مخصص للبك فقط .

ولكن للعلم إن شركة مايكروإلكترونيكا قامت بعمل إصدار من لغة مايكروسي مخصص للمتحكمات التي هي من النوع AVR و ATMEGA هذا الإصدار يستطيع برمجة هاتين العائلتين ولا يستطيع برمجة البك ولا 8051
ويتشابه هذا الإصدار مع الإصدار المخصص للبك في معظم الأشياء و في الكثير من المكتبات (نفس الأسماء) ونفس طريقة استخدام اللغة و SYNTAX
كل الإختلاف فقط في المكونات الداخلية أو المسجلات الداخلية التي تتعامل معها كمبرمج وهذا الاختلاف ناتج عن اختلاف اسماء المسجلات في البك PIC عن الـ AVR . والاختلافات البسيطة في التركيب الداخلي لهما .

يمكنك تحميل إصدار مايكروسي الخاص بـ AVR من موقع الشركة

http://www.mikroe.com/en/compilers/mikroc/avr/


=======================
أخي الكريم // 5282

لقد كتبت هذا الموضوع عن برمجة الavr ب ميكروبيسك لانة اسهل وابسط من الميكرو سى يمكنك الاطلاع علية من على هذا الرابط وبة بعض المشاريع
قضية من أسهل مِن مَن ؟ لدي وجهة نظر أخرى فيها . فلا شك أن ميكروسي وميكروبيسك كلاهما أنتجتهم نفس الشركة ولا يزيدوا في الامكانيات عن بعضهم البعض بل هم سواء .
كل ما في الأمر أن هناك من تعلم لغة البيسك مثلا الخاصة بالكمبيوتر أو فيجوال بيسك مثلا فعندما يرى لغة مايكروبيسك يظن أنها الأسهل من ميكروسي
وكذلك من عنده خلفية عن السي ويرى مايكروسي يرى أنها الأسهل . كل حسب ظروفه وأحواله . تجربتي الشخصية تقول أن كلايهما سهل ولا فرق إلا في طريقة كتابة الأوامر لكن الأساسيات تقريبا واحدة الفرق في SYNTAX اللغة فقط.

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


الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 07-06-2009, 06:21 PM المشاركة 14   
attension السلام عليكم


شكرا للأستاذ أحمد على التوضيح و للأستاذ حيدر على المتابعة
بالنسبة لهذا الكود فهو من مكتبة برنامج mikroC PRO for AVR
و أحاول التعلم بواسطتها عن طريق ملاحظة الأوامر و تحليلها
و بالتأكيد بعد إجابة الأستاذ أحمد لا يوجد أي إضافة .

أرجوا ملاحظة هذا الكود وتحليله

كود:
/*
 * Project name:
     Button (Demonstration of using Button Library)
 * Copyright:
     (c) Mikroelektronika, 2008.
 * Revision History:
     20080110:
       - initial release;
 * Description:
     This program demonstrates usage on-board button as PORTB input.
     On every PB0 one-to-zero transition PORTC is inverted.
 * Test configuration:
     MCU:             ATmega128
     Dev.Board:       BigAVR2
     Oscillator:      External Clock 08.0000 MHz
     Ext. Modules:    -
     SW:              mikroC PRO for AVR
 * NOTES:
     - Make sure you turn ON the PORTC LEDs.
     - Put button jumper (J6) into VCC position and pull-down PORTB. (board specific)
*/
// Button connections
sbit Button_Pin           at PINB.B0;   // Input pin, PINx register is used
sbit Button_Pin_Direction at DDRB.B0;
// End Button connections
bit oldstate;                       // Old state flag
void main() {
  Button_Pin_Direction = 0;         // Set pin as input
  DDRC  = 0xFF;                     // Configure PORTC as output
  PORTC = 0xAA;                     // Initial PORTC value
 
  oldstate = 0;
 
  do {
    if (Button(1, 1)) {             // Detect logical one
      oldstate = 1;                 // Update flag
    }
    if (oldstate && Button(1, 0)) { // Detect one-to-zero transition
      PORTC = ~PORTC;               // Invert PORTC
      oldstate = 0;                 // Update flag
    }
  } while(1);                       // Endless loop
}


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


شكرا لك استاذ احمد على التوضيح


الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 08-06-2009, 12:50 AM المشاركة 16   
attension السلام عليكم


و بالتأكيد بعد إجابة الأستاذ أحمد لا يوجد أي إضافة .
أخي حيدر أقصد بهذا الكلام أنه لايوجد عندي أنا إضافة على كلام الأستاذ أحمد

بالنسبة للكود إذا كان بإمكانك المساعدة أكون من الشاكرين .



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