سلام
من دارم با ATmega32 کار می کنم. چند تا اولتراسونیک و یه ال سی دی هم بهش وصل کردم!
وقفه ی 1 این میکرو رو هم برای خوندن تعداد یه پالس خارجی فعال کردم!
خوب مشکل این جاست که در حین کار بعضی از اوقات میکرو هنگ می کنه و توی برخی از حلقه های داخلیش برنامه میمونه و دیگه در نمی آید. با کلی تلاش فهمیدم وقتی کد وقفه رو استفاده می کنم این اتفاق می افته. علتش هم سادست!
مثلا میکرو داره پایه ی یکی از اولتراسونیک ها را می خونه که یدفعه وقفه سر میرسه و کد وقفه اجرا میشه و بعد از اون وقتی دوباره برمی گرده سراغ اولتراسونیک دیگه اون پایه ی خاص مقداری شده که از حلقه در نمی آد؟
خوب چطور میتونم یه پالس خارجی که نمیدونیم هر چند وقت یه بار میآد رو بخونم!(تمام تایمر کانتر ها برای کار دیگه استفاده شدن و نمیشه از کانتر استفاده کرد!)
مرسی
من دارم با ATmega32 کار می کنم. چند تا اولتراسونیک و یه ال سی دی هم بهش وصل کردم!
وقفه ی 1 این میکرو رو هم برای خوندن تعداد یه پالس خارجی فعال کردم!
خوب مشکل این جاست که در حین کار بعضی از اوقات میکرو هنگ می کنه و توی برخی از حلقه های داخلیش برنامه میمونه و دیگه در نمی آید. با کلی تلاش فهمیدم وقتی کد وقفه رو استفاده می کنم این اتفاق می افته. علتش هم سادست!
مثلا میکرو داره پایه ی یکی از اولتراسونیک ها را می خونه که یدفعه وقفه سر میرسه و کد وقفه اجرا میشه و بعد از اون وقتی دوباره برمی گرده سراغ اولتراسونیک دیگه اون پایه ی خاص مقداری شده که از حلقه در نمی آد؟
خوب چطور میتونم یه پالس خارجی که نمیدونیم هر چند وقت یه بار میآد رو بخونم!(تمام تایمر کانتر ها برای کار دیگه استفاده شدن و نمیشه از کانتر استفاده کرد!)
مرسی
دیدگاه