۰۷-آبان-۱۳۸۵, ۱۵:۱۳:۵۰
۰۷-آبان-۱۳۸۵, ۱۵:۱۳:۵۰
شبيه سازي 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][url=http://www.iranled.com/forum/showthread.php?tid=18123&pid=131329#pid131329]
شبيه سازي PT2272 با استفاده از AVR
با استفاده از اين كد ميتوانيد آي سي PT2272 را از مدار بطور كامل حذف كنيد و تمامي كار آنرا داخل پردازنده AVR سيستم انجام دهيد .
با كمي تغييرات ساده ميتوانيد امكان Learn را نيز به سيستم اضافه كنيد . سيستم از وقفه خارجي صفر و ميكرو ATmega32 و زبان برنامه نويسي C بهره گرفته كه می تونید تغییرش بدید!!
تقریبا چیز خاصی نداره فقط یه LCD نیاز داره که به پورت A وصل می شه و ورودیش هم که به int0 وصل می شه یه توضیحاتی هم نویسنده در مورد کالیبر کردن داده که بد نیست در ابتدای سورس بخونیدش اگه توی فرستنده از مقاومت 2.2Meg استفاده کنید و در میکرو هم از کریستال 12meg نیاز نیست چیزی رو تغییر بدید.
برنامه و نقشه را در پیوست دریافت کنین :
سلام و خسته نباشید. توی فرستنده از مقاومت 3.3 مگ استفاده شده و کریستال ما هم 11.0592 مگاهرتزه. چه تغییراتی تو برنامه باید اعمال کنیم؟ Clock value رو چند بذاریم؟
۱۶-اسفند-۱۳۹۶, ۱۹:۱۳:۳۴
سلام
توی کد برنامه اگه توجه کرده باشین نوشته تایمر1رو روی 120میکرثانیه گذاشته که این مقدار وابسته به کریستال هست پس اگه مقدار کریستال رو تغییر دادین باید مقدار رجیستر TCNT1 رو هم (طبق فرمولهای تایمر) تغییر بدین
موفق باشید
توی کد برنامه اگه توجه کرده باشین نوشته تایمر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
موفق باشید
ببخشید دیر جواب دادم
فکر کنم از وقفه سرریز استفاده کرده که هر شمارش 120 میکرو ثانیه هست
فرمولها :
فرکانس تایمر=preascale/ فرکانس کریستال
مدت زمان یک شمارش=فرکانس تایمر/1
محاسبه تعداد پالس واسه یه زمان مدنظر=مدت زمان شمارش/زمان مدنظر
مقدار تایمر=تعداد پالس-65535
موفق باشید
۲۱-اسفند-۱۳۹۶, ۰۱:۰۹:۱۵
(۱۹-اسفند-۱۳۹۶, ۱۶:۰۳:۰۴)1نفر نوشته است: [ -> ]سلامسلام خواهش میکنم. مهندس اگه لازم باشه هر 120 میکرو ثانیه این وقفه اتفاق بیفته با توجه به اینکه شما فرکانس کریستال رو با فرکانس تایمر یکی در نظر گرفتید تعداد پالس لازم میشه 120 میکرو ثانیه ضربدر 12 مگا هرتز که میشه 1440 پالس. حالا اینکه چرا آخر کار اومدید تفریق کردید رو نمیدونم. تازه اگر هم 65535 رو منهای 1440 بکنید نتیجه 65435 نمیشه.
ببخشید دیر جواب دادم
فکر کنم از وقفه سرریز استفاده کرده که هر شمارش 120 میکرو ثانیه هست
فرمولها :
فرکانس تایمر=preascale/ فرکانس کریستال
مدت زمان یک شمارش=فرکانس تایمر/1
محاسبه تعداد پالس واسه یه زمان مدنظر=مدت زمان شمارش/زمان مدنظر
مقدار تایمر=تعداد پالس-65535
موفق باشید
۲۱-اسفند-۱۳۹۶, ۱۴:۱۴:۳۲
سلام
نمیدونم با چه فرمولی حساب میکنید
من فرکانس کریستال رو با تایمر برابر درنظر نگرفتم فرکانس کریستال به یک عدد ثابت(prescale) تقسیم میشه و فرکانس تایمر مشخص میشه
اینا هم فرمولای محاسبه زمان و مقدار تایمر راه اندازی در حالت عادی هست و درضمن نمیدونم تو این پروژه prescale چند هست
یه مثال واسه تنظیم تایمر برای ایجاد زمان :
مثلا واسه ایجاد زمان 0.08 ثانیه ،کریستال 4مگ و prescale هم 8در نظر بگیریم
فرکانس تایمر=4M/8 =500KHZ
مدت زمان شمارش = 1/500KHZ=2us
تعداد پالس برای زمان 0.08 ثانیه= 0.08s/2us=40000
65535-40000=25535
25535 مقدار اولیه تایمر میشه
و...
کل برنامه رو نخوندم دقیق نمیدونم چجور عمل میکنه فکر کنم تو برنامه مدت زمان سرریز تایمر 120میکروثانیه هست اون چندتا عدد رو هم نویسنده برنامه توی توضیحات برنامش داده بود شاید هم من اشتباه میکنم
نمیدونم با چه فرمولی حساب میکنید
من فرکانس کریستال رو با تایمر برابر درنظر نگرفتم فرکانس کریستال به یک عدد ثابت(prescale) تقسیم میشه و فرکانس تایمر مشخص میشه
اینا هم فرمولای محاسبه زمان و مقدار تایمر راه اندازی در حالت عادی هست و درضمن نمیدونم تو این پروژه prescale چند هست
یه مثال واسه تنظیم تایمر برای ایجاد زمان :
مثلا واسه ایجاد زمان 0.08 ثانیه ،کریستال 4مگ و prescale هم 8در نظر بگیریم
فرکانس تایمر=4M/8 =500KHZ
مدت زمان شمارش = 1/500KHZ=2us
تعداد پالس برای زمان 0.08 ثانیه= 0.08s/2us=40000
65535-40000=25535
25535 مقدار اولیه تایمر میشه
و...
کل برنامه رو نخوندم دقیق نمیدونم چجور عمل میکنه فکر کنم تو برنامه مدت زمان سرریز تایمر 120میکروثانیه هست اون چندتا عدد رو هم نویسنده برنامه توی توضیحات برنامش داده بود شاید هم من اشتباه میکنم