ايران ويج

نسخه‌ی کامل: glcd با بیسیک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان خسته نباشید
توی یه پروژه با بیسیک کار می کنم که به چنین مشکل برخوردم:
میخوام یک متغیر از نوع long رو روی GLCD نمایش بدم که خطا میده:
lcdat 1,1,code2
code2 از نوع long و این خطا رو میده Lable not found [PRINTLONG]
ولی متغییرهای دیگه از نوع Bayte و String رو خطا نمیده.
سلام.

کد php:
var = str(x

var یه متغییر از نوع string هست و x یک متغییر عددی.
با تابع فوق متغییر long رو به یک رشته تبدیل کنید و بعد به عنوان ورودی به تابع اعمال کنید.
تست کنید، شاید جواب بده ...

موفق باشید.
سلام ممنون بایت پاسختون.
ولی تست کردم جواب نمیده.
دقیق مشخص کنید چه اتفاقی می افته ، خطا می ده، یا کامپایل می شه اما در عمل جواب نمی ده؟
مدار رو عملی بستید؟ یا پروتئوس؟
در هر صورت اگر string رو نشون می ده ، شاید تابع بالا long رو درست نمی تونه تبدیل کنید ( باید امتحان کنید مطمئن بشید ، مثلا رو LCD کاراکتری امتحان کنید )
اگر مشکل این بود ، تابع long رو نهایتا به متغییرهای کوچیکتر بشکونید و بعد به عنوان ورودی به تابع LCD بدید.
شاید هم خودتون جایی از کدها رو بد نوشتید ...
باید بررسی کنید...

موفق باشید.
سلام
از دوستانی که کار کرده بودن پرسیدم ،می گفتن متغیرهای از نوع long,word,integer رو روی glcd نمیشه نشون داد و خطا میده، ولی یک از دوستانی C کار کرده بود می گفت که در کدویژن با یه سری تنظیمات میشه این مشکلو برطرف کرد ولی توی بسکامو نمی دونست .
چنین خطایی رو میده:
lcdat 1,1,code2
code2 از نوع long و این خطا رو میده Lable not found [PRINTLONG]
ولی متغییرهای دیگه از نوع Bayte و String رو خطا نمیده.
طبیعیه بستگی به پیاده سازی توابع داره.
این موارد خطا رو متوجه شدم ، منظورم این بود که با تابع str استفاده کردید نتیجه چی شد؟ خطا داد یا فقط کار نکرد؟
از اونجایی که با تابع str می تونید متغییر های عددی رو تبدیل به string کنید ، قاعدتا نباید مشکلی باشه ، چون به گفته ی خودتون تابع lcd قادر هست string رو نمایش بده. موقع تعریف string طول رشته رو هم به اندازه کافی بذارید.
اگر از این روش جواب نمی گیرید ، تیکه کدی که متغییر رو تعریف می کنید ، مقداردهی و تبدیل می کنید و رو lcd نمایش می دید رو بذارید.

توابع GLCD کدویژن هم خیلی کاملتر از بسکام پیاده سازی شدن. البته آخرین بار حدود 3 سال پیش از GLCD استفاده کردم ... .

موفق باشید.
سلام ممنون بابت پیگری این موضوع
به گفته شما در برنامه ام متغیر code2 که از نوع long بود رو تبدیل به رشته، ودر متغیری از نوع string به نام code3 ریختم،ولی  خطایی مشابه با همون خطا ، رخ داد:
Dim Code2 As Long
Dim Code3 As String * 12
Code3 = Str(code2)
Lcdat 1 , 1 , Code3
خطا:Lable not found [PRINTLONG]
در نهایت خودم امتحان کردم، کد زیر برای من خطای کامپایل نمی ده، چک کنید ببینید حله؟

کد php:
$regfile "m32def.dat"
$crystal 8000000

$lib 
"glcdKS108.lbx"
Config Graphlcd 128 64sed Dataport Portb Controlport Porta Ce Ce2 Cd Rd Reset Enable 1


Dim S 
As String 10
Dim L 
As Long

1213458


Do

Str(l)
Lcdat 1 S

Loop
End 
حتی همون long هم به تابع LCD دادم، خطای کامپایل نگرفت. به هر حال خودتون چک کنید ...

موفق باشید.
سلام دوست عزیز
حق باشما بود، برنامه شما رو چک کردم خطایی رخ نداد و متغیر L که از نوع long بود رو هم چک کردم خطایی نداد،
خیلی تعجب کردم اول فکر کردم مشکل از تبدیل متغیرهاست، توی یه برنامه جداگونه تست کردم دیدم مشکل از تبدیل متغیرها هم نیست، بعد یه بار برنامه اصلی ام رو چک کردم دیدم که یک کتابخانه به نام lib "mcsbyte.lbx"$ توی برنامه اصلیم است که اونو حذف کردم دیدم مشکل برطرف شد و نه به تبدیل متغیرم گیر داد و نه به نوع متغیرم که از نوع long بود و در دوحالت روی Glcd نمایش داد.
خیلی ممنونم.