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

ارسال‌ها: 2
موضوع‌ها: 0
تاریخ عضویت: مهر ۱۳۹۰

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #12
RE: کمک در مورد پورت سریال
سلام من میخام اطلاعاتی که رو lcdنمایش میدم رو بفرستم به کامپیوتر باید چیکار کنم
۰۲-مهر-۱۳۹۰, ۱۹:۰۹:۱۰
ارسال‌ها
پاسخ
mehdiit آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 0
تاریخ عضویت: مرداد ۱۳۸۸

تشکرها : 3
( 0 تشکر در 0 ارسال )
ارسال: #13
RE: کمک در مورد پورت سریال
(۱۵-شهریور-۱۳۸۸, ۱۲:۴۳:۴۳)محمد حسینی نوشته است:
(۱۵-شهریور-۱۳۸۸, ۱۱:۰۰:۵۲)a_azari نوشته است: سلام
من با codevision کار میکنم.
می خوام با میکرو ارتباط سریال برقرار کنم ولی تا حالا اینکارو نکردم، می خوام یه سری دستورات رو بفرستم روی پورت و جوابشونو از پورت بخونم. از codewizard که استفاده میکنم دستوراتی که میاره رو اصلا متوجه نمی شم و نمی دونم کدوم قسمت برنامه دستورات اضافی خودمو بنویسم!!
کسی می تونه یه توضیح کام برام بده؟

اگه تو کدویزارد فقط ارسال رو قعال کنی (بدون وقفه) که چیزی اضافه نمی کنه. فقط تنظیمات رجیستر های سریال و کتابخونه stdio برای دستورهای ارسال داده ...
خیلی راحت با دستورهای puts ، putsf ، putchar و ... میتونی دیتا ارسال کنی.
ولی اگه دریافت رو هم تو کدویزارد فعال کنی (با وقفه) یه بلوک وقفه (اینتراپت) میسازه که هر وقت دیتا از پورت بیاد این وقفه قعال میشه و دیتای دریافتی تو متغیر data میره. اینجا دیگه هر طور خواستی باید کد بنویسی و اطلاعات رو جمع کنی.
مثلا من اینو نوشتم اطلاعات رو میگیره و تو rx_buffer جمع می کنه تا به پایان خط برسه.
کد:
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (data == '\n')
{
rx_buffer[rx_wr_index]='\0';
rx_wr_index=0;
p = 1;
rx_counter=0;
rx_buffer_overflow=1;
return;
}
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}
خسته نباشید آقای حسینی
این کدی که زحمت کشیدید نوشتید رو کجای برنامه باید نوشت یا فراخونی کرد؟
بعد از اینکه وقفه ی یوزارت رو از طریق کدویزارد فعال کردیم، چطوری باید اطلاعاتی که میاد روی پورت کام رو ببینم؟
۳۰-اسفند-۱۳۹۱, ۱۱:۱۶:۴۳
ارسال‌ها
پاسخ
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #14
RE: کمک در مورد پورت سریال
(۳۰-اسفند-۱۳۹۱, ۱۱:۱۶:۴۳)mehdiit نوشته است:
(۱۵-شهریور-۱۳۸۸, ۱۲:۴۳:۴۳)محمد حسینی نوشته است:
(۱۵-شهریور-۱۳۸۸, ۱۱:۰۰:۵۲)a_azari نوشته است: سلام
من با codevision کار میکنم.
می خوام با میکرو ارتباط سریال برقرار کنم ولی تا حالا اینکارو نکردم، می خوام یه سری دستورات رو بفرستم روی پورت و جوابشونو از پورت بخونم. از codewizard که استفاده میکنم دستوراتی که میاره رو اصلا متوجه نمی شم و نمی دونم کدوم قسمت برنامه دستورات اضافی خودمو بنویسم!!
کسی می تونه یه توضیح کام برام بده؟

