عضویت     ورود  دقت اول از پشيماني آخر جلوگيري مي كند . سقراط جمعه، 1 تير ماه ، 1397

کانال تلگرام


تبلیغات متنی


منوی سایت


جست و جو در بانك مقالات




مقالات جدید
تعداد شاخه ها: 30 عدد
تعداد مقالات: 758 عدد 1: آزمايشگاه الكترونيك - استاد محرري 
[دفعات مشاهده : 4572 بار]
 2: جزوه درس مخابرات 1 - دانشگاه فردوسي مشهد 
[دفعات مشاهده : 4522 بار]
 3: كتاب مهندسي تاسيسات / دكتر كلهر 
[دفعات مشاهده : 4559 بار]
 4: مجموع اعوجاج هارمونیک T.H.D 
[دفعات مشاهده : 4500 بار]
 5: كتاب "روش طراحي و تحليل مدارهاي الكترونيك" 
[دفعات مشاهده : 10915 بار]
 6: ادوات نوري 
[دفعات مشاهده : 4623 بار]
 7: كتاب اصول تلويزيون رنگي 
[دفعات مشاهده : 6152 بار]
 8: پروژه دزد گیر با سنسور تشخیص حرکت pir با قفل رمز الکترونیکی 
[دفعات مشاهده : 5786 بار]
 9: جزوه اندازه گیری الکتریکی 
[دفعات مشاهده : 4912 بار]
 10: سوالات کنکور کارشناسی ارشد 90 / گروه مهندسی برق 
[دفعات مشاهده : 6878 بار]
 11: آرشيو پروژه هاي 8051 
[دفعات مشاهده : 5584 بار]
 12: آرشيو پروژه هاي AVR‌ (ـ‌ 126 پروژه ) 
[دفعات مشاهده : 13332 بار]
 13: آموزش برنامه نويسي و كار با ماژول Sim300CZ با ميكروكنترلر AVR 
[دفعات مشاهده : 9635 بار]
 14: سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق 
[دفعات مشاهده : 7015 بار]
 15: ارتباط میکروهای PIC با کمک پروتکل سریال I2C و نکات تکمیلی ماژول MSSP 
[دفعات مشاهده : 5179 بار]
 16: ساعت تقویم با کمک میکروکنترلر PIC و DS1307 
[دفعات مشاهده : 5746 بار]
 17: تایمرهای چند زمانه ( ساعت مرکزی ) با میکرو PIC 
[دفعات مشاهده : 5217 بار]
 18: ساعت تقویم شمسی مجهز به آلارم روزانه و هفتگی 
[دفعات مشاهده : 6165 بار]
 19: صفحه کلید وقفه ای با میکروکنترلر PIC 
[دفعات مشاهده : 4852 بار]
 20: کرنومتر دیجیتال با میکروکنترلر PIC با قابلیت ثبت 3 زمان 
[دفعات مشاهده : 5006 بار]
 21: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HMTR + پروژه چت متنی بیسیم 
[دفعات مشاهده : 7778 بار]
 22: سنسورهای حرارت 
[دفعات مشاهده : 7174 بار]
 23: کنترل وسایل برقی از طریق خط تلفن با میکروکنترلر PIC 
[دفعات مشاهده : 7146 بار]
 24: ارتباط سریال UART بین دو میکروکنترلر PIC 
[دفعات مشاهده : 5418 بار]
 25: گزارش کار آموزی : ماشین های ابزار کنترل عددی CNC 
[دفعات مشاهده : 5667 بار]
 26: کنترل وسایل به کمک ماژول HM-TR و میکرو AVR 
[دفعات مشاهده : 8104 بار]
 27: طراحی و ساخت کنترل از راه دور 1 کانال با کمک ماژول های ASK و آی سی های سری PT 
[دفعات مشاهده : 6710 بار]
 28: مجموعه رفرنس های آموزشی میکروکنترلرهای سری dsPIC 
[دفعات مشاهده : 6192 بار]
 29: مجموعه پروژه های میکروکنترلر AVR با کامپایلر بسکام 
[دفعات مشاهده : 11310 بار]
 30: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HM-T و HM-R با میکرو AVR 
[دفعات مشاهده : 9225 بار]


