RS-485 Portumschaltung nicht wasserdicht

  • 1
  • 2
  • Page 2 of 2
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: RS-485 Portumschaltung nicht wasserdicht

 · 
Posted: 23.12.2016 - 11:45  ·  #9
Hallo Rolf,

ich habe eine Lösung gefunden.
Das Problem ist das TXC Flag (bei euch heißt das TXready), das in meinem Fall beim Aufruf von Ser_Enable2(false) schon gesetzt ist.

Ser_Enable2(false) schaltet den TXcomplte/ready Interrupt ein. Dieser schlägt dann sofort zu und schaltet den pin aus.

Lösung: Das TXC-Flag zusätzlich in der TXEMPTY Interrupt service routine löschen, nach dem ein Byte in das UART Daten Register geschrieben wurde.

Code

SYSTEM.$INTERRUPT_TXEMPTY1:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        IN        _ACCA, EIND
                        PUSH      _ACCA
                        LDS       _ACCA, _TXCOUNT2
                        TST       _ACCA
                        BRNE      SYSTEM._L0010
                        LDS       _ACCA, ucsr1b
                        CBR       _ACCA, 20h
                        STS       ucsr1b, _ACCA
                        RJMP      SYSTEM._L0012
SYSTEM._L0010:
                        LDS       _ACCB, _TXOUTP2
                        CLR       _ACCA
                        LDI       _ACCCLO, _TXBUFF2 AND 0FFh
                        LDI       _ACCCHI, _TXBUFF2 SHRB 8
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z
                        STS       UDR1, _ACCA
                        
                        ;patch start
                        LDS       _ACCA, ucsr1a
                        SBR       _ACCA, 40h   ;clear TX complete interrupt flag after writing usart data register
                        STS       ucsr1a, _ACCA
                        ;patch end
                        
                        LDS       _ACCA, _TXCOUNT2
                        DEC       _ACCA
                        STS       _TXCOUNT2, _ACCA
                        BRNE      SYSTEM._L0013
                        LDS       _ACCA, ucsr1b
                        CBR       _ACCA, 20h
                        STS       ucsr1b, _ACCA
SYSTEM._L0013:
                        INC       _ACCB
                        CPI       _ACCB, 32
                        BRNE      SYSTEM._L0011
                        CLR       _ACCB
SYSTEM._L0011:
                        STS       _TXOUTP2, _ACCB
SYSTEM._L0012:
                        POP       _ACCA
                        OUT       EIND, _ACCA
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RETI
+
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: RS-485 Portumschaltung nicht wasserdicht

 · 
Posted: 23.12.2016 - 14:53  ·  #10
Hallo Thomas,
diesen Verdacht hatte ich gestern auch schon.
Ich hatte damals nicht erwartet dass dieses Flag unendlich stehen bleibt.
Ich bin dann auch auf die Lösung mit TxInt gekommen und werde dies
die nächsten Tage implementieren. Vielen Dank dass Du mich in meiner
Annahme bestärkt hast!

rolf
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: RS-485 Portumschaltung nicht wasserdicht

 · 
Posted: 23.12.2016 - 18:44  ·  #11
Mein Weihnachtsgeschenk für dich.

Wünsche schöne Festtage und einen guten Rutsch. Auch an Harald.

Thomas.AC
(AC = Aachen)
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: RS-485 Portumschaltung nicht wasserdicht

 · 
Posted: 23.12.2016 - 18:56  ·  #12
Hallo Thomas,
danke für die Grüsse. Auch für Dich und alle User ein schönes Fest.
Schaue mal in Deine Mailbox hier im Forum.

rolf
  • 1
  • 2
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   81   95 · Page-Gen-Time: 0.037584s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI