سلام به دوستان:
من می خوام در محیط bascom با دستورات تایمر"" 6 پورت به ترتیب و دقیق کار بکند ولی نمیدنم از کجا شروع کنم اگر کتاب در مورد این تایمرها و یا راهنمایی بکنید ممنون میشم. با تشکر فراوان (((( و پورت ها را پایین نوشتم))))
Portc = &B00000110
Portc = &B00100100
Portc = &B00100001
Portc = &B00001001
Portc = &B00011000
با سلام
در مورد تايمر يك فرمول براي اين كار مي تونم بهت بدم . براي چيپ avr :
تاخير : ( مقدار لود شده در تايمر در روتين وقفه تايمر * prescaler ) / فركانس كلاك به هرتز
اگر به تايمر مقدار ندي براي تايمر صفر با 256 لود مي شه .
Hesam نوشته است:با سلام
اول نيازي نيست كه پورت ها رو با اعداد hex براي حالت ورودي و خروجي مقدار دهي بكني . با دستور config اين كار خيلي راحت تر انجام مي شود . براي تعريف پورت در حالت ورودي config pin و براي خروجي config port .
در مورد تايمر يك فرمول براي اين كار مي تونم بهت بدم . براي چيپ avr :
تاخير : ( مقدار لود شده در تايمر در روتين وقفه تايمر * prescaler ) / فركانس كلاك به هرتز
اگر به تايمر مقدار ندي براي تايمر صفر با 256 لود مي شه .
سلام آقا Hesam
من در ورودی یا خروجی کردن مشکلی ندارم. ولی میخوام در میان آن پورت ها تخیری ایجادکنم و باید از تایمرها استفاده کنم که نهوه استفاده از تایمر را ندارم و ضمنا میخوام این تایمر متغیر باشد لطفا کمکم کنید چون که هنگ کردم
با چه زبانی می خوای این کارو بکنی؟
اکثر زبانها خودشون هم مثال دارن کنار برنامه هم می تونی با وقفه این کارو بکنی هم بدون اون راحت تر هم می شه با یه دستور delay که نیاز به تایمر نداره
برای مشخصات تایمر هم می تونی دیتاشیتش رو ببینی تمام خصوصیاتش رو نوشته
سلام
اگر زمان تاخير مورد نظرت خيلي دقيق نيست ، از دستورات wait و waitms و waitus استفاده كن كه اولي تاخير اتي در حد ثانيه و دومي در حد ميكروثانيه و سومي همان طور كه مشخص است در حد ميكروثانيه تاخير ايجاد مي كند كه عدد مورد نظرت رو در آرگومان اين توابع مي نويسي مثلا : (waitms(100
اگر هم حتما مي خواي با تايمر و خيلي دقيف باشه ، برام بنويس تا يك مثال برات بگذارم اما قبلش همان طور كه مدير سايت نوشته اند ، HELP برنامه رو هم يك نگاهي بكن . البته مثالش زياد خوب نيست .
ببخشيد . دستورات تاخيري wait و waitms و waitus پرانتز نمي خواهد .
مثلا مي نويسيم : waitms 200
تاخير در حدود 200 ميلي ثانيه ايجاد مي كند .
Hesam نوشته است:اگر هم حتما مي خواي با تايمر و خيلي دقيف باشه ، برام بنويس تا يك مثال برات بگذارم اما قبلش همان طور كه مدير سايت نوشته اند ، HELP برنامه رو هم يك نگاهي بكن . البته مثالش زياد خوب نيست .
من میخوام با تایمر/کانتر کارکنم که 6 عدد پین را جداگانه 1و0 کنم . که نمیدونم از کجا شروع کنم هلپbascom هم گنگ نوشته. :oops: :?:
ha_60 نوشته است:راحت تر هم می شه با یه دستور delay که نیاز به تایمر نداره
ه
من می خام یه عددی که از تایمر بدست میارم رو بدم به عنوان دیلی . delay
حالا کدویژن میگه که فقط از ثوابت میشه برای تابع delay استفاده کرد .
چجوری متغیر رو به ثبات تبدیل کنم که delay قبولش کنه ؟ :cry:
متغییر رو نمی شه به ثابت تبدیل کرد
شما باید یه delay کوچیک مثلا 1ms درست کنی توی یه for قرار بدی و اون متغیر رو به For بدی تا مقدار تاخیر برابر با اون بشه
ولی فکر کنم کدویژن متغییر هم قبول می کرد