آخرين مطالب ارسال شده
· روش طراحي و تحليل مدارهاي الكترونيك[ 1 نظر شما چيه؟ - 38544 مشاهده ]
· اصول تلويزيون رنگي[ 0 نظر شما چيه؟ - 17328 مشاهده ]
· نرم افزار DigSilent[ 2 نظر شما چيه؟ - 20694 مشاهده ]
· AVR Tech Lib 2011[ 1 نظر شما چيه؟ - 24185 مشاهده ]
· مجموعه كنفرانس هاي سالينه ميكروچيپ / سال 2009 /[ 2 نظر شما چيه؟ - 21847 مشاهده ]
· آموزش كار با ماژول SIM300CZ با ميكرو AVR[ 4 نظر شما چيه؟ - 24259 مشاهده ]
· مجموعه فيلم هاي آموزشي نرم افزار Altium Designer[ 0 نظر شما چيه؟ - 37345 مشاهده ]
·  سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق[ 0 نظر شما چيه؟ - 19135 مشاهده ]
· لينك دانلود مجله October 2010 / SERVO[ 0 نظر شما چيه؟ - 16387 مشاهده ]
· Catalog CA 01 (10/2009) / International version[ 0 نظر شما چيه؟ - 20276 مشاهده ]

[ موارد بیشتر در بخش اخبار و تازه ها ]


زبان
انتخاب زبان نمایش :



مطالب جديد
· 1: A Survey on Analysis and Design of Model-Based Fuzzy Control Systems
· 2: Effects of Instrument Transformers Location on Measured Impedance by Distance Relay in Presence of T
· 3: ISO/IEC 26702 IEEE Std 1220-2005
· 4: HANDBOOK ON SATELLITE COMMUNICATIONS
· 5: آشکارسازی خودکار اهداف متحرک دریایی و هوایی در رادارهای ساحلی
· 6: A Magnetic Core Voltage-to-Frequency Converter
· 7: AUTOM ATTZOVANO PR OJEKTO VANJE DIGITALNIH SISTEMA
· 8: دانلود کتاب مهندسی کنترل (اوگاتا) + حل المسائل (بخش هفتم و هشتم)
· 9: آشنايي با ميكروكنترولرهاي AVR و نرم افزار CodevisionAVR
· 10: Microwave Devices and Circuits
· 11: روباتیک از ابتدا تا انتها -گفتار سوم
· 12: مدل تعمیم یافته هارمونیکی برای سنتز با کیفیت بالای گفتار
· 13: پیش بینی بلند مدت بار شبکه سراسری ایران با استفاده از شبکه عصبی با ورودیهای فازی ناشی از عدم قطعیت
· 14: شناسايي ژنراتور هاي همپا توسط روش تابع انرژي
· 15: Image Fusion Algorithm for Impulse Noise Reduction
· 16: DESIGN OF ENERGY-EFFICIENT APPLICATIONSPECIFIC INSTRUCTION SET PROCESSORS
· 17: طراحي و پيشنهاد روش پياده سازي الگوريتم ضد چف
· 18: The IDA Pro Book
· 19: پردازش تصاويرماهواره اي با استفاده از شبكه عصبي فازي جهت شناسايي تشكيلات كربناته
· 20: بهبود عملکرد الگوریتم پنهان سازی خطای G.729 برای كاربرد VOIP

[ آخرين مقالات ]


ارسال مقاله به سايت

 



...::: Ir-Micro.Com :::... :: View topic - مشكل استفاده از وقفه خارجي


مشكل استفاده از وقفه خارجي
Goto page 1, 2  Next
 
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC Printable Version
View previous topic :: View next topic  
Author Message
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: جمعه، 18 ارديبهشت ماه ، 1388 14:58:03 Reply with quote Scroll Down to Next postGo to last Post of Page

سلام


من براي فشردن يه دكمه ميخاستم از وقفه خارجي استفاده كنم . با PIC16f877 كسي كدي داره؟

من يكي نوشتم ولي كار نميكنه! يه مقاومت 4.7 كيلو رو به +5 ميزنم موقهي كه مقاومت +5 ولته فقط برامم اجرا ميشه ولي وقتي درش ميارم هنگ ميكنه و هي ريست ميشه! چرا اينطوريه؟

