ايران ويج

نسخه‌ی کامل: طراحی شمارنده پالس های ورودی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
یک مدار آنالوگ موجود هست که پالسهایی با دامنه ثابت 6 ولت تولید میکند. هدف از این پروژه شمارش این پالس ها در مدت زمان مشخص (مثلا 100 ثانیه) و انتقال تعداد پالس ها به PC از طریق پورت سریال می‏باشد. نرخ پالس های ورودی تقریبا برابر با 1000 تا 2000 پالس در هر ثانیه می‏باشد.
سوال من اینست که:
1) به نظر شما بهترین روش برای این کار چیست؟ آیا امکان دارد تایمری در pc طراحی کرد (مثلا با VB) بعد در اون مدت زمان هر موقع یک پالس به میکرو اعمال می‏شود، میکرو از طریق پورت سریال "یک منطقی" را به pc ارسال کند و برنامه موجود در pc عمل شمارش را در مدت زمان مشخص انجام دهد.
1) آیا می‏توان در خود میکرو شمارش را انجام داد (از طریق pc تایمر میکرو را set کرد) و بعد کل تعداد شمارش در مدت زمان مشخص را با پورت سریال به کامپیوتر ارسال کرد؟ آیا میکرو توانایی شمارش همچین عددی را دارد.
با تشکر از شما
کسی نیست یک کمک کوچکی به ما بکنه؟
من تو این چند روز تایمر با میکرو را طراحی کردم. (تا 65K) ولی چون کار من تقریبا صنعتی هست نمیدونم این کارم درسته یا نه؟ چون قراره این دستگاه بره داخل خاک. و آیا میشه بصورت real time شمارش را در pc انجام داد؟ و شمارشها را بصورت لحظه ای مشاهده کرد؟
دوست عزیز ارتباط میکرو با کامپیوتر از طریق پورت سریال هیچوقت دقت زمانی ندارد (معمولا کامپیوتر سرگرم کارهای دیگری است از جمله سرکشی به پورتها - وقفه ها-سرویسهاو....)
تنها راه ممکن استارت تایمر میکرو از طریق پی سی است
بلی میکرو نه تنها قادر به شمردن فرکانس 2 کیلو هرتز بلکه میکرو های جدید تا دهها مگاهرتز را می شمارند
بهتر است یک مدار تقسیم کننده بر دو ویک اشمیت تریگر تی تی ال وهمچنین در داخل میکرو
یک نویز گیر دیجیتالی ایجاد کنید (برای فرکانسهای بالا تر از 3000 هرتز)
بالاخره اینکه این طرح بسادگی امکان پذیر است
با تشکر از شما
دو تا سوال برای من ایجاد شده:
1) من در این پروژه مجبورم که از دو تا timer/counter همزمان استفاده کنم. (یکی برای شمارش پالس های خارجی و یکی هم به عنوان تایمر) آیا از لحاظ وقفه مشکلی پیش نمیاد. ورودی شمارنده پالس هایی کاملا رندوم میباشند. و timer هم هر یک ثانیه یک بار وقفه overflow میدهد.
2) من میخواهم از طریق کامپیوتر مقدار timer را از طریق سریال ست کنم .(مثلا 100 تا overflow که برابر با 100 ثانیه میشود) در اینجا دوتا سوال برام پیش آمده. من اگر بخواهم مقدار دریافتی بصورت عدد باشد نه رشته باید از u% در تابع ()scanf استفاده کنم؟ در basecome دستوری بود به اسم ()input که میتوانستیم یک متنی را در hyper terminal نمایش دهیم و بعد از وارد کردن مقدار عدد و بعد زدن enter این مقدار وارد یک متغییر میشد ولی در C هر عددی را که وارد میکنیم بلافاصله وارد میکرو میشه. (مثلا میخواهیم عدد 100 را وارد کنیم.) و همینطور برای ارسال.
input "enter first number:" , Firstnumber
input "enter second number:" , Secondnumber