PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ارتباط میکرو AVR با نرم افزار lab view



mohamad_musav
21-08-2012, 13:03
سلام دوستان کسی میتونه منو تو ارتباط دهی میکرو با نرم افزار labview راهنمایی کنه؟
مداری برای اتصالش هست؟ اگه کامل توضیح بدید ممنون میشم.

sadmonew
21-08-2012, 13:19
سلام دوستان کسی میتونه منو تو ارتباط دهی میکرو با نرم افزار labview راهنمایی کنه؟
مداری برای اتصالش هست؟ اگه کامل توضیح بدید ممنون میشم.
سلام مهندس
در مورد اين موضوع مفصلا بحث شده.
اگه تو انجمنو سرچ ميكردين ميتونستين اين تاپيك رو پيدا كنيد:
labview و avr - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

mohamad_musav
22-08-2012, 11:34
سلام
دوست عزیز من انجمن ها رو سر زدم اما چیز زیادی دستگیرم نشد.
من فقط بتونم تنظیمات میکرو رو درست کنم labview رو استادمون گفت من برات درستش می کنم. سوالم اینه که برای اتصال میکرو به labview احتیاج به مداری هست؟ اگه کسی میدونه لطفا کامل راهنمایی کنه. ممنون

Ma3ood
22-08-2012, 12:10
اگه میکروتون AVR هست و یا در این رده برای ارتباط به کامپیوتر مجبوری از ارتباط سریال استفاده کنی و چون باید از پورت کام استفاده کنی و اونهم ولتاژ از نوع Cmos هست نمی شه و باید از یه ای سی max232 استفاده کنی نقشه مداری شو پیدا میکنم میزارم واسه تون خیلی اسونه:wink:

KHM
22-08-2012, 12:12
بله احتیاج به مدار هست ولی مدار خیلی ساده...
راحت ترینش استفاده از max232 هست...
دمبال شماتیک max232 بگرد..یام دیتاشیت..همه جا هست..همونو ببند و وصل کن به میکرو..

Ma3ood
22-08-2012, 12:20
دوست عزیز خدمت شما

mohamad_musav
22-08-2012, 13:19
سلام
ممنون از راهنمایی های مفیدتون.


برای ارتباط سریال میکرو با برنامه labview در قسمت USART برنامه code wizard AVR میکرو را در حالت فرستنده و دریافت کننده قرار دهم و وقفه ی قسمت دریافت کننده را فعال کرده و ظرفیت بافر گیرنده را چه مقداری قرار دهم.

نرخ ارسال برابر 9600 باشد؟communication parameters را در چه فرمتهایی قرار دهم همان فرمت پیش فرض: 8data,1 stop, no parity ؟

قسمت mode را نیز بر روی چه حالت هایی قرار دهم بهتر است؟

از شما دوستای گران قدر و عزیز خواهشمندم در صورت امکان راهنمایی های ارزشمندتان را بفرمایید.

Ma3ood
22-08-2012, 13:47
خوب در تنظیم کد ویزارد به صورت شکل زیر قرار بده جواب میگیری تنظیمات communication parameters و mode را تغییر نده
You can see links before reply (You can see links before reply)
در مورد بافر هم میتونی بسته با اطلاعاتت زیاد و کم کنی مثلا 20 قرار بدی

mohamad_musav
23-08-2012, 11:43
ممهونم از شما دوستان عزیز
خیلی راهنماییتون برام مفید بود. تشکر

mohamad_musav
23-08-2012, 23:20
سلام
من تونستم طریقه ارتباط سریال میکرو رو بدونم و فقط مونده که چطور مقدار فرکانس ها رو به پایه TXD انتقال بدم و همینطور دستوره labview رو به RXD بفرستم.
کجا و چیو باید من printf کنم نمی دونم؟ برای گیرندگی میکرو در روتین اینتراپت CodeVision باید چیکار کنم که فقط زمانی که داده از Labview آمد دیتای موجود در UDR را بخوانه؟
برای ارسال مقدار فرکانس ها از تابع ( )printf و برای دریافت دستور یا داده از labview از تابع ( )getchar استفاده کنم؟

