بسم الله الرحمن الرحيم
اما عن تايمر 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 علي اي رجل في المتحكم شكرا