ايران ويج

نسخه‌ی کامل: شبيه سازي PT2272 با استفاده از AVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
شبيه سازي پروتكل PT2272 Remote Control با استفاده از AVR به همراه سورس اون که با codevision هم نوشته شده ...

ادامه مطلب

شبيه سازي PT2272 با استفاده از AVR



با استفاده از اين كد ميتوانيد آي سي PT2272 را از مدار بطور كامل حذف كنيد و تمامي كار آنرا داخل پردازنده AVR سيستم انجام دهيد .

با كمي تغييرات ساده ميتوانيد امكان Learn را نيز به سيستم اضافه كنيد . سيستم از وقفه خارجي صفر و ميكرو ATmega32 و زبان برنامه نويسي C بهره گرفته كه می تونید تغییرش بدید!!

تقریبا چیز خاصی نداره فقط یه LCD نیاز داره که به پورت A وصل می شه و ورودیش هم که به int0 وصل می شه یه توضیحاتی هم نویسنده در مورد کالیبر کردن داده که بد نیست در ابتدای سورس بخونیدش اگه توی فرستنده از مقاومت 2.2Meg استفاده کنید و در میکرو هم از کریستال 12meg نیاز نیست چیزی رو تغییر بدید.

برنامه و نقشه را در پیوست دریافت کنین :
(۰۷-آبان-۱۳۸۵, ۱۵:۱۳:۵۰)ha_60 نوشته است: [ -> ]

شبيه سازي PT2272 با استفاده از AVR



با استفاده از اين كد ميتوانيد آي سي PT2272 را از مدار بطور كامل حذف كنيد و تمامي كار آنرا داخل پردازنده AVR سيستم انجام دهيد .

با كمي تغييرات ساده ميتوانيد امكان Learn را نيز به سيستم اضافه كنيد . سيستم از وقفه خارجي صفر و ميكرو ATmega32 و زبان برنامه نويسي C بهره گرفته كه می تونید تغییرش بدید!!

تقریبا چیز خاصی نداره فقط یه LCD نیاز داره که به پورت A وصل می شه و ورودیش هم که به int0 وصل می شه یه توضیحاتی هم نویسنده در مورد کالیبر کردن داده که بد نیست در ابتدای سورس بخونیدش اگه توی فرستنده از مقاومت 2.2Meg استفاده کنید و در میکرو هم از کریستال 12meg نیاز نیست چیزی رو تغییر بدید.

برنامه و نقشه را در پیوست دریافت کنین :
سلام
ممنون از این برنامه ای که گذاشتید
ولی چرا نقشه داخل فایل نیست؟
خروجیای میکرو کدوما میشه؟منظورم همون عملکردیه که پایه های 10 و11 و12 و 13 داخل آی سی pt2272 دارن

با تشکر
سلامو تشکر از زحماتتون
اگه محبت کنید و نحوه نوشتن برنامه لرن ریموتها را هم با هم برسی کنیم ممنون میشم
با تشکر
(۰۷-آبان-۱۳۸۵, ۱۵:۱۳:۵۰)ha_60 نوشته است: [ -> ][/url]

