PIC18F45K42 USART regiszterei és azok magyarázata II.

 

   
 
 
 
 
 
 
 
     
 
 
       
    
    
   
 
 
 
 
 
   
   
   

 

Adatokat fogadunk, de nem olvassuk ki őket, így túlcsordul a FIFO.

Regiszterek változása:
Ha adatot küldünk, a regiszterekben nem történik változás, esetleg az U2RXB, de ezt a debugban nem értelmezhető, viszint a program elugrik a beállított megszakítás programrészhez.
A megszakításból a refie hatására visszatér a program és most vizsgáljuk a regiszterek állását:
Megállapítás, hogy semmi váltoás a regiszterekben, az U2RXB is a korábbi hamis adatot tartalmazza.
-----------------------------------
Újabb adatot küldünk ki neki és vizsgáljuk a regisztereket: 
U2FIFO<U2RXBE> <1> bitje 1-ről 0-ra váltott, 
az U2RXB is megváltozott, felvette a kapott adatot. A többi regiszter nem változott.
Ami fontos, hogy nem keletkezett újból megszakítás!
Most kiküldünk kiolvasás nélkül egy újabb adatot, ezzel a FIFI-t túlcsordítjuk, majd vizsgáljuk a regisztereket:
Az U2FIFO<R2XRBE><1> megtartotta a megváltozott 1-es állását, viszont az RXBF<0> bit 1-re váltott.
Az U2RXB regiszterben továbbra is adat van.
A PIR6<U2RXIF><2>bit 1-re váltott.
Megszakítás ebben az esetben sem történt.
---------------------------------------------------------------------------
Újabb adatot küldünk ki neki és vizsgáljuk a regisztereket: 
U2ERRIR<RXFOIF><1> 1-re váltott. (jelzi szerintem a túlcsordulást)
Az U2FIFO<R2XRBE><1> megtartotta a megváltozott 1-es állását,  továbbra is az RXBF<0> bit 1-et jelez, az <RXBE><1> bit is megtartotta a 0-ra váltott állapotát.
Megszakítás továbbra sem történt.
------------------------------------------------------
Újabb adatot küldünk ki neki és vizsgáljuk a regisztereket: 
Nincs változás, továbbra is a PIR6<U2RXIF><2> továbbra is 1-et jelez, megszakítás sem történt.