ايران ويج

نسخه‌ی کامل: مشکل با usart
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
دوستان سلام
من یه برنامه نوشتم با بسکام که تو اون هم از usart نرم افزاری استفاده کردم هم سخت افزاری .به این صورت که از usart نرم افزاری یه داده رو میخونم بعد به سخت افزاری (برای pc)ارسال میکنم.بعد با وقفه usart سخت افزاری یه داده از pc دریافت
میکنم وبهusart نرم افزاری ارسال میکنم..
$regfile = "m32def.dat"
Baud # 9600
$crystal = 8000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = _
Portb.7 , E = Portb.2 , Rs = Portb.0
Config Lcd = 16 * 2
Config Lcdbus = 4
Open "comd.4:9600,8,n,1" For Output As #1
Open "comd.5:9600,8,n,1" For Input As #2
Enable Interrupts
'Enable Serial
Enable Urxc
On Urxc Label1
Dim A As Word , B As Word
Cls
Cursor Off
Do
Main:
A = Inkey(#2
If A = 0 Then Goto Main
Home
Lcd A
Print A
Waitms 100
Loop
Label1:
B = Inkey()
If B = 49 Then Print "yes"
Locate 2 , 1
Lcd Chr(b)
Print #1 , B
Waitms 300
return
49کد "1"هسته برای اطمینان از وقفه خوردن میکرو.
اما مدار خوب کار نمیکنه و اولا اجق وجق تو هایپر نشون میده.ثانیا وقفه میخوره اما درست جواب نمیده.مساله دیگه اینکه دستور inkey فقط کد اسکی اولین کاراکتر رو
برمیگردونه اما داده من در هر دوورودی نرم افزاری وسخت افزاری یه عدد 2رقمیه که این دستور فقط رقم یکانشو بر میگردونه!!دستور input هم مشکل داره وروی خط جاری
میمونه انگار منتظر فشاردادن enter هسته ! اما تو لوپ حتی با ارسال کد enter هم
کار نکرد ! به نظر شما راه حل چیه؟ (به ظاهر میشه کل مجموعه رو برداشت و rxd ,txdرومستقیم وصل کرد بهpc اما این فقط جزیی از برنامه است که توش گیر کردم مابقی به usart کاری نداره)
سلام

راجع به اجق وجق نشون دادن احتمال نويز بالا است.ولي قبلش ساير موارد رو هم چك كنيد.تو چه محيطي آزمايش كرديد؟

با كمال سپاس
S.Mahdizadeh
تو هایپر ترمینال ویندوز و مال خود بسکام. نتیجه یه جور بود .بیشتر مشکل از دریافت داده سریال است .دستورinkey فقط کد اسکی اولین داده رو برمیگردونه.و input بدون
enter جواب نمیده!!!دستور دیگه ای نیست؟
(۲۲-اسفند-۱۳۸۶, ۲۳:۲۵:۵۰)mehdi_ghp نوشته است: [ -> ]تو هایپر ترمینال ویندوز و مال خود بسکام. نتیجه یه جور بود .بیشتر مشکل از دریافت داده سریال است .دستورinkey فقط کد اسکی اولین داده رو برمیگردونه.و input بدون
enter جواب نمیده!!!دستور دیگه ای نیست؟

منم این اشکال رو داشتم و اینجور حل شد که فیوز بیت کلاک رو گذاشتم رو 8 مگاهرتز داخلی و یه کریستال 8 مگ نصب کردم و مقدار کریستال رو در برنامه 8 گذاشتم درست شد باود ریت هم 9600 بود