Nur ganze Zahlen empfangen. Bis 25 Leds schalten über das Terminal

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Nur ganze Zahlen empfangen. Bis 25 Leds schalten über das Terminal

      Hallo wie kann ich das Beispiel so abändern, dass ich nur ganze Zahlen empfangen kann. Ich möchte von 1 bis 25 Leds schalten - über das Terminal. Danke




      Quellcode

      1. '--------------------------------------------------------------------
      2. ' Test mit Nextion Display 3.5 320x480 Enhanced
      3. '
      4. 'Nextion Befehl:
      5. 'für Button
      6. 'print "b1" für ID Button
      7. 'printh ff ff ff für End Sequenz
      8. '
      9. '
      10. 'für Slider
      11. 'print "h0" für ID Slider
      12. 'get h0.val Befehl Get sendet wert vom Slider und die End Sequenz
      13. '
      14. '
      15. '
      16. 'erster grundlegender Test
      17. '
      18. 'Date:21.04.2017
      19. '
      20. 'hkipnik@aol.com
      21. '***************************************************************************************************
      22. $regfile = "m328pdef.dat"
      23. $crystal = 16000000
      24. $hwstack = 100
      25. $swstack = 100
      26. $framesize = 100
      27. '***************************************************************************************************
      28. 'Serial for Nextion Display
      29. 'RX Pin D0 --> TX Pin Nextion TX Pin D1 --> RX Pin Nextion
      30. $baud = 9600
      31. '***************************************************************************************************
      32. 'Config PortC.3 for Serial Debug 9600 Baud
      33. 'mit RS232 Konverter Daten zum PC senden
      34. Open "comc.3:9600,8,n,1" For Output As #2
      35. '***************************************************************************************************
      36. Dim Bc As Byte 'byte counter
      37. Bc = 0
      38. Dim Datin(30) As Byte 'Data in Buffer
      39. Dim Datstr As String * 30 At Datin(1) Overlay
      40. Dim Din As Byte
      41. Dim Ende As Byte
      42. Dim New_data As Byte
      43. Dim Lang As Byte
      44. Dim Zbv As Byte
      45. Dim Id_str As String * 3
      46. Dim Help_str As String * 20
      47. Dim Keybord As String * 20
      48. Dim Zahler As Byte
      49. '***************************************************************************************************
      50. '
      51. On Urxc Rec_isr 'define serial receive ISR
      52. Enable Urxc 'enable receive isr
      53. Enable Interrupts 'enable interrupts
      54. '***************************************************************************************************
      55. Print #2 , "Test Nextion"
      56. Do
      57. If New_data = 1 Then
      58. New_data = 0
      59. Lang = Bc 'Byte counter sichern
      60. Bc = 0 'Byte counter reset
      61. Id_str = Chr(datin(1)) 'ID ersten 2Byte
      62. Id_str = Id_str + Chr(datin(2))
      63. ' Print #2 , Id_str
      64. ' For Zbv = 3 To Lang
      65. ' Print #2 , Chr(datin(zbv));
      66. ' Next
      67. ' Print #2,
      68. Select Case Id_str
      69. Case "b1": 'Button B1 n0++
      70. Print #2 , "Button n0++"
      71. Incr Zahler 'Test Dummy
      72. Help_str = "n0.val="
      73. Help_str = Help_str + Str(zahler) 'Wert an Ausgabe n0 senden
      74. Print Help_str; 'Befehl senden
      75. Printbin &HFF ; &HFF ; &HFF; 'Stopp-Sequenz
      76. Case "b2":
      77. Print #2 , "Button n0--"
      78. Decr Zahler 'Test Dummy
      79. Help_str = "n0.val="
      80. Help_str = Help_str + Str(zahler) 'Wert an Ausgabe n0 senden
      81. Print Help_str; 'Befehl senden
      82. Printbin &HFF ; &HFF ; &HFF;
      83. Case "b4":
      84. Print #2 , "Button newtext"
      85. Case "b3":
      86. Print #2 , "Page0"
      87. Help_str = "n0.val="
      88. Help_str = Help_str + Str(zahler) 'Test Wert an Ausgabe n0 Page0 senden
      89. Print Help_str;
      90. Printbin &HFF ; &HFF ; &HFF;
      91. Case "b0":
      92. Print #2 , "Page1"
      93. Incr Zahler
      94. Help_str = "j0.val="
      95. Help_str = Help_str + Str(zahler) 'Test Wert an Progress Bar j0 Page1 senden
      96. Print Help_str;
      97. Printbin &HFF ; &HFF ; &HFF;
      98. Case "b5":
      99. Print #2 , "Page2"
      100. Case "kb":
      101. Print #2 , "Rückgabe"
      102. Lang = Lang - 5 'Start ab 3Byte Letzten 3 Byte sind FF FF FF
      103. Keybord = Mid(datstr , 3 , Lang)
      104. Print #2 , Keybord
      105. Case "h0": 'Slider Page0
      106. Print #2 , "Sliderwert: ";
      107. ' Print #2 , Datin(3) '113 Hex 71 Rückgabe einer 4-Byte-Zahl
      108. Print #2 , Datin(4) 'Wert Slider
      109. ' Print #2 , Datin(5) 'Bei bedarf 2 wert little endian
      110. End Select
      111. End If
      112. 'mach irgendwas
      113. Loop
      114. Close #2
      115. End
      116. '***************************************************************************************************
      117. 'Der Interrupt wird immer ausgelöst,wenn ein Zeichen empfangen wurde.
      118. 'Wurde eine komplette Zeichenkette empfangen, also das Ende (FF FF FF) erkannt
      119. 'wird New_data auf 1 gesetzt damit wird dem Hauptprogramm mitgeteilt
      120. 'daß eine neue Zeichenkette zur Verarbeitung bereit steht.
      121. '***************************************************************************************************
      122. Rec_isr:
      123. Din = Udr 'Byte einlesen
      124. If Bc <= 30 Then 'byte conter kleiner als 30
      125. Incr Bc 'Byte Conter +1
      126. Datin(bc) = Din 'din nach Datin Array kopieren
      127. Else
      128. Bc = 0 'wenn byte conter größer als 30 auf null zurücksetzen
      129. End If
      130. If Din = &HFF Then 'Nextion sendet 3xFF als end marker
      131. Incr Ende
      132. If Ende = 3 Then 'wenn 3xFF angekommen Newdata=1
      133. Set New_data
      134. Ende = 0 'FF End Zähler wieder auf 0 setzen
      135. End If
      136. End If
      137. Return
      Alles anzeigen