ايران ويج

نسخه‌ی کامل: چت باکس میکرو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7 8 9
(۱۰-مرداد-۱۳۹۱, ۱۹:۵۶:۴۴)h.bagherii نوشته است: [ -> ]با تشکر از شما.
خفن ترین از این نظر میگم که واسه کارای صنعتی بشه استفاده کرد.
بعد پردازنده فرقش با میکرو چیه؟اگه میشه یه توضیح بدین....
برای کارای صنعتی هم همین طور ولی شاید pic بهتر باشه
پردازنده cpu خودمونAmaze! حافظه ندارد و مجموعه ای از مدارات منطقی هست
ممنون.
من میخوام باpwmسرعت موتورای رباتموکنترل کنم ولی وقتی timer1راه اندازی میکنم فقط پایه ی ocr1aفعال میشه چه جوری بایدocr1bرا فعال کنم.با codvisionمینویسم.
بایدتویcodewizardکارخاصی بکنم؟؟؟؟؟؟؟؟
در codewizard يه قسمت داره كه مشخص مي كنيد پايه هاي خروجي PWM كه براي تايمر1 ، دو عدد هستند ، به صورت معكوس ، يا غير معكوس يا بدون اتصال باشند.
احتمالا براي OCR1b اين قسمت رو به حالت default رها كرديد كه يعني اتصالي ندارهه. اين قسمت رو به معكوس يا غير معكوس تغيير بديد.
ان شاءالله كه مشكلتون حل مي شه .

موفق باشيد.
ببخشید دستوری داریم که نام یک متغییر یا فیوز بیت رو توی برنامه تغییر داد مثلا جای PORTB بنویسیم AB یا چیزایی مثل این در زبان c

یک سوال دیگه هم که داشتم اینه که فرکانس pwm که برای تنظیم سرعت موتور استفاده کردیم چه تاثیری داره(با کم و زیاد کردنش چه تغییری حاصل میشه)
1-بله . از دستور #define بايستي استفاده كنيد.
2-امتحان كني مي فهمي . ( براي موتور 50 تا 60HZ مناسب هست ) فركانس از يه حدي بيشتر بشه موتور اصلا فرصت قطع شدن رو پيدا نمي كنه ( و همينطور بلعكس ) ( به صداي موتور هم در فركانس هاي مختلف دقت كنيد. ) ( رنج DutyCycle مؤثر رو هم در فركانس هاي مختلف دقت كنيد )
موفق باشيد.
ملت گوش ندادن که خودم مجبور شدم جواب رو اینجا بدم
برای دیدن این که بحث چی بوده به این تاپینک برید

اول GCC چی هست؟
یه کامپایلر C و C++ هست که تحت GNU انتشار پیدا میکنه
متن باز هست و برای Linux و ویندوز هم موجود هست
حالا اومدن و یه قسمتی رو ازش مشتق کردن به نام AVR-GCC که
مربوط به میکرو کنترلر ها میشه و مثل هر کامپایلری بدون IDE هست توی خط فرمان اجرا میشه فایل C رو میگیره و فایل هایی که ازش میخواید رو خروجی میده و اصولا در بخش میکرو یه فایل اسمبلی خروجی میده
و میان اونو بعد با یه کامپایلر دیگه به hex تبدیل میکنن
اما نبود IDE اذیت کننده هست پس اومدن و یکی براش ساختن به نام WINAVR که البته همون طور که از اسمش پیداس مربوط به ویندوز هست
حتما برای لینوکس هم یه چیز هایی باید باشه ولی اگه نباشه هم خدا پدر wine رو بیامرزه اگه نه که باید با خط فرمان کار کنید
اما خوب winavr هم همچین ظاهر خوبی نداره و گیرا نیست
اما از اون طرف avrstudio هست که همه میدونین قویترین اسمبلر رو برای avr دارا هست این که دیگه درش شکی نیست
از ورژن 5 به بعد اومدن و AVR-GCC رو وارد این نرم افزار کردن
و چون محیطش به شدت شبیه به VISUAL STUDIO هست (اصلا به وسیله ی همین هم ساخته شده) به راحتی میشه باهاش ارتباط برقرار کرد مخصوصا ایرانی ها که خیلی از VISUAL STUDIO استفاده میکنن
این برنامه هم مانند VISUAL STUDIO یک سری کامپوننت هایی روش نصب میشه که برنامه نویسی رو راحت بکنه
و کیسری نرم افزار ها بهش اضافه میشن از جمله
ASF
QTOUCH
و حتی CODEVISION!
و AVR-GCC
ARM-GCC
و ...
البته بسیاری از مورد نیاز ها قبلا نصب شده و با دانلود فایل تصب وجود دارن
این چیز هایی که هستن رو یه توضیح بدم
ASF مخفف ATMEL SOFTWARE FRAMEWORK
هست که مانن همزادش در میکروسافت یکسری توابع آماده رو داره که میتونید استفاده بکنید بخصوص برای آزمایش
البته بیشتر برای ARM و AVR-32Bit و برد های آماده ی خود ATMEL طراحی شده
و من به شخصه هنوز بهش نیازی پیدا نکردم
QTOUCH هم برای کنترل صفحه نمایش ها هست که البته ما معمولا با ماژول های آماده می خریم ولی اگه بخواید مستقیم با صفحه های تاچ و رنگی کار کنید این اینجاست! و منم که توی این وادیا نبودم و استفاده هم ازش نکردم
کدویژن به عنوان یه کامپایلر اضافه میشه و میتونید به جای GCC از اون استفاده بکنید در این محیط که این تطابق از ورژن 2.6 رخ داده که اگه نسخه رایگان رو از سایت کدویژن بگیرید می بینید کد های خروجی کدویزارد هم تغییر کرده
بقیه هم که کامپایلر هستن دیگه میتونید اضافه بکنید که البته GCC به صورت پیش فرض اضافه شده

