Jump to content
ELFORUM - Forumul electronistilor
Mar

Simpla problema cu RCIF-ul de la 18F452

Recommended Posts

Am o mare problema cu RCIF-ul picului 18F452 si deaceea apelez la dvs. Problema e ca ii scriu bcf PIR1, RCIF in rutina de intrerupere dar nu se stinge. Din aceasta cauza se apeleaza intreruperea permanent. Ciudat este ca atunci cind pornesc pic-ul si nu trimit nimic pe serial (de la PC) RCIF-ul este stins, cum am trimis primul octet a ramas blocata pe 1 logic. Va rog pe dvs sa ma ajutati sa dezlegam misterul.

Link to comment
Share on other sites

Folosesti un compilator ? Daca nu, verifica sa ai corecta adresa RCIF. Verifica si frecventa procesorului, poate sunt modificari. In mod normal merge direct de la 16F877 la 18F452. Probabil ca in cazul tau e vorba de o greseala simpla, pe care de obicei o treci cu vederea.

Link to comment
Share on other sites

Compilez programul in MPLAB, am verificat de 50 de ori adresa si e corecta. Am incercat sa sterg intreruperea aia si cu clrf (stergind tot registrul PIR1) si cu: movlw 00h movwf 0xF9E si nu se sterge, ramine RCIF-ul pe 1 logic Ai facut program de receptie utilizind intreruperi la 18F452? Functioneaza ?

Link to comment
Share on other sites

1. Bitul se pune pe zero automat prin citirea buferului RCREG:RCIF: USART Receive Interrupt Flag bit1 = The USART receive buffer, RCREG, is full (cleared when RCREG is read)0 = The USART receive buffer is emptyIntrodu o instructiune de citire a acestui registru.Cu stima,

Link to comment
Share on other sites

In momentul cind apare o intrerupere UART bitul RCIF devine automat 1 logic. Dupa ce executa secventa de intrerupere eu trebuie sa sterg bitul RCIF prin instructiunea bcf PIR1,RCIF ceea ce am si facut. Problema este ca bitul RCIF nu se sterge si nu stiu de ce. Aceiasi secventa am facut la 16F877 si functioneaza bine.

Link to comment
Share on other sites

1.1. Bitul se pune pe zero automat prin citirea buferului RCREG ptr PIC18F452 ai in datasheet: RCIF: USART Receive Interrupt Flag bit 1 = The USART receive buffer, RCREG, is full (cleared when RCREG is read) 0 = The USART receive buffer is empty Pentru PIC16F87XA ai in datasheet: bit 5 RCIF: USART Receive Interrupt Flag bit1 = The USART receive buffer is full0 = The USART receive buffer is emptyDeci o mica omisiune sau diferenta.Am lucrat cu PIC18F452 si mi-a mers comunicatia cu PC.2. Nu am vazut un raspuns la ce ai gasit sau daca ai rezolvat problema?Cu respect,

Link to comment
Share on other sites

Guest iflorea13

DUPA CUM II SPUNE SI NUMELE RCIF ESTE UN FLAG (steag) CARE SE SETEAZA AUTOMAT ATUNCI CAND BUFFERUL DE RECEPTIE ESTE PLIN.CEA MAI ELEGANTA METODA PENTRU A DEZACTIVA INTRERUPERILE ESTE BCF INTCON,GIE(H)/(L)

Link to comment
Share on other sites

Guest iflorea13

DUPA CUM II SPUNE SI NUMELE RCIF ESTE UN FLAG (steag) CARE SE SETEAZA AUTOMAT ATUNCI CAND BUFFERUL DE RECEPTIE ESTE PLIN.CEA MAI ELEGANTA METODA PENTRU A DEZACTIVA INTRERUPERILE ESTE BCF INTCON,GIE(H)/(L)

Link to comment
Share on other sites

Scuze ca nu am raspuns, nu am rezolvat problema nici acum pentru ca am fost prins in alte treburi. Rezultat nu ti-am dat pentru ca nu am mai lucrat. Oricum saptamana viitoare cind fac alte teste te anunt cu rezultate

Link to comment
Share on other sites

Flagul RCIF nu poate fi resetat software. El este resetat automat de partea hardware cand bufferul de receptie este gol.In cazul tau pot fi doua situatii:1. Nu citesti RCREG2. Au aparut erori de comunicatie FERR sau OERR pe care nu le trateziATENTIE!! Buferul de receptie este de tip FIFO -> poti sa primesti mai multe caractere pana ajungi sa citesti RCREG, deci trebuie sa citesti RCREG pana se goleste (RCIF devine 0)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines