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

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

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 31-07-2014, 02:45 PM المشاركة 1   
ha شرح تحويل كود من pic الى atmega Twitter FaceBook Google+



السلام عليكم

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

pic18f4550 ======== atmega16

و استعنة بببرنامج

microc for avr

و غيرة جميع اعددات الدخل و الخرج على البرنامج و انحلة جميع الخطوط الحمراء

و لاكن لم اجد مدا افعل مع هذه الدالة

void InitTimer1(){
T1CON = 0x01;
TMR1IF_bit = 0;
TMR1H = 0xF0;
TMR1L = 0x60;
TMR1IE_bit = 1;
INTCON = 0xC0;
}

هده الدالة تعمل جيدا مع البيك لاكن عند التحوبل و كلها اخطاء و لا تعمل

هل ممكن مساعدة لكي اكمل المشروع

اعلانات

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 02-08-2014, 08:57 AM المشاركة 2   
افتراضي


هل من مساعدة

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

Ahmed Waheed
:: مهندس ::
تاريخ التسجيل: Oct 2006
المشاركات: 15
نشاط [ Ahmed Waheed ]
قوة السمعة:0
قديم 02-08-2014, 09:56 PM المشاركة 3   
افتراضي


السلام عليكم

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

pic18f4550 ======== atmega16

و استعنة بببرنامج

microc for avr

و غيرة جميع اعددات الدخل و الخرج على البرنامج و انحلة جميع الخطوط الحمراء

و لاكن لم اجد مدا افعل مع هذه الدالة

void InitTimer1(){
T1CON = 0x01;
TMR1IF_bit = 0;
TMR1H = 0xF0;
TMR1L = 0x60;
TMR1IE_bit = 1;
INTCON = 0xC0;
}

هده الدالة تعمل جيدا مع البيك لاكن عند التحوبل و كلها اخطاء و لا تعمل

هل ممكن مساعدة لكي اكمل المشروع

أخى الفاضل يجب مراعاة أسماء المسجلات فى كلا المتحكمين (بيك و اتميل ) حيث أن أسماء المسجلات تختلف من نوع لأخر ، بمعنى أن المسجلات T1CON ، TMR1H ، TMR1L ،INTCON فى البيك ، أما فى المتحكم اتميل فلها أسم أخر على حسب نوع ورقم المتحكم الذى تستخدمه (راجع الداتا شيت الخاص بالمتحكم الذى تستخدمه).
فعلى سبيل المثال إذا كنت تستخدم المتحكم ATMEGA32 فإن أسماء المسجلات للتايمر1 تكون كالاتى :
TCNT1L/TCNT1H and OCR1AL/OCR1AH

ويمكن ضبطها كالاتى :

void timer1_init()
{ // TCCR1A=0;
TCNT1H = 0;
TCNT1L=0;
OCR1AH = 0xDC; // high byte
OCR1AL=0x05; // low byte
TIMSK |= (1 << OCIE1A);
SREG_I_bit = 1;
TCCR1B |= (1<<WGM12)|(1 << CS12)|(1 << CS10);
}

مع مراعاة القيم المطلوبة لكل مسجل .


الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 03-08-2014, 05:38 PM المشاركة 4   
افتراضي


شكرا اخي طيب سافتح دتاشيت للاتميغا لاكن لم اجد


Ahmed Waheed
:: مهندس ::
تاريخ التسجيل: Oct 2006
المشاركات: 15
نشاط [ Ahmed Waheed ]
قوة السمعة:0
قديم 03-08-2014, 08:53 PM المشاركة 5   
افتراضي


http://www.atmel.com/Images/doc2466.pdf

ابتداء من صفحة رقم : 110

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً المخترع01 ( شكر العضو على هذه المشاركة )

الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 04-08-2014, 03:24 PM المشاركة 6   
x1


السلام

لقد وجدة في الدتا شيت اسماء اخرى و لم اجد مقابل لاسماء

الاول للبيك و المقابل atmega16


TCNT1*****T1CON
TCNT1H****TMR1H
TCNT1L****TMR1L
TIFR****INTCON

هذا ما وجدة لاكن هناك اسماء لم اجد بمذا اغيرها من البيك الى الاتميغا

TMR1IE_bit
TMR1IF_bit

INT0F_bit
TCNT1IF_bit
T0CON
INT0IE_bit=1
INTEDG0_bit=0




الرجاء المساعدة


Ahmed Waheed
:: مهندس ::
تاريخ التسجيل: Oct 2006
المشاركات: 15
نشاط [ Ahmed Waheed ]
قوة السمعة:0
قديم 04-08-2014, 05:02 PM المشاركة 7   
افتراضي


هذه أسماء خانات ثنائية فى مسجلات معينة ،يجب أولا معرفة ماوظيفتها فى البيك ومن ثم يمكنك الوصول الى ما يقابلها فى الأتميل .
فمثلا:
--فى البيك الخانة الثنائية TMR1IE_bit ، TMR1IF_bit تعنى مايلى:
TMR1IE=1; // Timer1 interrup flag enable
TMR1IF=0; // clear overflow flag


فنجد ما يناظرهم فى الاتميل مايلى:
المسجل TIMSK Register هو مشترك لكل مسجلات التوقيت فى الاتميل ، وهذا المسجل به الخانة الثنائية TOIE1 اى Overflow Interrupt Enable bit وايضا المسجل TIFR Register به الخانة الثنائية TOV1 اى Overflow Flag ،، فيكون
TOIE1 =1 // timer1 Overflow Interrupt Enable
TOV1 =0; //clear or set Overflow Flag to 0
ثم تمكن المقاطعة العامة
SREG_I_bit = 1; //enable global interrupt


او

حاول أن تقوم بعمل مشروع جديد ولكن فى هذه المرة إستخدم " الاتميل أ فى أر"
وباستخدام ال " ويزارد" .. ثم انظر ماذا سيكتب لك ال " ويزارد" من كود ، وقم بنسخه فى الكود الاول الذى تستخدمه.


الصورة الرمزية المخترع01
المخترع01
:: مهندس متميز ::
تاريخ التسجيل: Dec 2009
المشاركات: 397
نشاط [ المخترع01 ]
قوة السمعة:0
قديم 04-08-2014, 09:24 PM المشاركة 8   
x1


1000 شكر اخي

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

نصحتني بالبحث في اسماء التي تقابل في عائلة AVR و نجح الامر في البعض لاكن لم استطع ان اجد ما يقابل المسجلات الاخرى

و انا تعلمة على ميكرو سي وجدنه سهل مع العلم اني مبتدئ و لست متمرس

ارجو منكم ان تساعدني

إضافة رد

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

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

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


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

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