خسته شدم اینقدر نوشتم یه نفسی بکشم و بعد یه مقایسه ای داشته باشیم
و بعد منابع آموزشی که من توصیه می کنم
دوستان اگه که قسمت برای آموزش C میخواهند درست کنند این کار رو بکنند و این پست های من رو به اون جا انتقال بدهند
مقایسه!
ویژگی های GCC
1- رایگان و متن باز است
2- مشکلات سریع پیداشده و سریعا برطرف می شود
3- برنامه نویسی اصولی هست
4- بسیار در کامپایلر کردن توانا است
5- مشکل های کمی دارد
6- بسیاری از جهانیان از آن استفاده می کنن
7- کتابخانه های بسیاری در سراسر جهان برایش نوشته شده است
8- انواع آموزش ها موجود است
(اینا مربوط به avrstudio)
9- وجود ابزار های مختلف که نظارت رو بر برنامه راحت می کند
10- وجود شبیه ساز
11- اسمبلر قوی
-
کدویژن
1- کدویزارد دارد
2- کتابخانه برای انگشت در دماغ کردن هم دارد
3- بسیاری از عملیات های پر کاربرد را به خود برنامه اضافه کرده است (مانند دسترسی بیتی به پورت ها)
-
معایب GCC
1- نبود کدویزارد
2- بسیاری از قابلیت های AVR رو به راحتی کدویژن نمیتوان استفاده کرد
-
معایب کدویژن
1- رایگان نیست و کرک ان مشکلاتی را به همراه دارد
2- مشکلات به سرعت رفع نمی شوند
4- همه گیر نیست (در جهان)
5- وجود کتابخانه های زیاد و پیش فرض ابتکار عمل را از شما میگیرد
6- به شدت در پروژه هایی کمی پیشرفته از خود ضعف نشانداده و برنامه را به خوبی کامپایل نمی کند
-
من دیگه چیزی به ذهنم نرسید
کمی بی طرفانه هم نبود Biggrin
بقیه دوستان هم میتونند نظراتشون رو بگن

این لینک هم برای آموزش یه چیز هایی گفتم
فقط برای دانلود AVRSTUDIO اون لینک خرابه از همین استفاده کنید
بهزاد جان عجله نکن
بذار امتحانا رو بدیم، انشالله همه اینا رو میایم ازت یاد میگیریم
الان من که اینقده تو بحر امتحانا رفتم که اینا رو فقط یه روخوانی بکنم هرچی یاد گرفتم میپرهWhistle
آقا فعلا دربارش حرف نزنیم من یه ساعت میخونم میام آنلاین میشم باز میرم میگم نکه اینها شروع کنن ها ...من عقب بمونم
به سوالی برام پیش اومده Biggrin
ببینید مگه دستور pulseout تو بسکام یا پالس مشخص رو با یه پریود ثابت روی یه پایه نمیندازه؟
حالا pulsein هم پالس رو از روی یه پایه میخونه میریزه تو یه متغییر دیگه
پس وقتی با یه میکرو یه پالسی ایجاد کنیم با یه میکرو دیگه بگیریمش باید زمانه تناوبی که دریافت میکنیم با چیزی که ارسال میشه یکی باشه
ولی پروتئوس چیزه دیگه ای میگه
من الان به یه مگا 8 این برنامرو دادم :
کد php:
$regfile "m8def.dat"
$crystal 1000000
Config Portd 
Output
Do
Pulseout Portd 500
Loop

