امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
فلاشر
نویسنده پیام
NOMERCY1239 آفلاین
تازه وارد

ارسال‌ها: 18
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 13
( 5 تشکر در 2 ارسال )
ارسال: #1
فلاشر
سلام من تازه كارم كمك كنين
من ميخوام 4ledبا هم روشنا خاموش بشن حالت فلاشر داشته باشن يعني هروقت كليد رو زدم فلاشر بشن
ledها آندشان به 3.3ولت و كاتد به پايه اي p1.20-p1.23 ميكرو وصل بشن و كليد هم به p0.1من اين برنامه را نوشتم چندتا سوال داشتم؟
1-برنامه درست هست؟
2-براي delay دادن راهي ديگه هست؟مثلا مثلinclude<delay.h> avr
3-براي p0.1بايد ورودي معين كرد؟چطوري؟
3-به جاي oX00000002اگه 0X02بزاريم مشكلي پيش مياد؟
۰۶-شهریور-۱۳۹۱, ۱۰:۱۵:۴۵
ارسال‌ها
پاسخ
apcog آفلاین
در حال پیشرفت
***

ارسال‌ها: 315
موضوع‌ها: 40
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 61
( 280 تشکر در 167 ارسال )
ارسال: #2
RE: فلاشر
سلام.اگه کامپایلر هم معلوم میکردی بهتر بود.
1-هنوز کد رو نگاه نکردم
2-توی keil که هیچ کتابخونه یا دستور پیشفرضی برای این کار نیست اما کویر الکترونیک یه کتابخونه ساده ساخته که با همون شمارش اعداد کار میکنه.اگه بخوای خودت هم میتونی بنویسیش.
3-آره-با مقدار دادن به رجیستر های بخش pio
4-بله میشه.فکر کنم ox2 هم جواب بده.

کد:
#asm
.MOV Recycle_Bin,Life;
#end asm
به همین راحتی زندگی از این رو به آن رو میشود!
WinkWink
۰۶-شهریور-۱۳۹۱, ۱۲:۴۰:۳۵
ارسال‌ها
پاسخ
NOMERCY1239 آفلاین
تازه وارد

ارسال‌ها: 18
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 13
( 5 تشکر در 2 ارسال )
ارسال: #3
RE: فلاشر
ميشه يكي بگه براي معرفي ورودي P0.1به ميكرو چه بايد كرد؟
اينجور درسته?
IODIR1=0X00F00000;// p1.20-p1.23 is out put
IODIR0=0XFFFFFFFD;//P.01 IS INPUT
۰۶-شهریور-۱۳۹۱, ۱۳:۵۲:۴۷
ارسال‌ها
پاسخ
apcog آفلاین
در حال پیشرفت
***

ارسال‌ها: 315
موضوع‌ها: 40
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 61
( 280 تشکر در 167 ارسال )
ارسال: #4
RE: فلاشر
از قرار معلوم داری برای keil کد میزنی!
اول باید با *AT91C_PIOB_PER=
پورت رو فعال کنی.PIOB مال پورت B هست.
بعد هم با PIOx_OER اون رو خروجی کنی.
PIOx_SODR و PIOx_CODR هم پایه ها رو یک و صفر میکنن.

کد:
#asm
.MOV Recycle_Bin,Life;
#end asm
به همین راحتی زندگی از این رو به آن رو میشود!
WinkWink
۰۶-شهریور-۱۳۹۱, ۱۶:۰۸:۱۷
ارسال‌ها
پاسخ
NOMERCY1239 آفلاین
تازه وارد

ارسال‌ها: 18
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 13
( 5 تشکر در 2 ارسال )
ارسال: #5
RE: فلاشر
دارم با زبان Cو KEIL كد ميزنم اينا كه گفتي نميدونم چي هستن فقط اينجوري بلدم با تنظيم IODIR0و IODIR1ورودي خروجي تعيين ميكنن
۰۶-شهریور-۱۳۹۱, ۱۹:۳۰:۲۷
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #6
RE: فلاشر
نقل قول: ميشه يكي بگه براي معرفي ورودي P0.1به ميكرو چه بايد كرد؟
اينجور درسته?
IODIR1=0X00F00000;// p1.20-p1.23 is out put
IODIR0=0XFFFFFFFD;//P.01 IS INPUT
نقل قول: دارم با زبان Cو KEIL كد ميزنم اينا كه گفتي نميدونم چي هستن فقط اينجوري بلدم با تنظيم IODIR0و IODIR1ورودي خروجي تعيين ميكنن
بله ، همينطوري درست هست.

اون كدهايي هم كه دوستمون گفت براي ميكروهاي شركت Atmel بود ، شما با ميكروهاي شركت NXP كار مي كنيد كه طبيعتا كدهاشون متفاوت هست.
کد php:
void main(){
IODIR1=0X00F000;// p1.20-p1.23 is out put
while(1){
unsigned char a;
a=(IOPIN0&0X00000002);
if(
a==oXOOOOOOOF){
IOCLR1=0X00F00000;// turn on led
delay();
IOSET1=0X00F00000:// turn off led
delay();
}
}

معمولا پيكربندي رو قبل از تابع main انجام مي دن ، اما مشكلي ايجاد نمي كنه.
شرطي كه براي a گذاشتيد اشتباه هست و هيچوقت اتفاق نمي افته.
a==0x2 رو بايد در شرط استفاده كنيد. ( البته اگر در طراحي كليد خازن استفاده نكرديد بايستي كدهاتون رو دقيقتر بزنيد ، به خاطر لرزش دكمه )
در تابع delay ، مقدار 400 خيلي كم هست. حدود 1000000 مناسب تر هست ، اگر مقدار رو كم بذاري ممكنه چشمك زدن LED به چشم نياد.

موفق باشيد.

(آخرین ویرایش در این ارسال: ۰۶-شهریور-۱۳۹۱, ۲۰:۴۱:۵۷، توسط sharin.)
۰۶-شهریور-۱۳۹۱, ۲۰:۳۱:۵۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, NOMERCY1239


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS