Byte zusammenfassen und schieben

    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!

    • Byte zusammenfassen und schieben

      Hallo,

      Ich habe bislang mit dem SHIFTOUT Daten vom ATMEL in das 74HC595N geschoben unzwar wie folgt:

      Quellcode

      1. Shiftout Dout1 , Sck1 , Senddata8 , 2
      2. Shiftout Dout1 , Sck1 , Senddata7 , 0
      3. Shiftout Dout1 , Sck1 , Senddata6 , 2
      4. Shiftout Dout1 , Sck1 , Senddata5 , 0
      5. Shiftout Dout1 , Sck1 , Senddata1 , 0
      6. Shiftout Dout1 , Sck1 , Senddata2 , 2
      7. Shiftout Dout1 , Sck1 , Senddata3 , 0
      8. Shiftout Dout1 , Sck1 , Senddata4 , 2

      Nun aber möchte ich das ganze nur einmal schieben.
      Und dachte mir, ich könnte einfach die Daten in eine Byte Variable zusammen legen und schieben.
      Unzwar so:

      Quellcode

      1. Datenschieben01 = Senddata8 + Senddata7
      2. Datenschieben02 = Datenschieben01 + Senddata6
      3. Datenschieben03 = Datenschieben02 + Senddata5
      4. Datenschieben04 = Datenschieben03 + Senddata4
      5. Datenschieben05 = Datenschieben04 + Senddata3
      6. Datenschieben06 = Datenschieben05 + Senddata2
      7. Datenschieben07 = Datenschieben06 + Senddata1
      8. Shiftout Dout1 , Sck1 , Datenschieben07 , 0

      Tja. so einfach war das doch nicht :)
      Zum ersten, habe ich bei den ersten Fall 8 SHIFTOUTs am Ende jeweils die Option 2 oder 0 zu stehen.

      Aber wie könnte ich das dennoch so realisieren, so das ich dann am Ende nur einmal schiebe?
      Wer kann mir helfen?

      Danke im Voraus
      Katip


      PS: Für den, der es trotzdem wissen möchte
      $regfile = "m328PBdef.dat"
      $crystal = 16000000
      '$baud = 19200

      $hwstack = 128
      $swstack = 128
      $framesize = 128
    • djmsc schrieb:

      Warum nimmst du denn kein Array dafür?
      So kannst du die Daten in einer For Next Schleife rausschieben.
      naja, ob ich das ganze ich ein Array habe und dann mit eine Schleife raus jage, ist für den Programmablauf das gleiche als wenn ich das 8 Mal untereinander schreibe.
      Ich wollte eine Möglichkeit suchen, wie ich in einem Stück statt 8 Bit, 64bit schieben kann.
    • Da geht schon (Shiftout Dout1 , Sck1 , DatenDoubleWord , 2).
      Aber das sammeln ist die Hölle.

      katipefendi schrieb:

      Datenschieben01 = Senddata8 + Senddata7
      So nicht das würde eine Summe aus Senddata8 und Senddata8 bilden was dann max 9 Bit sind nicht 16.
      Noch schlimmer das einige umgedreht werden müssen (Bit7=Bit0, Bit 6=Bit1....)
      Die nicht verdrehten könnten mit Overlay Dimensioniert werden, die anderen müssen dann noch gedreht werden.
    • katipefendi schrieb:

      Und wie würde so etwas ausschauen?
      Das könnte z.B. so aussehen:

      BASCOM-Quellcode

      1. Dim Datenschieben As Double
      2. Dim Senddata(8) As Byte At Datenschieben Overlay
      3. Shiftout Dout1 , Sck1 , Datenschieben , 0
      Allerdings geht es nicht ohne Array das du vorher mit den Daten befüllen musst.
      Und wenn du ein Byte tauschen musst, also wenn es anders herum gesendet werden soll, kannst du das mit dem Befehl Flip machen.
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • djmsc schrieb:

      Dim Datenschieben As Double
      Dim Senddata(8) As Byte At Datenschieben Overlay

      Shiftout Dout1 , Sck1 , Datenschieben , 0 Allerdings geht es nicht ohne Array das du vorher mit den Daten befüllen musst.
      Und wenn du ein Byte tauschen musst, also wenn es anders herum gesendet werden soll, kannst du das mit dem Befehl Flip machen.


      BASCOM-Quellcode

      1. Dim Datenschieben As Double
      2. Dim Senddata(8) As Byte At Datenschieben Overlay
      3. Senddata(0) = Flip(Senddata8)
      4. Senddata(1) = Senddata7
      5. Senddata(2) = Flip(Senddata6)
      6. Senddata(3) = Senddata5
      7. Senddata(4) = Senddata1
      8. Senddata(5) = Flip(Senddata2)
      9. Senddata(6) = Senddata3
      10. Senddata(7) = Flip(Senddata4)
      11. Shiftout Dout1 , Sck1 , Datenschieben , 0
      Alles anzeigen
    • Also wenn ich das Richtig verstanden habe, Du willst Seriell Daten zum 74HC595 übertragen, also Seriell zu Parallel wandeln.
      Ich hatte vor kurzem das gemacht, es war ein Digitales Poti AD8402, zwei Potis in einen IC. Bauteil ist schon etwas älter.

      Ich habe das wie folgt gelöst, Ausschnitte aus dem Programm.

      Für dich von Bedeutung, die Ausgabe einzelner Bits auf den Port der die Datenleitung ist.
      Das Ganze findet in einer Schleife statt.
      Es wird immer ein Adressiertes Bit aus dem Byte auf den Port gelegt, dann folgt der Clock zu Übernahme.
      Das ganze kannst mit Byte, Word oder Long machen.
      Wie das dann aussieht siehe Bild.
      Dateien
      • AD8402_Poti.txt

        (2,48 kB, 7 mal heruntergeladen, zuletzt: )
      • AD8402_Poti_01.jpg

        (85,51 kB, 12 mal heruntergeladen, zuletzt: )
    • katipefendi schrieb:

      vergessen zu sagen, das das Flip Befehl nichts macht
      Und der Rest funktioniert?

      Es ist immer besser für solche Funktionen eine extra Variable zu benutzen.

      So in etwa:

      BASCOM-Quellcode

      1. Dim Datenschieben As Double
      2. Dim Senddata(8) As Byte At Datenschieben Overlay
      3. Dim Temp_byte As Byte
      4. Temp_byte = Flip(Senddata8)
      5. Senddata(0) = Temp_byte
      6. Senddata(1) = Senddata7
      7. Temp_byte = Flip(Senddata6)
      8. Senddata(2) = Temp_byte
      9. Senddata(3) = Senddata5
      10. Senddata(4) = Senddata1
      11. Temp_byte = Flip(Senddata2)
      12. Senddata(5) = Temp_byte
      13. Senddata(6) = Senddata3
      14. Temp_byte = Flip(Senddata4)
      15. Senddata(7) = Temp_byte
      Alles anzeigen

      Flip macht nicht anderes als folgendes

      BASCOM-Quellcode

      1. Dim Daten As Byte
      2. Dim Daten_flip As Byte
      3. Daten = &B00000001
      4. Daten_flip = Flip(Daten)
      5. Print Bin(Daten_flip) '10000000 ist das Ergebnis
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Ich hätte das Overlay anders gedacht:

      Quellcode

      1. Dim Datenschieben As Double
      2. Dim Lsbdata8 As Byte At Datenschieben Overlay
      3. Dim Senddata7 As Byte At Datenschieben + 1 Overlay
      4. Dim Lsbdata6 As Byte At Datenschieben + 2 Overlay
      5. Dim Senddata5 As Byte At Datenschieben + 3 Overlay
      6. Dim Senddata1 As Byte At Datenschieben + 4 Overlay
      7. Dim Lsbdata2 As Byte At Datenschieben + 5 Overlay
      8. Dim Senddata3 As Byte At Datenschieben + 6 Overlay
      9. Dim Lsbdata4 As Byte At Datenschieben + 7 Overlay
      10. Dim Senddata8 As Byte
      11. Dim Senddata6 As Byte
      12. Dim Senddata2 As Byte
      13. Dim Senddata4 As Byte
      14. Lsbdata8 = Flip(senddata8)
      15. Lsbdata6 = Flip(senddata6)
      16. Lsbdata2 = Flip(senddata2)
      17. Lsbdata4 = Flip(senddata4)
      18. Shiftout Dout1 , Sck1 , Datenschieben , 0
      Alles anzeigen
      etwas mehr Arbeit beim dimmen aber weniger zu flippen ^^

      War da nicht was mit dem Flip? Ein Problem in einer lib oder beim Demo?
    • Pluto25 schrieb:

      Ich hätte das Overlay anders gedacht:

      Quellcode

      1. Dim Datenschieben As Double
      2. Dim Lsbdata8 As Byte At Datenschieben Overlay
      3. Dim Senddata7 As Byte At Datenschieben + 1 Overlay
      4. Dim Lsbdata6 As Byte At Datenschieben + 2 Overlay
      5. Dim Senddata5 As Byte At Datenschieben + 3 Overlay
      6. Dim Senddata1 As Byte At Datenschieben + 4 Overlay
      7. Dim Lsbdata2 As Byte At Datenschieben + 5 Overlay
      8. Dim Senddata3 As Byte At Datenschieben + 6 Overlay
      9. Dim Lsbdata4 As Byte At Datenschieben + 7 Overlay
      10. Dim Senddata8 As Byte
      11. Dim Senddata6 As Byte
      12. Dim Senddata2 As Byte
      13. Dim Senddata4 As Byte
      14. Lsbdata8 = Flip(senddata8)
      15. Lsbdata6 = Flip(senddata6)
      16. Lsbdata2 = Flip(senddata2)
      17. Lsbdata4 = Flip(senddata4)
      18. Shiftout Dout1 , Sck1 , Datenschieben , 0
      Alles anzeigen
      etwas mehr Arbeit beim dimmen aber weniger zu flippen ^^

      War da nicht was mit dem Flip? Ein Problem in einer lib oder beim Demo?
      Lässt sich nicht kompilieren.

      Fehlermeldung:
      Error : 215 Line : 1 Unknown ASM mnemonic [$REGS R24] , in File : C:\PROGRAM FILES (X86)\MCS ELECTRONICS\BASCOM-AVR\LIB\MCS.LBX
    • Hi Zusammen,

      Beide diesen Code

      BASCOM-Quellcode

      1. Dim Datenschieben As Double
      2. Dim Senddata(8) As Byte At Datenschieben Overlay
      3. Dim Temp_byte As Byte
      4. Temp_byte = Flip(Senddata8)
      5. Senddata(0) = Temp_byte
      6. Senddata(1) = Senddata7
      7. Temp_byte = Flip(Senddata6)
      8. Senddata(2) = Temp_byte
      9. Senddata(3) = Senddata5
      10. Senddata(4) = Senddata1
      11. Temp_byte = Flip(Senddata2)
      12. Senddata(5) = Temp_byte
      13. Senddata(6) = Senddata3
      14. Temp_byte = Flip(Senddata4)
      15. Senddata(7) = Temp_byte
      Alles anzeigen

      Zeile 6, bekomme ich die Fehlermeldung:
      Error : 263 Line : 488 Array index out of range [0] , in File : C:\BASCOM Code\Ethernet\eth.bas
    • Tipfehler? Was steht denn in Zeile 1 ? Das $regfile? oder ein Kommentar?

      Was steht in Zeile 488 ? Senddata(0)? Das geht nur bei 'Config base = 0' anderenfalls beginnt das Array mit 1.

      katipefendi schrieb:

      Error : 215 Line : 1 Unknown ASM mnemonic [$REGS R24]
      Das ist ein fehlendes ';' in der mcs.lib
      Da sollte (bei mir ab Zeile 172)
      [_FLIPBYTE]
      ;$REGS R24
      stehen. Fehlt das ; kommt die Fehlermeldung

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Pluto25 ()

    • Hallo Zusammen,

      danke für Eure Hilfe, beide haben ihren zweck erfüllt, allerdings habe ich einen anderen Problem.

      Ich denke, das ich von vorne rein, ein zu langsames Quarz eingebaut habe.
      Es schein danach, als wenn die Schleife langsam arbeitet oder bzw. nicht hinterher kommt.

      Denn, wenn ich in der Schleife statt 8 SHIFTOUTs nur 4 SHIFTOUTs arbeiten lasse und vom PC in 1ms Takt Daten sende, stürzt die ATMEL nicht ab.
      Aber sobald ich die 8 SHIFTOUTs in der Schleife habe und dann in 1ms Takt Daten vom PC sende, dann stürzt die ATMEL ab.

      Ich denke das die Schleife langsam arbeitet.

      Topologie siehe Anhang
      topologie.PNG



      BASCOM-Quellcode

      1. $regfile = "m328PBdef.dat"
      2. $crystal = 16000000
      3. '$baud = 19200
      4. $hwstack = 128
      5. $swstack = 128
      6. $framesize = 128
      7. Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 0
      8. Spiinit
      9. Enable Interrupts
      10. '-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Config für den Manuellen IP Taster
      11. Config Pinb.0 = Input
      12. Portb.0 = 1
      13. Ipreset Alias Pinb.0
      14. '-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Config für den Schieberegister
      15. Config Portc.1 = Output
      16. Config Portc.2 = Output
      17. Config Portc.3 = Output
      18. Dout1 Alias Portc.1
      19. Sck1 Alias Portc.2
      20. Rck1 Alias Portc.3
      21. Config Portd.2 = Output
      22. 74hc595_g Alias Portd.2
      23. 74hc595_g = 1
      24. Config Portc.5 = Output
      25. Hc595_reset Alias Portc.5
      26. '-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Config für den Power LED Grün LED
      27. Config Portd.5 = Output
      28. Betriebsled Alias Portd.5
      29. Betriebsled = 1
      30. '-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Config für den W5500 RESET-- ----------------
      31. Config Portb.1 = Output
      32. W5500_nreset Alias Portb.1
      33. '######################### VARIABLEN FÜR DIE ETHERNET VERBINDUNG ###############
      34. Dim Xid(4) As Byte
      35. Dim Mac_add(6) As Byte
      36. '----- Zeitinterval für den W5500, damit das W5500 initialisieren kann ---------
      37. Reset W5500_nreset
      38. Waitms 5
      39. Set W5500_nreset
      40. Waitms 400
      41. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      42. Xid(1) = 220
      43. Xid(2) = 05
      44. Xid(3) = 80
      45. Xid(4) = 91
      46. Mac_add(1) = 0
      47. Mac_add(2) = 8
      48. Mac_add(3) = 220
      49. Mac_add(4) = 05
      50. Mac_add(5) = 80
      51. Mac_add(6) = 80
      52. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      53. Dim Ee_ip(4) As Eram Byte 'At 4
      54. Dim Ee_mask(4) As Eram Byte 'At 6
      55. Dim Ee_gateway(4) As Eram Byte 'At 14
      56. Dim Ee_port As Eram String * 5 'At 18
      57. Dim Eth_ip(4) As Byte
      58. Dim Eth_mask(4) As Byte
      59. Dim Eth_gateway(4) As Byte
      60. Dim Eth_port As String * 5
      61. Dim Ip_ As Long
      62. Dim Subnetmask_ As Long
      63. Dim Gateway_ As Long
      64. Dim Port_ As Long
      65. Config Tcpip = Noint , Mac = 0.8.220.05.80.91 , Ip = 192.168.0.11 , Submask = 255.255.255.0 , Gateway = 192.168.0.254 , Localport = 2005 , Chip = W5500 , Spi = 1 , Cs = Portb.2
      66. '######################## ENDE DER ETHERNET VARIABLEN ##########################
      67. Dim Bclient As Byte
      68. Dim Idx As Byte
      69. Dim Flags As Byte
      70. Dim Result1 As Word
      71. Dim Tmp As Byte
      72. Dim Sfc As String * 100
      73. Dim Y As String * 100
      74. Dim Command_array(14) As String * 35
      75. Dim Channel1 As String * 3
      76. Dim Channel2 As String * 3
      77. Dim Channel3 As String * 3
      78. Dim Channel4 As String * 3
      79. Dim Channel5 As String * 3
      80. Dim Channel6 As String * 3
      81. Dim Channel7 As String * 3
      82. Dim Channel8 As String * 3
      83. 'Dim Senddata1 As Byte
      84. 'Dim Senddata2 As Byte
      85. 'Dim Senddata3 As Byte
      86. 'Dim Senddata4 As Byte
      87. 'Dim Senddata5 As Byte
      88. 'Dim Senddata6 As Byte
      89. 'Dim Senddata7 As Byte
      90. 'Dim Senddata8 As Byte
      91. Dim Senddatato1 As Byte
      92. Dim Senddatato2 As Byte
      93. Dim Senddatato3 As Byte
      94. Dim Senddatato4 As Byte
      95. Dim Senddatato5 As Byte
      96. Dim Senddatato6 As Byte
      97. Dim Senddatato7 As Byte
      98. Dim Senddatato8 As Byte
      99. 'Dim Datenschieben As Double
      100. 'Dim Senddata(8) As Byte At Datenschieben Overlay
      101. 'Dim Temp_byte As Byte
      102. Dim Datenschieben As Double
      103. Dim Lsbdata8 As Byte At Datenschieben Overlay
      104. Dim Senddata7 As Byte At Datenschieben + 1 Overlay
      105. Dim Lsbdata6 As Byte At Datenschieben + 2 Overlay
      106. Dim Senddata5 As Byte At Datenschieben + 3 Overlay
      107. Dim Senddata1 As Byte At Datenschieben + 4 Overlay
      108. Dim Lsbdata2 As Byte At Datenschieben + 5 Overlay
      109. Dim Senddata3 As Byte At Datenschieben + 6 Overlay
      110. Dim Lsbdata4 As Byte At Datenschieben + 7 Overlay
      111. Dim Senddata8 As Byte
      112. Dim Senddata6 As Byte
      113. Dim Senddata2 As Byte
      114. Dim Senddata4 As Byte
      115. Wait 1
      116. Hc595_reset = 1
      117. '-------------------------------------------------------------------------------
      118. Local_port = Port_
      119. Settcp Mac_add(1) . Mac_add(2) . Mac_add(3) . Mac_add(4) . Mac_add(5) . Mac_add(6) , Ip_ , Subnetmask_ , Gateway_
      120. Do
      121. Debounce Ipreset , 0 , Set_ip_reset , Sub
      122. 'Start Watchdog
      123. For Idx = 0 To 3
      124. Result1 = Socketstat(idx , 0) ' get status
      125. Select Case Result1
      126. Case Sock_established
      127. If Flags.idx = 0 Then
      128. Sfc = "Verbindung aufgebaut"
      129. Flags.idx = 1
      130. Result1 = Tcpwritestr(idx , Sfc , 255 )
      131. End If
      132. Result1 = Socketstat(idx , Sel_recv) ' get number of bytes waiting
      133. If Result1 > 0 Then
      134. Do
      135. Result1 = Tcpread(idx , Sfc)
      136. Tmp = Split(sfc , Command_array(1) , "|")
      137. Select Case Command_array(1)
      138. Case "1"
      139. Command_array(1) = "-1"
      140. Channel1 = Command_array(2)
      141. Channel2 = Command_array(3)
      142. Channel3 = Command_array(4)
      143. Channel4 = Command_array(5)
      144. Channel5 = Command_array(6)
      145. Channel6 = Command_array(7)
      146. Channel7 = Command_array(8)
      147. Channel8 = Command_array(9)
      148. Senddata1 = Val(channel1)
      149. Senddata2 = Val(channel2)
      150. Senddata3 = Val(channel3)
      151. Senddata4 = Val(channel4)
      152. Senddata5 = Val(channel5)
      153. Senddata6 = Val(channel6)
      154. Senddata7 = Val(channel7)
      155. Senddata8 = Val(channel8)
      156. 'Temp_byte = Flip(senddata8)
      157. ' Senddata(1) = Temp_byte
      158. ' Senddata(2) = Senddata7
      159. ' Temp_byte = Flip(senddata6)
      160. ' Senddata(3) = Temp_byte
      161. ' Senddata(4) = Senddata5
      162. ' Senddata(5) = Senddata1
      163. ' Temp_byte = Flip(senddata2)
      164. ' Senddata(6) = Temp_byte
      165. ' Senddata(7) = Senddata3
      166. ' Temp_byte = Flip(senddata4)
      167. ' Senddata(8) = Temp_byte
      168. Lsbdata8 = Flip(senddata8)
      169. Lsbdata6 = Flip(senddata6)
      170. Lsbdata2 = Flip(senddata2)
      171. Lsbdata4 = Flip(senddata4)
      172. Shiftout Dout1 , Sck1 , Datenschieben , 0
      173. ' Shiftout Dout1 , Sck1 , Senddata8 , 2
      174. ' Shiftout Dout1 , Sck1 , Senddata7 , 0
      175. ' Shiftout Dout1 , Sck1 , Senddata6 , 2
      176. ' Shiftout Dout1 , Sck1 , Senddata5 , 0
      177. ' Shiftout Dout1 , Sck1 , Senddata1 , 0
      178. ' Shiftout Dout1 , Sck1 , Senddata2 , 2
      179. ' Shiftout Dout1 , Sck1 , Senddata3 , 0
      180. ' Shiftout Dout1 , Sck1 , Senddata4 , 2
      181. Rck1 = 1
      182. Rck1 = 0
      183. End Select
      184. Loop Until Sfc = ""
      185. End If
      186. Case Sock_close_wait
      187. Closesocket Idx
      188. Case Sock_closed
      189. Bclient = Getsocket(idx , Sock_stream , Local_port , 0)
      190. Socketlisten Idx
      191. Flags.idx = 0
      192. Case Sock_listen
      193. Case Else
      194. End Select
      195. Next
      196. 'Reset Watchdog
      197. Loop
      198. End
      199. '-------------------------------------------------------------------------------
      200. Set_ip_reset: 'IP SETZEN
      201. Eth_ip(1) = 192 : Eth_ip(2) = 168 : Eth_ip(3) = 55 : Eth_ip(4) = 55
      202. Eth_mask(1) = 255 : Eth_mask(2) = 255 : Eth_mask(3) = 255 : Eth_mask(4) = 0
      203. Eth_gateway(1) = 192 : Eth_gateway(2) = 168 : Eth_gateway(3) = 0 : Eth_gateway(4) = 254
      204. Eth_port = "1001"
      205. Ee_ip(1) = Eth_ip(1) : Ee_ip(2) = Eth_ip(2) : Ee_ip(3) = Eth_ip(3) : Ee_ip(4) = Eth_ip(4)
      206. Ee_mask(1) = Eth_mask(1) : Ee_mask(2) = Eth_mask(2) : Ee_mask(3) = Eth_mask(3) : Ee_mask(4) = Eth_mask(4)
      207. Ee_gateway(1) = Eth_gateway(1) : Ee_gateway(2) = Eth_gateway(2) : Ee_gateway(3) = Eth_gateway(3) : Ee_gateway(4) = Eth_gateway(4)
      208. Ee_port = Eth_port
      209. Goto _reset
      210. '-------------------------------------------------------------------------------
      211. Set_eth_values: 'BEIM START AUS DEM EEPROM LESEN
      212. Eth_ip(1) = Ee_ip(1) : Eth_ip(2) = Ee_ip(2) : Eth_ip(3) = Ee_ip(3) : Eth_ip(4) = Ee_ip(4)
      213. Eth_mask(1) = Ee_mask(1) : Eth_mask(2) = Ee_mask(2) : Eth_mask(3) = Ee_mask(3) : Eth_mask(4) = Ee_mask(4)
      214. Eth_gateway(1) = Ee_gateway(1) : Eth_gateway(2) = Ee_gateway(2) : Eth_gateway(3) = Ee_gateway(3) : Eth_gateway(4) = Ee_gateway(4)
      215. Eth_port = Ee_port
      216. Ip_ = Maketcp(eth_ip(1) , Eth_ip(2) , Eth_ip(3) , Eth_ip(4))
      217. Subnetmask_ = Maketcp(eth_mask(1) , Eth_mask(2) , Eth_mask(3) , Eth_mask(4) )
      218. Gateway_ = Maketcp(eth_gateway(1) , Eth_gateway(2) , Eth_gateway(3) , Eth_gateway(4))
      219. Port_ = Val(eth_port)
      220. Return
      221. '-------------------------------------------------------------------------------
      Alles anzeigen


      Liege ich da richtig mit mein Fehler?

      VG
      Katip

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von katipefendi ()

    • katipefendi schrieb:

      Liege ich da richtig mit mein Fehler?
      Ich sehe da noch andere Fehlermöglichkeiten:
      - 1ms, also 1000 mal pro Sekunde TCP-Verkehr ist m.E. nicht machbar, warum so schnell?
      - vor der SPI-Konfiguration als Master muss der SS-Pin zwingend auf Ausgang gesetzt sein
      - Stackwerte vergrößern
      - Absturz des WIZ abfangen
      - Watchdog
      und natürlich auch
      -Debug-LEDs nutzen, damit du siehst, wo der AVR hängen bleibt.