اينم كدم
Code:
DEFINE LOADER_USED 1
@ DEVICE    HS_OSC
@ DEVICE    pwrt_off

INCLUDE "modedefs.bas"

define OSC 20
DEFINE LCD_BITS 4 'LCD bus size 4 or 8

DEFINE LCD_DREG PORTB 'LCD data port
DEFINE LCD_DBIT 4 'LCD data starting bit 0 or 4

DEFINE LCD_RSREG PORTB 'LCD register select port
DEFINE LCD_RSBIT 3 'LCD register select bit
 
DEFINE LCD_EREG PORTB 'LCD enable port
DEFINE LCD_EBIT 2 'LCD enable bit

DEFINE LCD_LINES 4 'Number lines on LCD
define lcd_commandus 2000
define lcd_dataus 1000
               
co var word
co = 0
disable interrupt
TRISB.0 = 1
intcon.1 = 0
INTCON = %10010000    'fall saziie hame vaghfe va int0 (khareji)
ON INTERRUPT GOTO myint ' Interrupt handler is myint
 OPTION_REG.6 = 1      ' ba labeye balaravande vaghfe rokh bede ( feshar dadane kelid)

main:
pause 1
goto main



myint:
intcon.7 = 0
intcon.1 = 0
 co = co + 1
if intcon.1 = 1 then lcdout $fe ,1,dec co  ':intcon.1 = 0
ENABLE INTERRUPT
resume

Back to top
View user's profile Send private message
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: شنبه، 19 ارديبهشت ماه ، 1388 05:58:45 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
این کد رو امتحان کنید . البته قسمت های اضافی رو حذف کردم .

Code:
co var word
co = 0
TRISB.0 = 1
ON INTERRUPT GOTO myint
enable
INTCON = %10010000
 OPTION_REG.6 = 1

main:
pause 1
goto main

myint:
disable
intcon.1 = 0
 co = co + 1
if intcon.1 = 1 then lcdout $fe ,1,dec co  ':intcon.1 = 0
resume
enable


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: شنبه، 19 ارديبهشت ماه ، 1388 13:20:58 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

مرسي درستش كردم ولي بدرد كارم نميخوره آقا حامد بدجوري گير كردم ميخام براي PIC منو بزارم و بايد با دكمه فشاري براش OK بالا پايين و خروج بزارم ( 4 تا دكمه ) مشكل اينه كه نميدونم چطوري بايد اينكارو كرد دستور و سخت افزار زياد داره PIC‌براي دكمه ولي همشون شاس ميزنن ميزني كار نميكنن! يا 3 بار كار ميكنه يا اصلا نميفهمه دكمهاي فشار داده شده! چطوري ميشه حتي 1 فشار روي كليد رو از دست نديم؟ از چه سخت افزار و چه دستوري ( يا دستوراتي ) براي تعريف دكمه فشاري در PIC استفاده ميكنيد؟
Back to top
View user's profile Send private message
alnz
کاربر نمونه
کاربر نمونه

Joined: Feb 28, 2008
Posts: 968




Location: خراسان رضوي
1396165.04 امتیاز

Items

Status: Offline

PostPosted: شنبه، 19 ارديبهشت ماه ، 1388 14:54:35 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام آروین جان

از دستورات خود PIC مثل باتن استفاده نکن ، همون طور که گفتی می لنگه .

من خودم قبلا که کلید رو با IF تعریف می کردم براش . مثلا اگه فعال به صفر تعریف کردی بیا تو برنامه یه ایف بزار که هر وقت صفر شد کارتو انجام بده اینطوری بهتره .

چون سرعت تراشه زیاده لرزشهای مکانیکی کلید رو حس می کنه . البته میشه با دیبانس اون رو رفع کرد اما من که نتونستم Mr. Green

Back to top
View user's profile Send private message Yahoo Messenger
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: شنبه، 19 ارديبهشت ماه ، 1388 15:54:44 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

alnz wrote:
سلام آروین جان

از دستورات خود PIC مثل باتن استفاده نکن ، همون طور که گفتی می لنگه .

من خودم قبلا که کلید رو با IF تعریف می کردم براش . مثلا اگه فعال به صفر تعریف کردی بیا تو برنامه یه ایف بزار که هر وقت صفر شد کارتو انجام بده اینطوری بهتره .