Ma3ood
23-08-2012, 23:32
سلام
من تونستم طریقه ارتباط سریال میکرو رو بدونم و فقط مونده که چطور مقدار فرکانس ها رو به پایه TXD انتقال بدم و همینطور دستوره labview رو به RXD بفرستم.
کجا و چیو باید من printf کنم نمی دونم؟ برای گیرندگی میکرو در روتین اینتراپت CodeVision باید چیکار کنم که فقط زمانی که داده از Labview آمد دیتای موجود در UDR را بخوانه؟
برای ارسال مقدار فرکانس ها از تابع ( )printf و برای دریافت دستور یا داده از labview از تابع ( )getchar استفاده کنم؟

یه خورده گیج شدین فکر کنم
ببیند برای ازسال مثلا یه کاراکتر از دستور putxchar() استفاده میکنی و حالا توی روتین وقفه زمانی فعال میشه که دیتایی به پایه RXD بیاد و مقدارش در بافر UDR قرار میگیره حالا میتونی مقدار UDR را بخونی و یا توی سرویس وقفه از دستور getchar برای دریافت یک کاراکتر استفاده کنی زیاد سخت نیست شما نمونه برنامه ای داری روش کار میکنی را قرار بده اگه بتونم حتما کمکتون میکنم :0013:
دستور های دیگه و با کابرد های دیگه هم هست
مثل
gets
sprint
print
scanf
و غیره بهتره یه مطالعه از روی کتابی بکنی

Ma3ood
24-08-2012, 20:06
درود دوست عزیز شما دستور زیر را این طوری قرار بده


.
.
.
.
if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
{
PORTC.0=0;
}
else
{
PORTC.0=1;
}
printf("f1:%d,f2:%d,f3:%d",pulse1,pulse2,pulse3);
delay_ms(1000);
}
.
.
.

این دستور هر 1 ثانیه مقادیر 3 فرکانس را با هم ارسال میکنه مثلا باید اینطوری دریافت کنی
f1:12,f2:20,f:30

mohamad_musav
24-08-2012, 21:30
سلام
اینطوری هم میشه؟ بنویسم؟


while (1)
{
#asm("cli")
pulse1=0;
pulse2=0;
pulse3=0;
#asm("sei")
delay_ms(100);
final_pulse1=pulse1;
final_pulse2=pulse2;
final_pulse3=pulse3;
if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
{
PORTC.0=0;
printf ( "final_pulse1" );
printf ( "final_pulse2" );
printf ( "final_pulse3" );
}
else
{
PORTC.0=1;
printf ( "final_pulse1" );
printf ( "final_pulse2" );
printf ( "final_pulse3" );
}

}

Ma3ood
24-08-2012, 21:37
نه اینجووری فقطط نوشته ارسال میشه اینطوری بنویس


while (1)
{
#asm("cli")
pulse1=0;
pulse2=0;
pulse3=0;
#asm("sei")
delay_ms(100);
final_pulse1=pulse1;
final_pulse2=pulse2;
final_pulse3=pulse3;
if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
{
PORTC.0=0;
printf ( "final_pulse1:%d",final_pulse1 );
printf ( "final_pulse2:%d",final_pulse2 );
printf ( "final_pulse3:%d",final_pulse3 );
}
else
{
PORTC.0=1;
printf ( "final_pulse1:%d" ,final_pulse1);
printf ( "final_pulse2:%d" ,final_pulse2);
printf ( "final_pulse3:%d",final_pulse3 );
}

}

Ma3ood
24-08-2012, 21:46
البته یادم رفت بگم برای ارسال هر عدد یه مدت delay هم قرار بده مثل مقدار اول را که ارسال کرد مقدار دوم را مثلا 100 میلی ثانیه بعدش بفرسته و همین طور ......

mohamad_musav
24-08-2012, 22:10
اگه delay بزارم تو نمایش لب ویو مشکلی پیش نمیاد؟
اونجا میخواد همه رو باهم نمایش بده

mohamad_musav
24-08-2012, 22:12
اینطوری؟