شبيه سازي PT2272 با استفاده از AVR
[url=http://www.iranled.com/forum/showthread.php?tid=18123&pid=131329#pid131329]



با استفاده از اين كد ميتوانيد آي سي PT2272 را از مدار بطور كامل حذف كنيد و تمامي كار آنرا داخل پردازنده AVR سيستم انجام دهيد .

با كمي تغييرات ساده ميتوانيد امكان Learn را نيز به سيستم اضافه كنيد . سيستم از وقفه خارجي صفر و ميكرو ATmega32 و زبان برنامه نويسي C بهره گرفته كه می تونید تغییرش بدید!!

تقریبا چیز خاصی نداره فقط یه LCD نیاز داره که به پورت A وصل می شه و ورودیش هم که به int0 وصل می شه یه توضیحاتی هم نویسنده در مورد کالیبر کردن داده که بد نیست در ابتدای سورس بخونیدش اگه توی فرستنده از مقاومت 2.2Meg استفاده کنید و در میکرو هم از کریستال 12meg نیاز نیست چیزی رو تغییر بدید.

برنامه و نقشه را در پیوست دریافت کنین :

سلام و خسته نباشید. توی فرستنده از مقاومت 3.3 مگ استفاده شده و کریستال ما هم 11.0592 مگاهرتزه. چه تغییراتی تو برنامه باید اعمال کنیم؟ Clock value رو چند بذاریم؟
سلام

توی کد برنامه اگه توجه کرده باشین نوشته تایمر1رو  روی 120میکرثانیه گذاشته که این مقدار وابسته به کریستال هست پس اگه مقدار کریستال رو تغییر دادین باید مقدار رجیستر  TCNT1 رو هم (طبق فرمولهای تایمر) تغییر بدین 
 

کد:
Some Important Notice about Calibration.    
 with a 2.2Mega OHM Oscillator Calibrator risistor
«------
 used with PT2262(Pin 15,16) ,
 -> Timer1 overflow must trigger every 120us«------
 see Timer1 overflow routin for more.

.
.
.
/* TCNT1 = 0xFF9B that mean 65535-100
 so this routin will trigger every 120us on 12MHZ.«-----  
 if your project is using different clock rate
 u must modify TCNT1 rigisters to project work fine.*/
 

موفق باشید
(۱۶-اسفند-۱۳۹۶, ۱۹:۱۳:۳۴)1نفر نوشته است: [ -> ]سلام

توی کد برنامه اگه توجه کرده باشین نوشته تایمر1رو  روی 120میکرثانیه گذاشته که این مقدار وابسته به کریستال هست پس اگه مقدار کریستال رو تغییر دادین باید مقدار رجیستر  TCNT1 رو هم (طبق فرمولهای تایمر) تغییر بدین 
 

کد:
Some Important Notice about Calibration.    
 with a 2.2Mega OHM Oscillator Calibrator risistor
«------
 used with PT2262(Pin 15,16) ,
 -> Timer1 overflow must trigger every 120us«------
 see Timer1 overflow routin for more.

.
.
.
/* TCNT1 = 0xFF9B that mean 65535-100
 so this routin will trigger every 120us on 12MHZ.«-----  
 if your project is using different clock rate
 u must modify TCNT1 rigisters to project work fine.*/
 

موفق باشید

آخه شما TCNT1 = 0xFF9B قرار میدید تو فرکانس 12 مگاهرتز هر 120 میکروثانیه که روتین تکرار نمیشه.
  65435 رو تقسیم بر 12میلیون بکنین میشه 5 میلی ثانیه. 120 میکروثانیه نمیشه. یا من دارم اشتباه میکنم یا شما. بیزحمت برام توضیح بدید. ممنونم
سلام
ببخشید دیر جواب دادم
فکر کنم از وقفه سرریز استفاده کرده که هر شمارش 120 میکرو ثانیه هست
فرمولها :
فرکانس تایمر=preascale/ فرکانس کریستال
مدت زمان یک شمارش=فرکانس تایمر/1
محاسبه تعداد پالس واسه یه زمان مدنظر=مدت زمان شمارش/زمان مدنظر
مقدار تایمر=تعداد پالس-65535

موفق باشید
(۱۹-اسفند-۱۳۹۶, ۱۶:۰۳:۰۴)1نفر نوشته است: [ -> ]سلام
ببخشید دیر جواب دادم
فکر کنم از وقفه سرریز استفاده کرده که هر شمارش 120 میکرو ثانیه هست
فرمولها :
فرکانس تایمر=preascale/ فرکانس کریستال
مدت زمان یک شمارش=فرکانس تایمر/1
محاسبه تعداد پالس واسه یه زمان مدنظر=مدت زمان شمارش/زمان مدنظر
مقدار تایمر=تعداد پالس-65535

موفق باشید
سلام خواهش میکنم. مهندس اگه لازم باشه هر 120 میکرو ثانیه این وقفه اتفاق بیفته با توجه به اینکه شما فرکانس کریستال رو با فرکانس تایمر یکی در نظر گرفتید تعداد پالس لازم میشه 120 میکرو ثانیه ضربدر 12 مگا هرتز که میشه 1440 پالس. حالا اینکه چرا آخر کار اومدید تفریق کردید رو نمیدونم. تازه اگر هم 65535 رو منهای 1440 بکنید نتیجه 65435 نمیشه.
سلام
نمیدونم  با چه فرمولی حساب میکنید 
من فرکانس کریستال رو با تایمر برابر درنظر نگرفتم فرکانس کریستال به یک عدد ثابت(prescale) تقسیم میشه و فرکانس تایمر مشخص میشه
اینا هم  فرمولای محاسبه زمان و مقدار تایمر راه اندازی در حالت عادی هست و درضمن نمیدونم تو این پروژه prescale چند هست 
یه مثال واسه تنظیم تایمر برای ایجاد زمان :
مثلا واسه ایجاد زمان 0.08 ثانیه ،کریستال 4مگ و prescale هم 8در نظر بگیریم 
فرکانس تایمر=4M/8 =500KHZ
مدت زمان شمارش = 1/500KHZ=2us
تعداد پالس برای زمان 0.08 ثانیه= 0.08s/2us=40000
 65535-40000=25535
25535 مقدار اولیه تایمر میشه
و...
کل برنامه رو نخوندم دقیق نمیدونم چجور عمل میکنه فکر کنم تو برنامه مدت زمان سرریز تایمر  120میکروثانیه هست اون چندتا عدد رو هم نویسنده برنامه توی توضیحات برنامش داده بود شاید هم من اشتباه میکنم