چون سرعت تراشه زیاده لرزشهای مکانیکی کلید رو حس می کنه . البته میشه با دیبانس اون رو رفع کرد اما من که نتونستم Mr. Green


من يه آلمه برنامه نوشتم توش خيلي جالب نميشه اين راه خيلي بنظرم منتقي نيست وقتي اينتراپت هست!

Back to top
View user's profile Send private message
alnz
کاربر نمونه
کاربر نمونه

Joined: Feb 28, 2008
Posts: 968




Location: خراسان رضوي
1396165.04 امتیاز

Items

Status: Offline

PostPosted: شنبه، 19 ارديبهشت ماه ، 1388 18:26:45 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

دوباره سلام

اين برنامه رو امتحان كن شايد جواب داد ، واسه من كه مشكلمو رفع كرد :

Code:
for Z=0 to 100
                pause 5
                if (Key_pin==0)  then return
            next Z   
            if (Key_pin==0)  then return



اون ريترن واسه اينه كه من برنامم تو يه زير حلقه بود مي خاستم برگرده حالا تو هر چي مي خاي بزار جاش .
همون طور كه مي بيني لرزشها رو هم چك مي كنه

به هر حال هر جور عقشته Laughing

Back to top
View user's profile Send private message Yahoo Messenger
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 20 ارديبهشت ماه ، 1388 08:20:56 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

alnz wrote:
دوباره سلام

اين برنامه رو امتحان كن شايد جواب داد ، واسه من كه مشكلمو رفع كرد :

Code:
for Z=0 to 100
                pause 5
                if (Key_pin==0)  then return
            next Z   
            if (Key_pin==0)  then return



اون ريترن واسه اينه كه من برنامم تو يه زير حلقه بود مي خاستم برگرده حالا تو هر چي مي خاي بزار جاش .
همون طور كه مي بيني لرزشها رو هم چك مي كنه

به هر حال هر جور عقشته Laughing


جناب (اسمتم نميدونم عزيز)

من برنامم گفتم خيلي بزرگه تقريبا" كل فلش رو در نهايت خواهد گرفت! الانم با توجه به استفاده از اي سي هاي خارجي كه داره و ديتاهايي كه بهش ميفرسم و ميگيرم و بايد يه زمان مشخصي صبر كنم تا ديتا پردازش بشه و برگرده نميتونم از اين روش استفاده كنم ... فقط اينتراپت

آقا حامد شما چطوري دكمه تعريف ميكنيد؟ نكات اصليشم بگيد خودم راشو پيدا ميكنم

Back to top
View user's profile Send private message
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 21 ارديبهشت ماه ، 1388 22:45:16 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

من تا به حال فقط برای کار با صفحه کلید کامپیوتر بوده که از وقفه استفاده کردم و تو باقی موراد نیازی به استفاده از اون ندیدم . چون سرعت میکرو در برابر سرعت زدن کلید توسط دست خیلی خیلی بیشتر هست و عملا کلیدی نادیده گرفته نمیشه .
اما بیشترین مشکل تو کار با این کلید ها لرزش و ناپایداری بازه ای هست که دارند . دستور باتن از این نظر خوب عمل می کنه . اما من خودم همیشه از if ... استفاده می کنم . برای حذف لرزش هم از یک تایخر در حد 30 میلی ثانیه + انتظار برای رها شدن کلید . یعنی زمانی پردازش اطلاعات مربوط به کلید آغاز میشه که کلید رها شده باشه و با این روش تا به حال به مشکلی برخورد نکردم .
این فقط یه قسمت از موضوع بود . اما اصل کار برمیگرده به مورد استفاده شما . یعنی شرایط مدار و تعداد کلید ها و ... به چه صورت هست که با توجه به اون نوع چک کردن کلید ها مشخص بشه . تو عمل انواع صفحه کلید ها رو میشه به کار برد مثل مستقیم ، ماتریسی ، ترتیبی ، وقفه ای و ...

