18F2680 Errata問題
|
||||
---|---|---|---|---|
新會員
|
各位先進
在18F2680的Errata中,有提到ECAN的一個BUG,裡面有一段SAMPLE CODE如下,我是用Mode1的模式 If (RXBnOVFL == 1) // Has an overflow occurred? { If (TXREQ == 1)// Is a transmission pending? { TXREQ = 0; // Clear transmit request If (TXABT == 1)// Store transmission aborted tatus value MyFlag = 1; } } Temp_RXREG = RXBx; // Read receive buffer If (MyFlag) // Was previous transmission aborted? { TXREQ = 1; // Set transmit request MyFlag = 0; // Reset stored transmission aborted status } 在MODE 1裡面,有3個TX Buffer及2個RX Buffer 當發生錯誤時,RXBnOVFL的Flag會=1 但是TXREQ在TXB0CON、TXB1CON及TXB2CON都有 而RXBn有RXB0及RXB1兩個 所以想請問各位先進,有沒有人知道上面那一段SAMPLE該如何寫,才是正確的?
發表於: 2008/1/31 9:05
|
|||
|
CAN BUS MODE切換問題
|
||||
---|---|---|---|---|
新會員
|
想請問一下各位先進
我使用18F2685 IC,在CAN BUS的MODE切換中,會發生無法切換過去的情形。就是在Sleep Mode及Normal Mode的切換中 會發生錯誤,而跳到Configuration mode 我的程式是在中斷中去執行Walkup if(PIR3bits.WAKIF) { CAN_STB = 1; //Transceiver 1054AT STB Pin CAN_EN = 1; //Transceiver 1054AT EN Pin CanInterrupt(); //執行Mode切換及Flag清除 } 想問一下,當Walkup時,我是要先將Transceiver 1054AT打開,再切換CAN BUS的MODE,還是要先切換完MODE 再去打開Transceiver ?
發表於: 2008/1/7 20:36
|
|||
|
18F2685 ERROR FLAG問題
|
||||
---|---|---|---|---|
新會員
|
在18F2685的COMSTAT中,有一個TXBO的FLAG,當TXERRCNT > 255時,這一個FLAG應該為1,但是實際使用時,卻只有 > 95時,TXWARN會 = 1,及 > 127時,TXBP會 = 1,但是 > 255時,TXERRCNT 會重新設定為128,但是TXBO還是一樣為0
另外,當有設定PIE3bits.ERRIE,而且發生錯誤時,PIR3bits.ERRIF也只有在TXERRCNT = 95及TXERRCNT = 127時,有產生中斷,當 > 255時,也不會產生中斷 想問一下,在什麼情況下,COMSTATbits.TXBO才會 = 1
發表於: 2007/12/27 15:41
|
|||
|