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

ارسال‌ها: 17
موضوع‌ها: 4
تاریخ عضویت: تير ۱۳۹۱

تشکرها : 7
( 4 تشکر در 3 ارسال )
ارسال: #1
وقفه سریال
سلام وخسته نباشید واسه سایت بسار مفیدتون
من واسه پروژم نیاز به ارتباط سریال دارم
من یه برنامه نوشتم که به نظرم مشکلی نداره انا موقع اجرا تو وقفه گیر میکنه و دوباره وارد برنامه اصلی نمیشه
کد:
$regfile = "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.0
$baud = 1200
Enable Interrupts
Enable Urxc
On Urxc Resive
Dim A As Long
Dim B As Byte
Cls
Home
B = 0
Main:
Do
Locate 1 , 1
Lcd B ; " mmmm "
Waitms 300
Print "hello"
Incr B
Loop
Resive:
Input A
Locate 2 , 2
Lcd A
Print "resive"
Return
ممنون میشم اگه راهنماییم کنین
۱۶-تير-۱۳۹۱, ۱۸:۲۱:۴۰
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #2
RE: وقفه سریال
سلام.
چطور تشخيص داديد كه تو وقفه گير كردهه ؟
چه زماني وقفه RX رخ مي دهد ؟ ( قبل از دريافت يا بعد از دريافت ؟! )

۱۶-تير-۱۳۹۱, ۱۹:۰۷:۴۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : abbasalifix, alfa.1000
alfa.1000 آفلاین
تازه وارد

ارسال‌ها: 17
موضوع‌ها: 4
تاریخ عضویت: تير ۱۳۹۱

تشکرها : 7
( 4 تشکر در 3 ارسال )
ارسال: #3
RE: وقفه سریال
بعد اولین ارسالی که از کامپیوتر به میکرو میشه ، میکرو دیگه هیچ عملی انجام نمیده و فقط دریافت سریال داره
اگه تو برنامه ببینید یه کلمه ای رو هر لحظه به کامپیوتر ارسال کنه
اما بعد دریافت این کار انجام نمیشه
۱۷-تير-۱۳۹۱, ۱۰:۲۴:۱۴
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #4
RE: وقفه سریال
بعد از اينكه دريافت كامل انجام شد ، اون موقع تازه وقفه ي RX رخ مي دهه !!
شما در روال وقفه نبايد دوبارهه input كنيد.
اطلاعات گرفته شده و در رجيستر UDR ذخيره شده هست. الان بايد مقادير رو از اين رجيستر بخونيد تا پرچم وقفه ي Rx هم پاك بشه. اگر اين ريجستر خوانده نشه ، پس از پايان روال وقفه دوبارهه وقفه ي Rx رخ مي دهد.
اينا براي كدويژن بود.
براي بسكام امتحان نكردم، اما در روال وقفه از عبارت زير استفاده كنيد بايستي درست باشه ...
نقل قول: NUM=UDR

خبرش رو بدهه ...
موفق باشيد.

۱۷-تير-۱۳۹۱, ۱۰:۵۴:۳۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : alfa.1000, karamoz
alfa.1000 آفلاین
تازه وارد

ارسال‌ها: 17
موضوع‌ها: 4
تاریخ عضویت: تير ۱۳۹۱

تشکرها : 7
( 4 تشکر در 3 ارسال )
ارسال: #5
RE: وقفه سریال
نقل قول: sharin
مدیر بخش الکترونیک و رباتیک
حل شد
داداش کارت خیلی درسته
۱۷-تير-۱۳۹۱, ۱۳:۳۲:۰۴
ارسال‌ها
پاسخ
shsamani آفلاین
تازه وارد

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

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #6
RE: وقفه سریال
سلام.من هم يك مشكل با ارتباط سريال دارم.
چطوري ميتونيم با برنامه نويسي (من با كدويژن كار ميكنم) در جايي از برنامه ارتباط سريال بين دو ميكرو را قطع كنيم؟
ممنون ميشم اگر كمكم كنيد.
۰۸-مرداد-۱۳۹۱, ۱۰:۵۹:۱۶
ارسال‌ها
پاسخ
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #7
RE: وقفه سریال
یه مولفه ای بانام bud rate داریم مقدار این رو بهم بریزین
۰۸-مرداد-۱۳۹۱, ۱۲:۰۲:۰۷
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #8
RE: وقفه سریال
نقل قول: سلام.من هم يك مشكل با ارتباط سريال دارم.
چطوري ميتونيم با برنامه نويسي (من با كدويژن كار ميكنم) در جايي از برنامه ارتباط سريال بين دو ميكرو را قطع كنيم؟
ممنون ميشم اگر كمكم كنيد.

واضح تر لطفا ...

يعني اول ارتباط برقرارهه ، از يه جايي به بعد يكي سعي مي كنه اطلاعات رو از ديگري بگيرهه اما همچين اجازه اي بهش داده نمي شه !
درسته؟ منظورتون همينه؟

۰۸-مرداد-۱۳۹۱, ۱۵:۱۱:۳۰
وب سایت ارسال‌ها
پاسخ
shsamani آفلاین
تازه وارد

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

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #9
RE: وقفه سریال
(۰۸-مرداد-۱۳۹۱, ۱۵:۱۱:۳۰)sharin نوشته است:
نقل قول: سلام.من هم يك مشكل با ارتباط سريال دارم.
چطوري ميتونيم با برنامه نويسي (من با كدويژن كار ميكنم) در جايي از برنامه ارتباط سريال بين دو ميكرو را قطع كنيم؟
ممنون ميشم اگر كمكم كنيد.

