PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : رستارت میکرو و عمل کردن رله ها



myiranmicro
11-10-2013, 14:35
با سلام خدمت دوستان عزیز.
چه طور میتونم جلوی یک شدن پایه های میکرو رو هنگام راه اندازی بگیرم تا موقع قطع و وصل شدن برق ها رله هام عمل نکنن؟؟

فقط در حد چند میلی ثانیه یک میشه که رله ها عمل میکنن.

به نظرتون اگه با صفر کردن رله ها عمل کنن مشکل حل میشه یا اون وقت هم یه لحظه صفر میشه؟؟؟!!

sarab1
11-10-2013, 15:05
سلام یکم بیشتر میتونی توضیح بدی؟ تست کردی که اگه درست بعد void main پورت ها رو صفر کنی درست میشه یا نه! منظورم اینکه در موقع شروع کار میکرو بعد power on reset پورت ها در وضعیت آنالوگ هستند پس شما اول میایی مقدار پین ها رو صفر میکنی بعدش میایی پین ها رو به صورت خروجی تعریف کنی!!!
اینطوری هیچ مشکلی پیش نمی آید.

myiranmicro
11-10-2013, 20:49
با دستور زیر خروجی تعریف میکنم.همین دستور پین رو صفر میکنه
*AT91C_PIOB_OER = (1<<19); // LED1..4 are Outputs

با این دستور ها هم فرقی نکرد.

*AT91C_PIOB_CODR = (1<<19);
*AT91C_PIOB_OER = (1<<19); // LED1..4 are Outputs
*AT91C_PIOB_PER = (1<<19); // Enable PIO for LED1..4

ghaem313
11-10-2013, 21:22
راه حل سخت افزاری داره و اون هم استفاده از لچ در خروجی هاست

myiranmicro
11-10-2013, 21:30
میشه بیشتر در مورد لچ توضیح بدین مهندس.
با تشکر.

sarab1
11-10-2013, 21:43
با دستور زیر خروجی تعریف میکنم.همین دستور پین رو صفر میکنه
*at91c_piob_oer = (1<<19); // led1..4 are outputs

با این دستور ها هم فرقی نکرد.

*at91c_piob_codr = (1<<19);
*at91c_piob_oer = (1<<19); // led1..4 are outputs
*at91c_piob_per = (1<<19); // enable pio for led1..4

مهندس این چیز خاصی نیست که نتونین ازش جواب بگیرین برای خود من بار ها این مورد پیش اومده فقط اینکه دقیقا باید بعد void main باشه اون سه دستور بالایی حتما وحتما بدون هیچ تاخیری !!!
در غیر اینصورت یا power on reset فعال نیست یا میکروتون ایراد پیدا کرده!!یعنی سوخته:018:

myiranmicro
12-10-2013, 11:53
کل برنامه من همینه که تست هم کردم جواب نداد.

#include <AT91SAM7X256.H>
#include <lib_at91sam7x256.h>
#include <stdio.h>
//#include "TFTLCD.h"
#include <stdint.h>







void main(void)
{
*AT91C_PIOB_OER = (1<<19); // LED1..4 are Outputs
*AT91C_PIOB_PER = (1<<19); // Enable PIO for LED1..4

while(1)
{


}

}

حتی با نگه داشتن دکمه رستارت پورت ها یک میشن.

myiranmicro
12-10-2013, 12:14
مشکلم حل شد.من یه پسرخاله متخصص سخت افزار دارم البته پسرخاله که چه عرض کنم ازم 15 هزار تومن گرفت برای یه ترانزیستور:baad:
با ترانزیستور یه مدار Not طراحی کرد که ورودیش به یه پین میکرو وصله و تا وقتی پین یک هست تغذیه مدار رله ها قطع (صفر) هست وقتی پین رو صفر کنم مدار رله ها کار میکنه.
این طوری من تو برنامه پین رو همیشه صفر نگه میدارم با رستارت که یه لحظه یک میشه مدار رله ها قطع میشه.

خدا رو شکر که سخت افزار بلد نیستم وگرنه حسابی دیووونه میشدم که چرا 15 تومن دادم.:unh:
راه حل بسیار خوبیه گفتم همه دوستان بدونن.:wink:
با تشکر از راهنمایی های همه دوستان.

ghaem313
12-10-2013, 20:44
راه حل پسر خاله شما هم یه راهه و برای شروع کار میکرو(por) مناسبه
اما اگر میکرو هنک کنه مقدار قبلی رله ها را نمیتونه حفظ کنه

myiranmicro
13-10-2013, 12:44
منم همین رو میخوام که با هنگ و رستارت و نویز و ... به هیچ عنوام رله عمل نکنه چون قراره قفل در رو باز کنه.:wink: