IP, Submaske, Gateway und Port in Memory schreiben und lesen

    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!

    • Pluto25 schrieb:

      Das sieht doch richtig aus : Kurzer Puls zum Übertragen dann Verarbeitung und nächste Übertragung.
      die Pulse sind sehr kurz hintereinander, normal geht CS nicht so schnell auf und ab.
      Das Oszi wurde aber eher zur Lösung der Frage gebraucht, welchen Pegel das Signal nun hat.
      Die Antwort scheitert aber an der unklaren Bezeichnung der Y Achse.
      Deswegen auch meine 2.Frage im letzten Beitrag.

      Pluto25 schrieb:

      Ich habe auch keine Lib aber die lbx sollte sich "reassemblieren" lassen
      Die LBX ist im Lib-Verzeichnis der Bascom-Installation im Klartext.
      Zumindest in Version 2.0.8.1, die ich hier gerade habe. (ist die aktuell?) ;)
    • Michael schrieb:

      Die LBX ist im Lib-Verzeichnis der Bascom-Installation im Klartext.
      Zumindest in Version 2.0.8.1, die ich hier gerade habe. (ist die aktuell?)
      Ich habe auch die aktelle Version 2.0.8.1 aber habe trotzdem nicht den LIB dazu.

      Übrigens, der Fehler wird schon in dem LIB stecken, da der plouf von der Mark Forum auch das bestätigt
      Hier

      Er hat das mal mit W5500 versucht und das Ergebnis: funktioniert nicht

      Jetzt stellt sich die Frage, wann wird dieser Fehler beseitigt?
      Wann hätte der Mark Zeit dafür?
    • Ok, scheint ein Fehler in der lib zu sein, aber du weißt einen Weg, um es trotzdem zum Laufen zu bringen. Jetzt fehlt halt noch die Lösung, um das händische Auftrennen vom Cs per Befehl zu machen. Dazu müsstest du vielleicht mal die Pegel auf beiden Seiten der Trennung aufzeichnen, also wie verhält sich der pin am Kontroller und wie verhält sich der pin am Wiznet zum Zeitpunkt der Trennung. Hast du eigentlich einen levelshifter irgendwo dazwischen?

      Zur größten Not würde ja ein Relais gehen, wäre halt nicht sehr elegant.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Es wäre vielleicht auch interessant, wann diese hohe Frequenz an Cs anliegt. @Michael hält das ja nicht so für normal. Und wie hoch ist dann die Frequenz nach der Trennung.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Zur größten Not würde ja ein Relais gehen, wäre halt nicht sehr elegant.
      Mit ein Relais konnte ich mir leider nicht helfen, da erst nach der SETTCP getrennt werden muss.
      Und der Code bleibt ja an der Stelle hängen und kann daher auch nicht per Befehlt den Relais switchen.

      Michael schrieb:

      Ich hab jetzt sogar nochmal in den Ordner der 2.0.8.0 geschaut, dort sind auch alle Libs vorhanden. Die letzte lib datiert auf August 2016.
      was soll das überhaupt, ich meine wir alle laden doch die Vollversion von der selben Quelle und warum hast du die LIB und ich nicht?

      tschoeatsch schrieb:

      Dazu müsstest du vielleicht mal die Pegel auf beiden Seiten der Trennung aufzeichnen, also wie verhält sich der pin am Kontroller und wie verhält sich der pin am Wiznet zum Zeitpunkt der Trennung. Hast du eigentlich einen levelshifter irgendwo dazwischen?
      Wenn ich es normal laufen lasse d.h. OHNE DHCP, sondern Statische IP, dann funktioniert es und ich habe ein anderes Bild am Cs Port
      DS1Z_QuickPrint5.png



      und wenn ich in Dynamischen IP sprich DHCP Funktion aufrufe, dann sieht mein Bild plötzlich ganz anders aus
      DS1Z_QuickPrint6.png

      Die Funktion DHCP verwendet ja den UDP und ich denke da wird der Fehler sein. Denn ganz oben wird ja nur der TCP verwendet.
    • Jetzt noch mal, damit ich's kapiert: dein Programm bleibt hängen. Damit es weiter geht und es dann wie gewünscht läuft, trennst du händisch kurz den Cs vom Kontroller? Das ist alles?
      Könnte man das nicht mit dem watchdog machen? Halt keinen reset auslösen, sonder nur den Cs manipulieren, wie auch immer?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Aber sei's drum, wenn da wirklich ein Fehler drin ist und die .lbx Klartext ist, wer kann den Fehler finden und beheben?

      @katipefendi Cs ist üblicherweise active low. So gesehen hätte ich set portx.y :waitms1500 : reset portx.y geschrieben. Geht natürlich ja auch nur, wenn das Programm dahin kommt. Und wenn Cs per interrupt gesteuert wird, geht's auch nicht.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Jetzt noch mal, damit ich's kapiert: dein Programm bleibt hängen. Damit es weiter geht und es dann wie gewünscht läuft, trennst du händisch kurz den Cs vom Kontroller? Das ist alles?
      korrekt.

      tschoeatsch schrieb:

      Könnte man das nicht mit dem watchdog machen? Halt keinen reset auslösen, sonder nur den Cs manipulieren, wie auch immer?
      na bitte, wenn du da ein weg kennst.


      Michael schrieb:

      Magst du nicht mal in deinen LIB-Ordner reinschauen?
      habe ich bereits und da schaut es bei mir genau so aus wie bei dir.
      Ich bin jetzt davon ausgegangen, das du mit LIB Datei auch die .lib meinst und nicht die LBX. Denn die LBX habe ich auch.
      Aber nicht die LIB dazu.

      Und die LBX kann ich nicht öffnen.
    • katipefendi schrieb:

      tschoeatsch schrieb:

      Geht natürlich ja auch nur, wenn das Programm dahin kommt.
      eben, das habe ich bereits gestern getan. Das geht leider nicht
      Vielleicht weil eben der interrupt diese Aktion wieder aufhebt. Schalte doch vor diesem codeSchnipsel mal interrupts aus und danach wieder an.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      .lbx ist Klartext?
      es sind wirklich nur die *.Lib Dateien im Klartext. Hier mal ein Beispiel

      LBX-Datei von der BCD.LBX

      BASCOM-Quellcode

      1. Comment = Compiled LIB file, no comment included
      2. [BIN2BCD16]
      3. .def tBCD0 =r13
      4. .def tBCD1 =r14
      5. .def tBCD2 =r15
      6. .def fbinL =r16
      7. .def fbinH =r17
      8. .def cnt16a =r18
      9. .def tmp16a =r19
      10. bin2BCD16:
      11. .OBJ 81A8
      12. .OBJ 81B9
      13. .OBJ 910D
      14. .OBJ 911C
      15. .OBJ E120
      16. .OBJ 24FF
      17. .OBJ 24EE
      18. .OBJ 24DD
      19. .OBJ 27FF
      20. bBCDx_1:
      21. .OBJ F00
      22. .OBJ 1F11
      23. .OBJ 1CDD
      24. .OBJ 1CEE
      25. .OBJ 1CFF
      26. .OBJ 952A
      27. brne bBCDx_2
      28. .OBJ 81AA
      29. .OBJ 81BB
      30. .OBJ 92DD
      31. .OBJ 92ED
      32. .OBJ 92FC
      33. #IF _FPROTECT
      34. Out sreg,r3
      35. #ENDIF
      36. .OBJ 9508
      37. bBCDx_2:
      38. .OBJ E1E0
      39. bBCDx_3:
      40. .OBJ 9132
      41. .OBJ 5F3D
      42. .OBJ FD33
      43. .OBJ 8330
      44. .OBJ 8130
      45. .OBJ 5D30
      46. .OBJ FD37
      47. .OBJ 8330
      48. .OBJ 30ED
      49. brne bBCDx_3
      50. rjmp bBCDx_1
      51. [END]
      Alles anzeigen
      und von der BCD.Lib

      BASCOM-Quellcode

      1. [BIN2BCD16]
      2. .def tBCD0 =r13 ; BCD value digits 1 and 0
      3. .def tBCD1 =r14 ; BCD value digits 3 and 2
      4. .def tBCD2 =r15 ; BCD value digit 4
      5. .def fbinL =r16 ;binary value Low byte
      6. .def fbinH =r17 ;binary value High byte
      7. .def cnt16a =r18 ;loop counter
      8. .def tmp16a =r19 ;temporary value
      9. ;***** Code
      10. bin2BCD16:
      11. ldd r26,y+0 ;load address of word to convert to BCD
      12. ldd r27,y+1
      13. ld fbinL,x+ ;Get LSB of word to convert
      14. ld fbinH,x ;Get MSB of word to convert
      15. ldi cnt16a,16 ;Init loop counter
      16. clr tBCD2 ;clear result (3 bytes)
      17. clr tBCD1
      18. clr tBCD0
      19. clr ZH ;clear ZH (not needed for AT90Sxx0x)
      20. bBCDx_1:
      21. lsl fbinL ;shift input value
      22. rol fbinH ;through all bytes
      23. rol tBCD0 ;
      24. rol tBCD1
      25. rol tBCD2
      26. dec cnt16a ;decrement loop counter
      27. brne bBCDx_2 ;if counter not zero
      28. ldd r26,y+2 ; address of the result variable (long) goes to X
      29. ldd r27,y+3
      30. st x+,tBCD0 ; store first two digits. Then increment pointer
      31. st x+,tBCD1 ; store second two digits. Then increment pointer
      32. st x,tBCD2 ; store third two digits of the result
      33. #IF _FPROTECT
      34. Out sreg,r3 ; restore I flag
      35. #ENDIF
      36. ret ; return
      37. bBCDx_2:
      38. ldi r30,16 ;Z points to result MSB + 1
      39. bBCDx_3:
      40. ld tmp16a,-Z ;get (Z) with pre-decrement
      41. ;----------------------------------------------------------------
      42. ;For AT90Sxx0x, substitute the above line with:
      43. ;
      44. ; dec ZL
      45. ; ld tmp16a,Z
      46. ;
      47. ;----------------------------------------------------------------
      48. subi tmp16a,-3 ;add 0x03
      49. sbrc tmp16a,3 ;if bit 3 not clear
      50. st Z,tmp16a ; store back
      51. ld tmp16a,Z ;get (Z)
      52. subi tmp16a,-48 ;add 0x30
      53. sbrc tmp16a,7 ;if bit 7 not clear
      54. st Z,tmp16a ; store back
      55. cpi ZL,13 ;done all three?
      56. brne bBCDx_3 ;loop again if not
      57. rjmp bBCDx_1
      58. [END]
      Alles anzeigen
      Ist schon ein Unterschied
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.