End 
'end program 
به یه مگا 8 دیگه :
کد php:
$regfile "m8def.dat"
$crystal 1000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Pinc.0 Db5 Pinc.1 Db6 Pinc.2 Db7 Pinc.3 Pinc.4 Rs Pinc.5
Config Portb 
Input
Dim A 
As Word
Do
If 
Pinb.1 1 Then
Pulsein A 
Pind 1
Lcd A
Wait 2
Cls
Elseif Pinb.2 1 Then
Pulsein A 
Pind 0
Lcd A
Wait 2
Cls
End 
If
Loop
End 
مدار پروتئوسم گزاشتم تو فایل پیوست میشه یکی به من بفهمونه این وسط چیو دارم اشتباه میکنم؟
(۲۱-دى-۱۳۹۱, ۰۰:۳۲:۱۳)WhiteNoise نوشته است: [ -> ]به سوالی برام پیش اومده Biggrin
ببینید مگه دستور pulseout تو بسکام یا پالس مشخص رو با یه پریود ثابت روی یه پایه نمیندازه؟
حالا pulsein هم پالس رو از روی یه پایه میخونه میریزه تو یه متغییر دیگه
پس وقتی با یه میکرو یه پالسی ایجاد کنیم با یه میکرو دیگه بگیریمش باید زمانه تناوبی که دریافت میکنیم با چیزی که ارسال میشه یکی باشه
ولی پروتئوس چیزه دیگه ای میگه
من الان به یه مگا 8 این برنامرو دادم :
کد php:
$regfile "m8def.dat"
$crystal 1000000
Config Portd 
Output
Do
Pulseout Portd 500
Loop

End 
'end program 
به یه مگا 8 دیگه :
کد php:
$regfile "m8def.dat"
$crystal 1000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Pinc.0 Db5 Pinc.1 Db6 Pinc.2 Db7 Pinc.3 Pinc.4 Rs Pinc.5
Config Portb 
Input
Dim A 
As Word
Do
If 
Pinb.1 1 Then
Pulsein A 
Pind 1
Lcd A
Wait 2
Cls
Elseif Pinb.2 1 Then
Pulsein A 
Pind 0
Lcd A
Wait 2
Cls
End 
If
Loop
End 
مدار پروتئوسم گزاشتم تو فایل پیوست میشه یکی به من بفهمونه این وسط چیو دارم اشتباه میکنم؟
میزان پالس به سرعت کریستال بستگی داره
اگه فرسنده رو روی 4 مگ تنظیم بکنی حالا خروجی تو 1 میکرو ثانیه هست
میریم سراغ گیرنده گیرنده تفکیکش توی شمردن کمتره (10 میکرو ثانیه)
پس سرعتش رو بالاتر انتخاب کن 8مگ
حالا توی گیرنده ممکنه وسط پالس برسی و اون از همون جا شروع به کار میکنه برای همین عدد درست در نمیاد
باید منتظر باشه یک نوسان انجام بشه بعد شروع به خوندن بکنی
پس برنامه این میشه
فرسنده
کد:
$regfile = "m8def.dat"
$crystal = 4000000
Config Portd = Output
Do
Pulseout Portd , 0 , 1
Loop
End
گیرنده
کد:
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pinc.0 , Db5 = Pinc.1 , Db6 = Pinc.2 , Db7 = Pinc.3 , E = Pinc.4 , Rs = Pinc.5
Config Portb = Input
Dim A As Long
Do
While Pind.0 = 0
Wend
While Pind.0 = 1
Wend
Pulsein A , Pind , 0 , 1
Lcd A
Lowerline
While Pind.0 = 1
Wend
While Pind.0 = 0
Wend
Pulsein A , Pind , 0 , 0
Lcd A
Waitms 500
Cls
Loop
End
به شیوه ی منتظر شدن برای پالس بعدی دقت کن با مخالف اون حالتی که میخوای تموم میشه
حالا دقیقا روی 1 میکرو ثانیه رو نشون میده
خیلی هم روی اینها حساب نکن همیشه دقیق نیستن
صفحه‌ها: 1 2 3 4 5 6 7 8 9