۰۱-بهمن-۱۳۹۰, ۱۱:۳۴:۲۴
۰۱-بهمن-۱۳۹۰, ۱۸:۰۱:۵۶
سلام.
dspic اگه اشتباه نكنم ، مي شه 2 تا تايمر 16 بيتيش رو با هم جفت كني و 32 بيتي بسازي ، اما كار نكردم كه كدش رو بنويسم !!
البته مي توني از ديتاشيت و userguide ها يه چيزايي بدست بياري ...
فكر كنم XMEGA هم همچين قابليتي داشته باشه ...
اگر با cpld مي خواي 4-5 خط بيشتر نمي شه !! ( اما فكر نكنم به كارت بياد ، چون ميكرو نيست ... )
همين ديگه
موفق باشي.
يا علي.
dspic اگه اشتباه نكنم ، مي شه 2 تا تايمر 16 بيتيش رو با هم جفت كني و 32 بيتي بسازي ، اما كار نكردم كه كدش رو بنويسم !!
البته مي توني از ديتاشيت و userguide ها يه چيزايي بدست بياري ...
فكر كنم XMEGA هم همچين قابليتي داشته باشه ...
اگر با cpld مي خواي 4-5 خط بيشتر نمي شه !! ( اما فكر نكنم به كارت بياد ، چون ميكرو نيست ... )
همين ديگه
موفق باشي.
يا علي.
۰۱-بهمن-۱۳۹۰, ۲۳:۰۴:۲۲
دو تا 16 رو استپ کن و توی وقفه ی سر ریز اولی ، دومی رو راه بنداز!
اینجوری میشه 32 بیت!
اینجوری میشه 32 بیت!
۰۲-بهمن-۱۳۹۰, ۰۰:۱۹:۲۱
کاش یکمی آسون تر توضیح بدین!
یا اگه کسی میتونه برام یه برنامه بنویسه که توش یه شمارنده32 بیتی داشته باشه
یا اگه کسی میتونه برام یه برنامه بنویسه که توش یه شمارنده32 بیتی داشته باشه
۰۲-بهمن-۱۳۹۰, ۱۲:۳۵:۲۲
اگر بدونی شمارنده رو برای چه کاری می خوای راحت تر میشه طراحیش کرد؟
شاید با یه شرط IF هم کارت راه بیوفته!
با اینتراپت هم میتونید این کار رو انجام بدید البته چند سیکل برای جمع کردن وقفه ایجاد میشه باید در نظر داشته باشید. بستگی به سرعتی که لازم دارید داره.
به پایه Int0 پالس بدید در متغیر I که 32Bit شمارش انجام میده.
شاید با یه شرط IF هم کارت راه بیوفته!
با اینتراپت هم میتونید این کار رو انجام بدید البته چند سیکل برای جمع کردن وقفه ایجاد میشه باید در نظر داشته باشید. بستگی به سرعتی که لازم دارید داره.
به پایه Int0 پالس بدید در متغیر I که 32Bit شمارش انجام میده.
کد:
unsigned long int i;
interrupt [EXT_INT0] void ext_int0_isr(void)
{
i++
}