اگه تو کدویزارد فقط ارسال رو قعال کنی (بدون وقفه) که چیزی اضافه نمی کنه. فقط تنظیمات رجیستر های سریال و کتابخونه stdio برای دستورهای ارسال داده ...
خیلی راحت با دستورهای puts ، putsf ، putchar و ... میتونی دیتا ارسال کنی.
ولی اگه دریافت رو هم تو کدویزارد فعال کنی (با وقفه) یه بلوک وقفه (اینتراپت) میسازه که هر وقت دیتا از پورت بیاد این وقفه قعال میشه و دیتای دریافتی تو متغیر data میره. اینجا دیگه هر طور خواستی باید کد بنویسی و اطلاعات رو جمع کنی.
مثلا من اینو نوشتم اطلاعات رو میگیره و تو rx_buffer جمع می کنه تا به پایان خط برسه.
کد:
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (data == '\n')
{
rx_buffer[rx_wr_index]='\0';
rx_wr_index=0;
p = 1;
rx_counter=0;
rx_buffer_overflow=1;
return;
}
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}
خسته نباشید آقای حسینی
این کدی که زحمت کشیدید نوشتید رو کجای برنامه باید نوشت یا فراخونی کرد؟
بعد از اینکه وقفه ی یوزارت رو از طریق کدویزارد فعال کردیم، چطوری باید اطلاعاتی که میاد روی پورت کام رو ببینم؟

سلام
برای اطمینان از صحت ارسال داده ها می تونید یه بازر به پایه فرستنده max232 وصل کنید و صدای پالس های دریافتی رو بشنوید
برای مشاهده داده های دریافتی از کامپیوتر هم میتوانید از hyper terminal سیستمتون استفاده کنید.

۳۰-اسفند-۱۳۹۱, ۱۶:۴۵:۱۴
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, aKaReZa75


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [مقاله] پروگرام میکرو با پورت سریال behzady 5 11,384 ۱۵-دى-۱۳۹۸, ۲۳:۱۹:۰۹
آخرین ارسال: 1نفر
  برنامه راه اندازی رله از طریق پورت شبکه (enc28j60) haisam 15 14,252 ۲۰-آبان-۱۳۹۷, ۰۹:۵۲:۵۹
آخرین ارسال: ali3000aab
  شمارنده معکوس رو Lcdگرافیکی حین خاموش روشن شدن led های یک پورت armin111 1 3,433 ۰۷-بهمن-۱۳۹۵, ۰۹:۵۸:۱۹
آخرین ارسال: aKaReZa75
  مشکل دریافت متن از پورت سریال میکرو sajadcut 1 3,260 ۱۲-آبان-۱۳۹۵, ۲۲:۱۰:۲۳
آخرین ارسال: behzady
  هنگ کردن میکرو در ارتباط سریال nex 1 2,890 ۰۴-آبان-۱۳۹۵, ۲۰:۵۶:۵۹
آخرین ارسال: علی محد شریفی
  مبدل-وایفای-به-سریال-wifi-esp8266 kimiafars 15 10,216 ۰۳-مهر-۱۳۹۵, ۰۳:۲۴:۳۲
آخرین ارسال: jalil2008
  مشكل با پورت سريال در متلب leila.66 8 11,927 ۱۲-شهریور-۱۳۹۵, ۲۰:۳۹:۳۴
آخرین ارسال: 36taregh
  [آموزشی] مشکل در ارتباط سریال mohamadgmail 5 3,484 ۲۷-آذر-۱۳۹۴, ۰۲:۴۹:۳۱
آخرین ارسال: omid_phoenix
Exclamation مشکل با eeprom های سریال bigbig 4 5,340 ۲۸-آبان-۱۳۹۴, ۰۱:۱۸:۰۰
آخرین ارسال: gray
  [سوال] خواندن از پورت سریال و نوشتن روی mmc index 0 2,246 ۲۷-مهر-۱۳۹۴, ۱۱:۵۹:۰۰
آخرین ارسال: index

پرش به انجمن:


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

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