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

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

الصورة الرمزية mahmosha
mahmosha
:: مهندس جيد ::
تاريخ التسجيل: Sep 2011
الدولة: مصر
المشاركات: 213
نشاط [ mahmosha ]
قوة السمعة:0
قديم 10-12-2011, 07:12 PM المشاركة 1   
ha i made a interrupt code to calc the frequncy and it doesnt work Twitter FaceBook Google+



i made this code to calculate the freq using Rb0/int and then shows it on portd
when i tested it on protues it didnt work i dont know why please check and tell me the mistake
كود:
char x=0;
 void check(){
x=1;
delay_ms(1000);
portd=x;
 x=0 ;}
void Interrupt(){
if (x==0){ check();
}else{x++  ;}
intcon.f1=0;}
void main() {
 trisb=0b0000001;
 trisd=0;
 portd=0;
 portb=0;
 cmcon=0x07;
 intcon=0b1001000;
 option_reg=0b1000000;}

اعلانات

الصورة الرمزية mahmosha
mahmosha
:: مهندس جيد ::
تاريخ التسجيل: Sep 2011
الدولة: مصر
المشاركات: 213
نشاط [ mahmosha ]
قوة السمعة:0
قديم 11-12-2011, 12:42 PM المشاركة 2   
افتراضي


أنا في حاجة إلى مساعدة

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

الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:0
قديم 11-12-2011, 02:07 PM المشاركة 3   
افتراضي


هذا , لكن بالاعتماد على التايمر 1
http://www.pic-tronics.com/Frequency...PIC16F877A.php


hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 701
نشاط [ hamzazayyad ]
قوة السمعة:0
قديم 11-12-2011, 07:19 PM المشاركة 4   
افتراضي


i made this code to calculate the freq using Rb0/int and then shows it on portd
when i tested it on protues it didnt work i dont know why please check and tell me the mistake

كود:
char x=0;
كود:
void check(){
x=1; delay_ms(1000); portd=x; x=0 ;} void Interrupt(){ if (x==0){ check(); }else{x++ ;} intcon.f1=0;} void main() { trisb=0b0000001; trisd=0; portd=0; portb=0; cmcon=0x07; intcon=0b1001000; option_reg=0b1000000;}




السلام عليكم
المشكله بالكود
قم باضافه هده الى برنامج المقاطعه

