ايران ويج

نسخه‌ی کامل: سوالهای برنامه نویسی با کامپایلر BASCOM
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
تو بسکام می شه بیت های یک فایل هگز رو جدا کرد . با چه دستوری ؟ اگه نه و فقط می شه کارکترهای یک متغیر string رو جدا کرد آیا می شه که متغیر string رو به هگز تبدیل کرد . با چه دستوری ؟
یه نگاهی به دستورای HEXو HEXVAL بنداز
دستورات HEX و ٍHEXVAL متغیر از نوع String قبول نمی کنند . راه دیگه ای سراغ دارید ؟
خوب تک تک کارکترهای string رو جدا کد و تبدیل به دسیمالشون کن ( یا کد اسکی ) و اون وقت از دستورات فوق استفاده کن !!!
(۰۵-مهر-۱۳۸۹, ۲۳:۴۶:۱۷)Gawky نوشته است: [ -> ]خوب تک تک کارکترهای string رو جدا کد و تبدیل به دسیمالشون کن ( یا کد اسکی ) و اون وقت از دستورات فوق استفاده کن !!!
برنامه برای جایی که باید دیتا رو از طریق ارتباط سریال بگیره از لحاظ خطا بررسی کنه و بعد تو مموری کارت دخیره کنه . ماشاالله که دیتا هم حجمش کم نیست و سرعت هم این وقتا خیلی مهم می شه . راه دیگه ای سراغ دارید ؟
واسه تست خطاست !!!؟؟؟؟


چجوری خطا رو تشخیص می دی ؟
(۰۶-مهر-۱۳۸۹, ۰۰:۳۱:۳۹)Gawky نوشته است: [ -> ]واسه تست خطاست !!!؟؟؟؟


چجوری خطا رو تشخیص می دی ؟
با بیت پریتی یا همون توازن زوج و فرد در بیت شماره 10 (اگه دیتا 8 بیتی باشه )از بایت ارسال شده . همچنین می خوام برای اطمینان بیشتر handshaking سخت افزاری و یا نرم افزاری انجام بدم . مشکل اولم فعلا همین دریافت اطلاعات به صورت هگز است تو پروتئوس .
خوب مهندس کاراکتر کارکتر بگیر !! ( مثل برنامه من )
همونجا تست کن ببین دیتا درسته یا نه !!!!

بعد کاراکتر بعدی رو بگیر !!!

حالا قبل از این کار می تونی کارکتر گرفته شده رو به تبدیل به رشته کنی !! ( بازم مثل برنامه نمونه من )

در ضمن کد enter عدد 13 هستش و این قضیه یادت نره !!
(۰۶-مهر-۱۳۸۹, ۰۰:۵۶:۰۱)Gawky نوشته است: [ -> ]خوب مهندس کاراکتر کارکتر بگیر !! ( مثل برنامه من )
همونجا تست کن ببین دیتا درسته یا نه !!!!

بعد کاراکتر بعدی رو بگیر !!!

حالا قبل از این کار می تونی کارکتر گرفته شده رو به تبدیل به رشته کنی !! ( بازم مثل برنامه نمونه من )

در ضمن کد enter عدد 13 هستش و این قضیه یادت نره !!
درست نفهمیدم چی می گی . می شه بگی کدوم برنامه یا PHP رو بگی . بیشتر توضیح بده .
حواسم نبود !
تایپیک زیر رو با اینجا اشتباه گرفتم !

http://www.iranled.com/forum/showthread....#pid136333




کد php:
$regfile "M16def.dat" $crystal 1000000 $baud 9600
'---------------------------------------------------
Config Lcdpin = Pin , Db7 = Pina.7 , Db6 = Pina.6 , Db5 = Pina.5 , Db4 = Pina.4 , E = Pina.3 , Rs = Pina.2
Config Lcd = 16 * 2
'
---------------------------------------------------
Dim A(10) As Byte As Byte As Byte As Byte Receive As String 100 Ant As Byte
'---------------------------------------------------
Config Pinb.0 = Input
'
---------------------------------------------------
Cls Home L Lcd "salam" Wait 2 Cls
'---------------------------------------------------
A(1) = 162 : A(2) = 51 : A(3) = 91 : A(4) = 120 : A(5) = 20
'
---------------------------------------------------
Do
   
Debounce Pinb.0 Ant Gosub
   B 
Inkey()
   If 
<> 0 Then Gosub Receive_program
Loop
'---------------------------------------------------
Ant:
   Printbin 85 ; 13
   Cls
   For I = 1 To 5
      Printbin A(i)
      Lcd Chr(a(i))
      Lcd " "
   Next
   Printbin 13
Return
'
---------------------------------------------------
Receive_program:
   If 
13 Then :
      
Lcd Receive
      Waitms 50
      Ant 
1
   
Else :
      If 
Ant 1 Then :
         
Receive Chr(b) : Ant 0
      
Else :
         
Receive Receive Chr(b)
      
End If
   
End If
Return 
(۰۶-مهر-۱۳۸۹, ۰۱:۳۴:۰۷)Gawky نوشته است: [ -> ]حواسم نبود !
تایپیک زیر رو با اینجا اشتباه گرفتم !

http://www.iranled.com/forum/showthread....#pid136333




کد php:
$regfile "M16def.dat" $crystal 1000000 $baud 9600
'---------------------------------------------------
Config Lcdpin = Pin , Db7 = Pina.7 , Db6 = Pina.6 , Db5 = Pina.5 , Db4 = Pina.4 , E = Pina.3 , Rs = Pina.2
Config Lcd = 16 * 2
'
---------------------------------------------------
Dim A(10) As Byte As Byte As Byte As Byte Receive As String 100 Ant As Byte
'---------------------------------------------------
Config Pinb.0 = Input
'
---------------------------------------------------
Cls Home L Lcd "salam" Wait 2 Cls
'---------------------------------------------------
A(1) = 162 : A(2) = 51 : A(3) = 91 : A(4) = 120 : A(5) = 20
'
---------------------------------------------------
Do
 
Debounce Pinb.0 Ant Gosub
 B 
Inkey()
 If 
<> 0 Then Gosub Receive_program
Loop
'---------------------------------------------------
Ant:
 Printbin 85 ; 13
 Cls
 For I = 1 To 5
 Printbin A(i)
 Lcd Chr(a(i))
 Lcd " "
 Next
 Printbin 13
Return
'
---------------------------------------------------
Receive_program:
 If 
13 Then :
 
Lcd Receive
 Waitms 50
 Ant 
1
 
Else :
 If 
Ant 1 Then :
 
Receive Chr(b) : Ant 0
 
Else :
 
Receive Receive Chr(b)
 
End If
 
End If
Return 
راستش درست متوجه نشدم ولی تا اونجا که فهمیدم کد اسکی دریافت می شه ولی من می خوام که از ترمینال مجازی پروتئوس یا برنامه ی کامپیوتری که با کام به میکرو وصل شده باینری یا هگز بگیرم که به نظرم این کار رو می شه با دستورات inputbin و inputhex انجام بدم اما مشکل اصلی اینجاست که که داده های دریافتی به صورت 12 بیتی است و من باید بیت اول ، آخر و بتی پریتی از این بیتها رو چک کنم .
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23