ضمن اینکه فقط وقتی می تونید به طور قطع بگید که هیچ کلیدی از چشم شما پنهون نمونده که از حالت سخت افزاری استفاده کنید نه از دستورات نرم افزاری . چون دستورات نرم افزاری فقط وقتی خطای صفر دارند که دائم اجرا بشن که این ممکن نیست . اما چون روند زده شدن کلید و ... به حد کافی کند هست میشه این خطا رو صفر فرض کرد .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 22 ارديبهشت ماه ، 1388 08:02:27 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Hamed wrote:
من تا به حال فقط برای کار با صفحه کلید کامپیوتر بوده که از وقفه استفاده کردم و تو باقی موراد نیازی به استفاده از اون ندیدم . چون سرعت میکرو در برابر سرعت زدن کلید توسط دست خیلی خیلی بیشتر هست و عملا کلیدی نادیده گرفته نمیشه .
اما بیشترین مشکل تو کار با این کلید ها لرزش و ناپایداری بازه ای هست که دارند . دستور باتن از این نظر خوب عمل می کنه . اما من خودم همیشه از if ... استفاده می کنم . برای حذف لرزش هم از یک تایخر در حد 30 میلی ثانیه + انتظار برای رها شدن کلید . یعنی زمانی پردازش اطلاعات مربوط به کلید آغاز میشه که کلید رها شده باشه و با این روش تا به حال به مشکلی برخورد نکردم .
این فقط یه قسمت از موضوع بود . اما اصل کار برمیگرده به مورد استفاده شما . یعنی شرایط مدار و تعداد کلید ها و ... به چه صورت هست که با توجه به اون نوع چک کردن کلید ها مشخص بشه . تو عمل انواع صفحه کلید ها رو میشه به کار برد مثل مستقیم ، ماتریسی ، ترتیبی ، وقفه ای و ...

ضمن اینکه فقط وقتی می تونید به طور قطع بگید که هیچ کلیدی از چشم شما پنهون نمونده که از حالت سخت افزاری استفاده کنید نه از دستورات نرم افزاری . چون دستورات نرم افزاری فقط وقتی خطای صفر دارند که دائم اجرا بشن که این ممکن نیست . اما چون روند زده شدن کلید و ... به حد کافی کند هست میشه این خطا رو صفر فرض کرد .


فكر كنم با وقفه تغيير وضعيت پورت B بشه مشكلمو حل كنم! ولي بنظرم ميشه برناممو يكم تغيير بدم و با منو هاش بازي كنم و همين IF‌جون خودمون كه حجم كمي هم جا ميگيره رو راح بندازم...

Back to top
View user's profile Send private message
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 22 ارديبهشت ماه ، 1388 09:50:16 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

بله با وقفه تغییر پورت b میشه ،علاوه بر اون میشه از وقفه خارجی چندین انشعاب گرفت و همین کارو انجام داد .
اما گفتم که ضرورتی نداره .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 17 اسفند ماه ، 1388 19:27:55 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام دوستان ، می دونم که این پست خیلی قدیمیه ، ولی حیفم اومد که منم یه نکته ی سخت افزاری دربارش نگم!؟ آخه دیدم به ذهن هیچکس نرسید از طرفی کار خیلیها رو لنگ میذاره با خودم گفتم که بگم بهتره!

شما می تونید همیشه یه خازن 50 میکرو فاراد با کلید موازی کنید تا بطورت سخت افزاری لرزش دست رو بر طرف کنه. مثلا کلیدی که در شکل زیر داریم اکتیو لو (Active Low) هست ، بدین معنی که خروجی کلید در حالت عادی یک هست و میکرو مقدار 5 ولت رو می خونه و وقتی کلید فشار داده میشه خروجی کلید 0 هست. در این لحظه خازن با دشارژ شدن یه منحنی نمایی ایجاد می کنه که در طول تغییرات این منحنی لرزشهای دست حذف میشه ( بدلیل پاسخ فرکانسی مدار T = RC)


Click to view this image at its original size
Click on the image to view it at its original size

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 17 اسفند ماه ، 1388 20:33:20 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
IF PORTb.0=1 THEN L=L+1:GOSUB main
'اینجا کلید میزنید و 1 واحد به ال اضافه میشه و بعد به زیر برنامه main میره و اونجا گیر میکنه و دیگه به L اضافه نمیشه تا موقعی که دستتون وردارین و بزارین