if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
{
PORTC.0=0;
printf ( "final_pulse1:%d" ,final_pulse1);
delay_ms(100);
printf ( "final_pulse2:%d" ,final_pulse2);
delay_ms(100);
printf ( "final_pulse3:%d",final_pulse3 );
delay_ms(100);
}
else
{
PORTC.0=1;
printf ( "final_pulse1:%d" ,final_pulse1);
delay_ms(100);
printf ( "final_pulse2:%d" ,final_pulse2);
delay_ms(100);
printf ( "final_pulse3:%d",final_pulse3 );
delay_ms(100);
}

}

Ma3ood
24-08-2012, 22:17
نه برای این گفتم که دادها به هم نریزه برای سرعت بالا
در کل این زمان را باید کم یا زیاد کنی تا بهترین حالتت به دست بیاد :0013:

mohamad_musav
24-08-2012, 22:22
تو این یکی مدت delay کم بشه که طوری نیست؟
هر 100میای ثانیه مقادیرو بفرسته.


if ((final_pulse1==final_pulse2) && (final_pulse1==final_pulse3))
{
PORTC.0=0;
printf("f1:%d,f2:%d,f3:%d",pulse1,pulse2,pulse3);
delay_ms(100);
}
else
{
PORTC.0=1;
printf("f1:%d,f2:%d,f3:%d",pulse1,pulse2,pulse3);
delay_ms(100);

mohamad_musav
24-08-2012, 22:24
ممنونم از راهنمایی بسیار خوبت
من برای پیدا کردن زمان مناسب باید با لب ویو تست کنم؟

Ma3ood
24-08-2012, 22:29
اره این روش دوم که درپست 20 گذاشتی همه اطلاعات را باهم ارسال میکنه و میشه زمان تاخیرو کم کرد .
اره برای تست میتونی از هایپر ترمینال ویندوز - ترمینال خود کدویژن - شبیه سازی پروتئوس و لب ویوو استفاده کنی
:wink:

mohamad_musav
24-08-2012, 22:31
هایپر ترمینال ویندوز رو که اجرا کردم بعد تنظیماتش error میده نشد.

Ma3ood
24-08-2012, 22:34
چه خطایی
اگه سخت افزارت درست باشه هیچ مشکلی نداره :sa:

mohamad_musav
24-08-2012, 22:40
یعنی برای اینکه از هایپر ترمینال بخوام استفاده کنم باید برنامه رو پروگرم کنم رو ای سی و سخت افزار رو ببندم بعد وصلش کنم به کامپیوتر؟

Ma3ood
24-08-2012, 22:42
یعنی برای اینکه از هایپر ترمینال بخوام استفاده کنم باید برنامه رو پروگرم کنم رو ای سی و سخت افزار رو ببندم بعد وصلش کنم به کامپیوتر؟

خوب اره ii998)

mohamad_musav
24-08-2012, 22:46
خوب اره ii998)
ممنونم از شما خیلی کمکم کردی.
خیلی چیزا ازتون یاد گرفتم.

hamid_reza
11-01-2013, 18:23
سلام آقا محمد:hi:
به نتیجه رسیدی؟ تونستی کاری بکنی؟
ببین من با میکرو و طریقه ارتباط اون با کامپیوتر آشنا هستم ولی در مورد labview و مخصوصا"
در مورد طریقه ارتباط اون با دنیای بیرون یا بعبارتی اتصال یک وسیله یا یک میکروکنترلر یا ... به اون را بلد نیستم.
نظرت چیه تو برای ما توضیح بدی و من هم برای تو؟!!:wink::mrgreen:

sadmonew
11-01-2013, 18:33
سلام آقا محمد:hi:
به نتیجه رسیدی؟ تونستی کاری بکنی؟
ببین من با میکرو و طریقه ارتباط اون با کامپیوتر آشنا هستم ولی در مورد labview و مخصوصا"
در مورد طریقه ارتباط اون با دنیای بیرون یا بعبارتی اتصال یک وسیله یا یک میکروکنترلر یا ... به اون را بلد نیستم.
نظرت چیه تو برای ما توضیح بدی و من هم برای تو؟!!:wink::mrgreen:
سلام دوست عزیز
میتونید از این (You can see links before reply) تاپیک شروع به مطالعه کنید.