if((INTCON.RB0==0)&&(PORTB.F0== ) //P

ولكن ايضا هل تعتقد انك تستطيع حساب التردد بهذه الطريقه؟؟؟

ولا تنسونا من صالح دعائكم


الصورة الرمزية mahmosha
mahmosha
:: مهندس جيد ::
تاريخ التسجيل: Sep 2011
الدولة: مصر
المشاركات: 213
نشاط [ mahmosha ]
قوة السمعة:0
قديم 11-12-2011, 08:22 PM المشاركة 5   
افتراضي


السلام عليكم
المشكله بالكود
قم باضافه هده الى برنامج المقاطعه

if((INTCON.RB0==0)&&(PORTB.F0== ) //P

ولكن ايضا هل تعتقد انك تستطيع حساب التردد بهذه الطريقه؟؟؟

Read more: http://www.qariya.com/vb/newreply.ph...#ixzz1gGOCjYJP
i dont think this is so useful because i only have one type of iterruption activated so i dont have to check for it and pelase keep helping and thx for ur answer
هذا , لكن بالاعتماد على التايمر 1
http://www.pic-tronics.com/Frequency...PIC16F877A.php
اليوم 01:42

Read more: http://www.qariya.com/vb/newreply.ph...#ixzz1gGObnifl
thx bro for the link but i wanted to do it with rbo/int because the tmr0 is 1:2
so its not very speficated
and can u translate it in mikroc? thx again


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,139
نشاط [ geniusse01 ]
قوة السمعة:106
قديم 12-12-2011, 08:39 AM المشاركة 6   
افتراضي


i made this code to calculate the freq using Rb0/int and then shows it on portd
when i tested it on protues it didnt work i dont know why please check and tell me the mistake
كود:
char x=0;
 void check(){
x=1;
delay_ms(1000);
portd=x;
 x=0 ;}
void Interrupt(){
if (x==0){ check();
}else{x++  ;}
intcon.f1=0;}
void main() {
 trisb=0b0000001;
 trisd=0;
 portd=0;
 portb=0;
 cmcon=0x07;
 intcon=0b1001000;
 option_reg=0b1000000;}
السلام عليكم

في البداية يظهر انك تستخدم البيك 16F877A حيث يحتوي على بورت D ، وليس هناك داع لاستخدام CMCON=0x07 انما تستخدم الامر ADCON1=0x07 لتستخدم البورت A كمدخل او مخرج رقمي وليس انالوج . هذه ملاحظة .

ثانية مسجل المقاطعة : INTCON=0b10010000; كتبته انت بوجود نقص 0 لتحصل على الاعداد المناسب .

ثالثا قمت باعداد المداخل والمخارج ومن ثم انهيت البرنامج ..وهكذا في حال بدأ البرنامج فانه يقوم باعدادات المداخل وينهي البرنامج مباشرة وهكذا لن تحصل على اشارة في برنامجك ، حيث يجب ان تقوم بعمل حلقة لا منتهية :

while (1)
{

}
بحيث يبدا العد في اي وقت جاءت فيه الاشارة .. قم بهذا التعديل وبعدها نناقش تكملة البرنامج ..

ارجو لك التوفيق ...

واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم ..

رابعا


hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 701
نشاط [ hamzazayyad ]
قوة السمعة:0
قديم 12-12-2011, 09:04 AM المشاركة 7   
افتراضي


i dont think this is so useful because i only have one type of iterruption activated so i dont have to check for it and pelase keep helping and thx for ur answer

thx bro for the link but i wanted to do it with rbo/int because the tmr0 is 1:2
so its not very speficated
and can u translate it in mikroc? thx again
السلام عليكم
الاخ mahmosha لو قمت بوضع السطر في المشاركه السابقه سيعمل البرنامج على المقاطعه وكنت اعلم ان لديك مقاطعه وحيده ولكن لو دققت بالنصف الاخر للسطر لعرفت عن مادا اتكلم وعرفت المشكله بالكود.

ولا تنسونا من صالح دعائكم


الصورة الرمزية mahmosha
mahmosha
:: مهندس جيد ::
تاريخ التسجيل: Sep 2011
الدولة: مصر
المشاركات: 213
نشاط [ mahmosha ]
قوة السمعة:0
قديم 12-12-2011, 11:27 AM المشاركة 8   
افتراضي


السلام عليكم

في البداية يظهر انك تستخدم البيك 16F877A حيث يحتوي على بورت D ، وليس هناك داع لاستخدام CMCON=0x07 انما تستخدم الامر ADCON1=0x07 لتستخدم البورت A كمدخل او مخرج رقمي وليس انالوج . هذه ملاحظة .

ثانية مسجل المقاطعة : INTCON=0b10010000; كتبته انت بوجود نقص 0 لتحصل على الاعداد المناسب .

ثالثا قمت باعداد المداخل والمخارج ومن ثم انهيت البرنامج ..وهكذا في حال بدأ البرنامج فانه يقوم باعدادات المداخل وينهي البرنامج مباشرة وهكذا لن تحصل على اشارة في برنامجك ، حيث يجب ان تقوم بعمل حلقة لا منتهية :

while (1)
{

}
بحيث يبدا العد في اي وقت جاءت فيه الاشارة .. قم بهذا التعديل وبعدها نناقش تكملة البرنامج ..

ارجو لك التوفيق ...

واخر دعوانا ان الحمدلله رب العالمين .. وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم ..

رابعا
shokran ya a5y 3ala al ma3lomat al mofeda
bstsna2 an al register bta3 intcon 7 bits mosh 8
ana hagarab w arod 3lek
motshker gedan

إضافة رد

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

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

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


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

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