if L=1 then b=b+1 'اینجاهم تعریف میکنید اگر ال برابر 1 شد چه کاری انجام بده
if L>1 then l=0 'اینجام تعیین میکنید تا ال بیشتر از یه عددی نره و دوباره صفر شه که برای 1 شدن آماده بشه.


main:
IF PORTb.0=0 THEN RETURN
GOTO TAVAGHOF2
صفحه کلیدهای مانند گوشی موبایل خیلی راحت میتونین با این روش بسازین البته با کمی تغییر. این برنامه همیشه تو زدن کلید ها بهم کمک کرده و عکس العملشم فوق العاده خوبه.
شاد باشید

Back to top
View user's profile Send private message Send e-mail
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 17 اسفند ماه ، 1388 21:27:02 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

ممنون دوست عزیز

اما این حالت نرم افزاری در حالت استفاده از وقفه کاربردی نداره! هرچند که روش خوب و کاملا منطقی هست ، اما در برنامه های بزرگ و حجیم ممکنه کار رو مشکل کنه ف کما اینکه مشکل این دوستمونم اون قدیما همین بود! (آخه پست خیلی قدیمیه)

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 18 اسفند ماه ، 1388 06:54:30 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام دوستان

پستم قدیمیه ولی باورتون میشه دیشب داشتم روی یه پروژه کار میکردم و توش4 تا کلید داره که منم اومدم از 4 تا پایه استفاده کردم برای خوندن کلیدها و اتفاقا" درست هم شد با یکی از دستورات کمپایلر که تا برداشتن کلید صبر میکنه و تاخیری توی برنامه ایجاد میکنه که زیاد مطلوب نیست

1-برای اینکه وقفه ای انجامش بدم میتونم همه کلیدهارو هم به پایه اینتراپت و هم به پاپه مخصوص خودش مستقیم وصل کنم؟ یا از نظر سخت افزاری ایراد داره!؟
2-روش سخت افزاری جالبی بود من برای گرفتن خطایه A/D ازش استفاده میکنم برم ببینم چطوری میشه ممنون

Back to top
View user's profile Send private message
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 18 اسفند ماه ، 1388 18:16:02 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

راستش من اصلا نفهمیدم واسه چی شماها از وقفه استفاده میکنین به نظرم خیلی حجم برنامر زیاد میکنه تو یه میکروهم شاید اصلا تایمر نداشت.اگه دلیله خاصی داره استفاده از وقفه لطفه بگین
Back to top
View user's profile Send private message Send e-mail
arvinfx
کاربر نیمه فعال
کاربر نیمه فعال

Joined: Sep 08, 2008
Posts: 129





110808.70 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 19 اسفند ماه ، 1388 07:17:33 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

mahdifah wrote:
راستش من اصلا نفهمیدم واسه چی شماها از وقفه استفاده میکنین به نظرم خیلی حجم برنامر زیاد میکنه تو یه میکروهم شاید اصلا تایمر نداشت.اگه دلیله خاصی داره استفاده از وقفه لطفه بگین


فقط اینقدر بدون که تایمر کم اوردم و تعداد کار هایی که در زمان محدود باید انجام بشه خیلی زیاد! wink

Back to top
View user's profile Send private message
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 23 اسفند ماه ، 1388 13:38:23 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Quote:
راستش من اصلا نفهمیدم واسه چی شماها از وقفه استفاده میکنین به نظرم خیلی حجم برنامر زیاد میکنه تو یه میکروهم شاید اصلا تایمر نداشت.اگه دلیله خاصی داره استفاده از وقفه لطفه بگین

برای اینکه اهمیت استفاده از وقفه ها رو متوجه بشید یه برنامه ی ساده پیشنهاد می کنم که بنویسید!
برنامه ای بنویسید که 4 تا LED که به یه پورتی وصل هستن رو بصورت یکی در میون روشن و خاموش کنه و اگه ما کلیدی رو فشار دادیم همه ی LEDها با هم روشن و خاموش بشن و اگه دوباره کلید رو فشار دادیم نحوه ی چشمک زدن به حالت قبلی برگرده. مدت زمان خاموش و روشن شدن LEDها هم ربع ثانیه در نظر کرفته بشه! یعنی هر 250 میلی ثانیه خاموش و روشن بشن.

ببینید در نوشتن این برنامه به چه مشکلی بر می خورید!؟


