ايران ويج

نسخه‌ی کامل: مشکل با ارتباط سریال
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام.

لطف کنید برنامه زیر رو ببینید که مشکل اینه که وقتی از محیط terminal emulator بسکام اعداد اهسته تایپ شوند برنامه به درستی اجرا و اعداد وارد شده به درستی روی lcd نمایش داده میشوند ولی وقتی سریع تایپ شود یا از محیط دیگری مانند labview دریافت شود اعداد نادرست روی lcd نمایش داده میشود!
به طور مثال عدد 110116 از labview ارسال میشه ولی روی lcd عدد 611011 نمایش داده میشه یا عدد 110121 به صورت 111012 نمایش داده میشه.
منتظر کمک شما دوستان گرامی هستم.
کد php:
$regfile "m16def.dat"
$crystal=8000000
$baud 
9600
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 Pina.2 Db5 Pina.3 Db6 Pina.4 Db7 Pina.5 Pina.0 Rs Pina.1
Cursor Off
Cls
Dim S 
As String 6
Ss
:

Inputbin S
(A1 Val(s
Locate 1 
1
Lcd A1
jmp ss 
ممکنه ، فرکانس کاری مناسب باشه ، اگر از کریستال مخصوص برای ارتباط سریال استفاده کنید خطا 0% می شه.
ممکنه اتصالاتتون خوب نباشه ، نوع سیم و ... .
تا می تونید baud rate رو کم کنید.

اگر مدار با برنامه ی دیگه ای بدون مشکل کار می کنه ، پس مشکلی ندارهه و همه جا باید درست کار کنه و هیچ دلیل برای درست کار نکردن نیست. ، مگر اینکه اون فرستنده یا گیرنده یه مشکلی داشته باشه ، یا اطلاعات رو به سبک دیگه ای بفرسته و یا بگیرهه! نمی دونم!

از دستورات دیگه ای بجز inputbin هم استفاده کنید و ببینید نتیجه چی می شه.
ممنون از کمکتون.

ولی به جمله بنده توجه کنید:

به طور مثال عدد 110116 از labview ارسال میشه ولی روی lcd عدد 611011 نمایش داده میشه یا عدد 110121 به صورت 111012 نمایش داده میشه.

اعداد دقیقا همونن ولی جاهاشون عوض شده یعنی 110116 به 611011 تغییر پیدا کرده!
اگر باینری می گیرید که فقط بایستی 0 و 1 داشته باشید ، پس اون 6 و یا 2 این وسط چکاره هستن؟
دستورهای دیگه هم برای گرفتن اطلاعات امتحان کنید.
دقت کنید که بیت توازن و بیت 0 و تعداد بیت های انتقالی در هر 2 سمت یکسان باشه.
در نهایت این مشکل احتمال زیاد از سمت فرستده هست ، یا خالی نشدن کامل بافر ( البته برای UART کمی بعید هست )
خلاصه نکاتی هست که به ذهنم می رسه ، این موارد رو هم چک و امتحان کنید ، شاید اشکال کار بهتر در بیاد.

شخصا تاحالا همچین مشکلی نداشتم و البته از labview هم استفاده نکردم.

موفق باشید.