256ger und Uart

    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!

    • 256ger und Uart

      Hallo liebes Forum,

      habe mal eine Frage zum 256ger.
      Der Chip hat ja vier Hardware-Uarts.

      Blöderweise bekomme ich keinen Kontakt zum Port, der hier auf D0-RX und D0-TX liegt.
      Also beim 2560 die Adressen PortE.0 und PortE.1.

      Zum Verständnis: Hardware-UARTS öffne ich ja nicht über OPEN. da ist alles schön einfach und komplett transparent und klar, aber das ist nur für Software-Uart.

      Wie genau bestimme ich denn mit Print und Input, auf welchem Kanal ich denn nun lesen und schreiben möchte?
      Ich kann im Config ja keinen Kanal zuweisen, wie z.B. #1 oder #2 für Rx und Tx.

      Das raffe ich einfach nicht, denke wohl zu sehr um die Ecke...
    • Servus,
      schau mal in der Hilfe unter "Config COMx", da ist eine Tabelle dazu.
      Für PortE.0 und E.1 ist das:

      Config Com5 = 9600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 'USARTE0
      Open "COM5:" For Binary As #1


      Wenn Du Soft-Uart benutzen musst wäre das z.B auf PortB.7 Tx und PortB.6 Rx:
      Open "comb.7:9600,8,n,1" For Output As #11 ' Tx
      Open "comb.6:9600,8,n,1" For Input As #12 ' Rx
    • Hi Duesentrieb72,

      wieso ist denn com5 der richtige?
      Ich steige durch die Tabelle nicht wirklich durch.
      Danach ist
      COM3 - UART_D0
      PORTD.3
      PORTD.2



      lt. Datenblatt ist D0 aber Pe.0 und Pe.1...
      Stimmt schonmal nicht.

      Du schreibst nun

      COM5 - UART_E0
      PORTE.3
      PORTE.2

      Aber meine Pins sind halt Pe.0 und Pe.1...

      So gesehen passt eigentlich gar nichts, weder das Datenblatt zum Pinout, noch die Bascom-Hilfe zum Datenblatt und Pinout...


      ????
    • Servus Peer,
      ja sorry, gebe Dir Recht, die Tabelle ist an der Stelle widersprüchlich und passt in Deinem Fall auch nicht zum Chip
      Lt. Datenblatt:
      TxD0=PE.1/RxD0=PE.0
      TxD1=PD.2/RxD1=PD.3
      TxD2=PH.1/RxD2=PH.0
      TxD3=PJ.1/RxD3=PJ.0

      Im .def-File sind COM1..COM4 hinterlegt

      Jetzt muss ich gestehen, jetzt bin ich auch verwirrt :(

      In meinem Fall passte es, weil es nicht ein ATMega2560 ist, sondern ein ATXMega256.
      Da hab ich leider nicht mehr daran gedacht.
      Die Tabelle scheint demnach für den Xmega gemacht zu sein

      Ich fürchte, Du musst wohl einmal durchprobieren...
    • djmsc schrieb:

      Wenn man mal einen Blick in die m2560def.dat wirft, sieht man, dass es beim Mega2560 nur die Comports von 1 - 4 gibt.

      USART0 (TxD0 und RxD0) = Config Com1...
      USART1 (TxD1 Und RxD1) = Config Com2...

      usw...
      Hi djmc,
      ah...ich habe mir die def-files noch nie angeschaut.
      Werde ich dann jetzt mal machen.
      Ein kleine Frage noch: Wie spreche ich die mit Print und Input an?
      Einfach "Print #1" und "Input #1" für USART0?
    • Daaaanke!
      Mit Eurer Hilfe und noch einem Thread von Thoeatsch von 2018 (RC5 mit Software-Uart) habe ich es jetzt.

      Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 'USARTE0
      Print "Box-State: " ; Box_state ; " - Volumenstrom: " ; Volumenstrom_aktuell ; " [m3/h]"

      War ich nirgendwo gefunden habe: Der erste Com-Port wird nicht mit einer Kanalnummer deklariert.
      Das ist zwar im Nano auch so (habe ich vor ein paar Wochen auch mal wieder dran genagt, tagelang.
      Aber da die 256ger ja vier Ports haben, würde ich es für logisch erachten, dass man beim ersten wie bei den anderen vorgeht und die Kanalnummer vergibt.

      Zonk: Falsch!

      Daher: Damit hier nicht noch Andere reinfallen:

      Beim 256ger wird der erste Com-Port (D0 auf pine.0 und pine.1) NICHT wie die anderen drei Ports mit einer Kanalnummer (z.B. "#1") deklariert.
      Daher darf hier auch z.B. bei "Print" oder "Input" keine Kanalnummer vorgegeben werden, sonst FEHLER-Meldung beim Compilieren.


      Für Com1 (oder Comport0, ja ist echt verwirrend blöd gelöst) nur "Print" und "Input" usw. schreiben.

      Gruss
      Peer