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

   

borda
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2007
المشاركات: 85
نشاط [ borda ]
قوة السمعة:
قديم 23-07-2017, 04:52 PM المشاركة 9   
افتراضي



السلام عليكم اخي في الله

اود ان اشكرك بشدة علي ما قدمت لي من معلومات كانت غابئة عني بارك الله فيك و في علمك النافع
اسمح لي بسؤال اخر كيف اشغل timer0 & timer1 mikr c AVR
وشكرا

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 23-07-2017, 11:25 PM المشاركة 10   
sun


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

اما عن تايمر 0 , فاعداده كما يلى ,

كود:
char COUNT;

void TIMER0() iv IVT_ADDR_TIMER0_OVF ics ICS_AUTO {   // interrupt service routine
   COUNT ++;

}


void main() { 

 TCCR0 |= 1<<CS00;  // no prescalar  step(1)
 TIMSK |= 1<< TOIE0; // enable timer overflow interrupt  step(2) 
 SREG_I_BIT = 1; // enable general interrupt bit in status reg.  step(3)
 
  }
اما من اين اتيت بخطوات هذه الاعدادات فموجودة بداية من صفحة 71 من داتا شيت لميكرو atmega 8 حيث شرح مسجلات التايمر 0 .
بالنسبة لتايمر 1 , محتاج نحدد اى مود تريده ان يعمل حيث يمكنه العمل ك pwm بالاضافة كتايمر و عداد طبعا , لكنك فى الاخر ستضبط اعدادت المسجلات ايضا كما تريد .

ملحوظة : ميكروسي يكتب لك اسم interrupt service routine بسهولة من خلال :
Tools ---> Interrupt Assistance
ثم تختار الانتربت و تسميه اى اسم فقط .

و ان احتجت توضيح اكثر عرفنى و الله المستعان


اللهم احفظ اقصانا و امتنا



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

borda
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2007
المشاركات: 85
نشاط [ borda ]
قوة السمعة:
قديم 24-07-2017, 03:28 AM المشاركة 11   
Question السلام عليكم اخي المشتاق الي الله


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

اما عن تايمر 0 , فاعداده كما يلى ,

كود:
char COUNT;

void TIMER0() iv IVT_ADDR_TIMER0_OVF ics ICS_AUTO {   // interrupt service routine
   COUNT ++;

}


void main() { 

 TCCR0 |= 1<<CS00;  // no prescalar  step(1)
 TIMSK |= 1<< TOIE0; // enable timer overflow interrupt  step(2) 
 SREG_I_BIT = 1; // enable general interrupt bit in status reg.  step(3)
 
  }
اما من اين اتيت بخطوات هذه الاعدادات فموجودة بداية من صفحة 71 من داتا شيت لميكرو atmega 8 حيث شرح مسجلات التايمر 0 .
بالنسبة لتايمر 1 , محتاج نحدد اى مود تريده ان يعمل حيث يمكنه العمل ك pwm بالاضافة كتايمر و عداد طبعا , لكنك فى الاخر ستضبط اعدادت المسجلات ايضا كما تريد .

ملحوظة : ميكروسي يكتب لك اسم interrupt service routine بسهولة من خلال :
Tools ---> Interrupt Assistance
ثم تختار الانتربت و تسميه اى اسم فقط .

و ان احتجت توضيح اكثر عرفنى و الله المستعان


اللهم احفظ اقصانا و امتنا


السلام عليكم اخي المشتاق الي الله
اولا اخي اشكرك علي المجهود في الرد علي بالمثال التجريبي لكي افهم
ثانيا انت لم تحسب الكرستالة مع اني اعمل مع المتحكمات اخري لازم احسب الكرستالة

ثالثا انت نوهت علي شئ يهمني جدا هي زيادة pwm عن طريق timer1 فهل يجوز عمل pwm علي اي رجل في المتحكم شكرا


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 619
نشاط [ مشتاق الله ]
قوة السمعة:
قديم 24-07-2017, 08:00 AM المشاركة 12   
sun


بسم الله الرحمن الرحيم
اخى العزيز ,

ثانيا انت لم تحسب الكرستالة مع اني اعمل مع المتحكمات اخري لازم احسب الكرستالة
حسبتها اخى فى الامر التالى :
TCCR0 |= 1<<CS00; // no prescalar step(1)
حيث سيتم استخدام المذبذب بسرعته بدون قسمة و يكون زمن التايمر لكل نبضة عد هى زمن نبضة المذبذب .

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


اللهم احفظ اقصانا و امتنا




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