واضح تر لطفا ...

يعني اول ارتباط برقرارهه ، از يه جايي به بعد يكي سعي مي كنه اطلاعات رو از ديگري بگيرهه اما همچين اجازه اي بهش داده نمي شه !
درسته؟ منظورتون همينه؟

ببينيد،به اين صورت هست كه از ابتداي برنامه ارتباط سريال برقراره و هر دو ميكرو هم فرستنده هستند و هم گيرنده.ولي در جايي از برنامه ميخواهيم ميكروها ديگر به هم ديتايي نفرستند و به صورت مستقل از هم كار كنند وكنترل شوند.
۰۹-مرداد-۱۳۹۱, ۱۰:۵۹:۱۷
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #10
RE: وقفه سریال
شما اگر اطلاعاتي كه بين فرستنده گيرنده رد و بدل مي شه رو كد كرديد. كافيه از يه جايي به بعد كدها رو عوض كنيد ، اينطوري مشكل حل مي شه.
كار ديگه كه مي تونيد انجام بديد. وقتي شرط برآورده شدن قطع ارتباط برقرار شد برن در يك DO-Loop ديگه ، مجزا از اون DO-Loop اي كه توش اطلاعات رد و بدل مي كردن.
روش ديگه اينه كه تمام شرط هايي كه براي فرستادن و گرفتن اطلاعات گذاشتين رو در يه شرط ديگه بذاريد ، كه اين شرط اگر برقرار نباشه ، ديگه كدهاي ارسال و دريافت اجرا نمي شه.
روش ديگه اينكه در ريجستر هاي USART كمي بگرديد و يكي از بيت هاش كه براي فعال كردن اين واحد هست رو تغيير بديد كه واحد غير فعال بشه و طبيعتا اون كدهاي ارسال و دريافت هم از اين به بعد نبايد اجرا بشه كه به يكي از روش هاي بالا مي تونيد عمل كنيد ...
فعلا همينا به ذهنم مي رسيد.

موفق باشيد.

۰۹-مرداد-۱۳۹۱, ۱۲:۳۵:۳۷
وب سایت ارسال‌ها
پاسخ
shsamani آفلاین
تازه وارد

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

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #11
RE: وقفه سریال
(۰۹-مرداد-۱۳۹۱, ۱۲:۳۵:۳۷)sharin نوشته است: شما اگر اطلاعاتي كه بين فرستنده گيرنده رد و بدل مي شه رو كد كرديد. كافيه از يه جايي به بعد كدها رو عوض كنيد ، اينطوري مشكل حل مي شه.
كار ديگه كه مي تونيد انجام بديد. وقتي شرط برآورده شدن قطع ارتباط برقرار شد برن در يك DO-Loop ديگه ، مجزا از اون DO-Loop اي كه توش اطلاعات رد و بدل مي كردن.
روش ديگه اينه كه تمام شرط هايي كه براي فرستادن و گرفتن اطلاعات گذاشتين رو در يه شرط ديگه بذاريد ، كه اين شرط اگر برقرار نباشه ، ديگه كدهاي ارسال و دريافت اجرا نمي شه.
روش ديگه اينكه در ريجستر هاي USART كمي بگرديد و يكي از بيت هاش كه براي فعال كردن اين واحد هست رو تغيير بديد كه واحد غير فعال بشه و طبيعتا اون كدهاي ارسال و دريافت هم از اين به بعد نبايد اجرا بشه كه به يكي از روش هاي بالا مي تونيد عمل كنيد ...
فعلا همينا به ذهنم مي رسيد.

موفق باشيد.
خيلي از پاسخ هاتون ممنونم.ولي دقيقا متوجه نميشم بايد چيكار كنم!اگر يك مثال واسم بزنيد خيلي ازتون ممنون ميشم.
۰۹-مرداد-۱۳۹۱, ۱۶:۳۸:۵۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [آموزشی] آموزش ارتباط سریال بین 2میکرو mahdifaraji 6 4,177 ۲۳-تير-۱۳۹۴, ۱۳:۰۰:۱۷
آخرین ارسال: mahdifaraji
  راهنمایی در مورد سرعت میکرو و پورت سریال pontiac132 0 1,819 ۰۹-مهر-۱۳۹۳, ۲۲:۲۵:۵۵
آخرین ارسال: pontiac132
  [فوری] مشکل در پورت سریال و بسکام tishab 12 6,865 ۱۶-شهریور-۱۳۹۳, ۲۳:۴۹:۰۱
آخرین ارسال: sharin
  ساخت پورت سریال h0x00i 9 9,308 ۲۸-تير-۱۳۹۲, ۱۳:۱۸:۰۱
آخرین ارسال: h0x00i
  ارتباط سریال دو میکرو حیاتیه کمک fatemeh_avr 2 4,385 ۲۰-تير-۱۳۹۲, ۱۵:۰۵:۲۵
آخرین ارسال: sadrasadra
  استفاده از وقفه های میکرو فروم باز 11 7,502 ۱۳-اردیبهشت-۱۳۹۲, ۲۱:۰۸:۴۵
آخرین ارسال: omid_phoenix
  راهنمایی برای استفاده از وقفه sniper-70 3 3,488 ۱۶-دى-۱۳۹۱, ۱۷:۳۳:۴۸
آخرین ارسال: aKaReZa75
  ارتباط سریال وابسطه به کلاک apcog 0 2,064 ۱۵-دى-۱۳۹۰, ۱۷:۰۲:۱۹
آخرین ارسال: apcog

پرش به انجمن:


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

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