Quote:
1-برای اینکه وقفه ای انجامش بدم میتونم همه کلیدهارو هم به پایه اینتراپت و هم به پاپه مخصوص خودش مستقیم وصل کنم؟ یا از نظر سخت افزاری ایراد داره!؟

برای اینکه با وقفه کار کنید باید هر کلید رو به یک ورودی وقفه وصل کنید و دیگه نمیشه همزمان اون کلید رو به یه پایه ی دیگه هم وصل کرد! در اینصورت با هر بار فشردن کلید برنامه به زیر برنامه ی کلید پرش می کنه و عمل مربوط به اون رو انجام میده! بهمین سادگی!

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 23 اسفند ماه ، 1388 18:28:55 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

آقا من این برنامر نوشتو. واسه اینکه به حالت بعدی بره باید مدت بیشتری دستم بزارم رو کلید.ایول فهمیدم حالا چه بدرد میخوره ولی چه طوری میشه با وقفه این مشکل حل کرد؟ یه توضیح میدین.خیلی مثال خوبی بود دست شما درد نکنه.وقتب با وقفه این کار میکنن میگن وقتی دستت گذاشتی رو کلید وقفه رخ بده و بعد فلان کار کنه ؟ درسته؟ با وقفه پایه ی مشخصیم که تو دیتا شیتش گفته میشه این کار کرد؟درسته؟؟؟؟؟؟
Back to top
View user's profile Send private message Send e-mail
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 02:07:08 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

توجه کنید که مشکل اصلی در نوشتن این برنامه اینه که وقتی شما می خواید حالت چشمک زدن ledهارو عوض کنید و مدتی صبر کنید تا دوباره حالت رو عوض کنید در مدتی که برنامه در حال صبر کردن هست اگه کلیدی فشار داده بشه میکرو نمی تونه اونو حس کنه! برای همینم شما باید مدت بیشتری کلید رو در حالت فشرده نگه دارید! برای درک بهتر این موضوع زمان چشمک زدن رو از 250 میلی ثانیه به 2 ثانیه تغییر بدید!

اما با استفاده از وقفه ها در هر لحظه که کلید فشار داده بشه روند اجرای برنامه متوقف میشه و میکرو زیر برنامه ای که شما برای وقفه نوشتید رو اجرا می کنه.

استفاده از وقفه بسیار سادست و کلید باید به پایه ای وصل بشه که وقفه خارجی داشته باشه ، این پایه در دیتاشیت مشخص شده و معمولا میکروکنترلرهای avr دو تا پایه برای وقفه خارجی دارنو با حروف int0 و int1 مشخص میشن. مثلا پایه های 4 و 5 در مگا 8 ورودی های وقفه هستن.

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Ramin_Ghn
مدیر انجمن
مدیر انجمن

Joined: May 07, 2007
Posts: 486




Location: تبریز
929423.18 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 10:45:07 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
Quote:
اما با استفاده از وقفه ها در هر لحظه که کلید فشار داده بشه روند اجرای برنامه متوقف میشه و میکرو زیر برنامه ای که شما برای وقفه نوشتید رو اجرا می کنه.

خیلی کلی گفتید این مطلب همیشه درست نیست...
چون تاخیر حین اجرای برنامه در کار وقفه هم تاثیر میذاره و موجب ، کند عمل کردن وقفه می شه ولی اگه تاخیر به صورت حلقه نوشته بشه تقریبا می شه گفت تاخیر 10 ثانیه ای هم تو کار وقفه تاثیری نداره.

Back to top
View user's profile Send private message Visit poster's website
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 12:23:21 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

آقا رامین باید بگم که من اصلا متوجه منظور شما نشدم!؟ و خیلی خیلی از این حرف شما تعجب کردم! geek

ببینید اسم این ویژگی interrupt هست و معنی اون هم توقف ، گسیختن ، حرف دیگری را قطع کردن ، منقطع کردن و ... هست!

اصلا چرا این ویژگی به میکروکنترلرها اضافه شده؟ بنظر من که امکان نداره با اجرای وقفه تاخیری در اجرای روتین مربوط به اون اتفاق بیفته.

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
mahdifah
کاربر ماهر
کاربر ماهر

Joined: Jul 17, 2009
Posts: 568





