Serielle Schnittstellen-Durcheinander

    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!

    • Serielle Schnittstellen-Durcheinander

      Moin,

      ich baue gerade ein Projekt mit einem Mega 644P um.
      Zuletzt war an RXD0 (Pin 14) ein sendendes Device angeschlossen, ich konnte die Daten wie folgt empfangen (Auszug):

      Quellcode

      1. $Baud = 9600 '(Device alt)
      2. If Ischarwaiting() = 1 Then
      3. Wert = Inkey()
      Jetzt habe ich das Device statt an RXD0 an RXD1 (Pin 16) angeschlossen und empfange nichts mehr. Am Code habe ich ausschließlich Folgendes angepasst:


      Quellcode

      1. $baud = 57600 '(Device neu)
      2. $baud1 = 9600 '(Device alt)
      3. Open "com1:" For Binary As #1
      4. If Ischarwaiting(1) = 1 Then
      5. Wert = Inkey(1)


      Wo steckt mein Fehler?
    • Pluto25 schrieb:

      Mit "com2:... Ischarwaiting(#1) sollte es gehen
      Leider nicht.
      Also logisch wäre:

      RXD0 = $Baud"0" = com0 = Ischarwaiting(0)
      RXD1 = $Baud1 = com1 = Ischarwaiting(1)

      Aber laut Hilfe ist der erste HW-UART Com1
      Um dem Zahlenwirrwarr aus dem Wg zu gehen, versuchte ich gerade noch:

      Quellcode

      1. Open "com2:" For Binary As #2
      2. If Ischarwaiting(#2) = 1 Then
      3. Wert = Inkey(#2)
      Erfolglos, sowohl mit # als auch ohne.
    • Hier gehts so

      Quellcode

      1. $regfile = "m644pdef.dat" '"m328pdef.dat"
      2. $crystal = 922000 '8295000
      3. $hwstack = 96 '13
      4. $swstack = 64 '24
      5. $framesize = 196 '15
      6. $baud = 9600
      7. $baud1 = 9600
      8. $eepleave
      9. $version 1 , 0 , 112
      10. '$sim
      11. Config Base = 0
      12. Dim Pcf8574_lcd As Byte
      13. Open "com2:" For Binary As #2
      14. If Ischarwaiting(#2) = 1 Then
      15. Pcf8574_lcd = Inkey(#2)
      16. Waitms 100
      17. End If
      Alles anzeigen

      :?: Dann wäre ein vollständigerer Code vielleicht nützlich
    • Habe jetzt noch

      Config Com1 = 57600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
      Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

      eingefügt und empfange jetzt "etwas".

      Normalerweise wird der empfangene Wert auf dem LCD angezeigt, welches jetzt (nach der fehlerfreien Startanzeige) nur noch kryptische Zeichen anzeigt. Das untersuche ich morgen weiter, wenigstens wird jetzt irgendwas empfangen.