1615055.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 12:28:24 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

حالا کسی میدونه چطوری میشه تو میکرو 2 تا کار انجام داد؟ مثلا من برنامه ساعت که مینویسم وقتی میره زنگ بزنه دیگه ساعتم کار نمیکنه. آقا حامد گفتن باید از rtc استفاده کنم.ولی نفهمیدم چطوری
Back to top
View user's profile Send private message Send e-mail
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 12:46:57 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

بله ، حق با آقا حامد هستش.

وقتی شما از RTC یا همون Real Time Clock (ساعت زمان واقعی) استفاده می کنید تایمر دو در هر ثانیه یکبار وقفه ایجاد می کنه و ایجاد این وقفه هیچ ارتباطی به اجرای برنامه نداره! و برنامه ی شما در هر مرحله ای که باشه متوقف میشه و روتین مربوط به وقفه ی تایمر2 اجرا میشه. بنابراین وقتی ساعت شما برای زنگ زدن فعال میشه همزمان تایمر 2 می تونه وقفه بده و ثانیه های شما از دست نره!

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Ramin_Ghn
مدیر انجمن
مدیر انجمن

Joined: May 07, 2007
Posts: 486




Location: تبریز
929423.18 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 15:01:33 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Quote:

آقا رامین باید بگم که من اصلا متوجه منظور شما نشدم!؟ و خیلی خیلی از این حرف شما تعجب کردم! geek

ببینید اسم این ویژگی interrupt هست و معنی اون هم توقف ، گسیختن ، حرف دیگری را قطع کردن ، منقطع کردن و ... هست!

اصلا چرا این ویژگی به میکروکنترلرها اضافه شده؟ بنظر من که امکان نداره با اجرای وقفه تاخیری در اجرای روتین مربوط به اون اتفاق بیفته.

احتمالا شما منظور منو متوجه نشدید ، منظور من اینه که اگه از دستورات تاخیری در برنامه اصلی استفاده بشه بایستی اون دستور خاتمه پیدا کنه وبعد از اونه که امکان وقوع وقفه وجود داره یعنی حین اجرای دستور تاخیر ، امکان وقوع وقفه وجود نداره.البته غیر از اون روشی که بالا گفتم ...

Back to top
View user's profile Send private message Visit poster's website
Morteza_rk
مدیر انجمن
مدیر انجمن

Joined: Aug 25, 2008
Posts: 338




Location: گرگان
1096070.42 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 24 اسفند ماه ، 1388 15:30:00 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

نه رامین جان! اینطور نیست!

در صورت بروز هرگونه وقفه اجرای برنامه از خط جاری لغو میشه و روتین مربوط به وقفه اجرا میشه ، حتی اگه این خط از برنامه تاخیری باشه که ما لحاظ کردیم!

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC All times are GMT + 3.5 Hours
Goto page 1, 2  Next
Page 1 of 2
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

 
 Jump to:   

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts lcd help 9 melectronics 13833 يكشنبه، 23 فروردين ماه ، 1388 07:56:43
1nafar View latest post
No new posts تبدیل lcd موازی به سریال با 180 تومان 13 123456za 18218 چهارشنبه، 6 آذر ماه ، 1387 17:52:00
ahmadk View latest post
No new posts Thermometer (2x16 lcd)1 دماسنج با 8051 و 2*16 lcd 1 honeyl 11336 سه شنبه، 4 تير ماه ، 1387 01:37:40
bleedingme View latest post
No new posts راه اندازی lcd به صورت 4 بیت 4 ahmad2000 11680 چهارشنبه، 28 فروردين ماه ، 1387 23:18:01
Hamed View latest post
No new posts فرکانس متر با LCD و AT89C2051 0 Hamed 13228 جمعه، 24 فروردين ماه ، 1386 10:03:10
Hamed View latest post
 


Powered by phpBB © 2001, 2008 phpBB Group

Ported to Platinum 7.6.b.4 V2 by sadeghkhafan

فروشگاه تخصصی برق و الکترونیک ایران میکرو
www.iran-micro.com
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL.
Powered by Platinum 7.6.b.4 v2
Powered by Platinum 7.6.b.4 v2 Persian

مدت زمان ایجاد صفحه : 0.78 ثانیه