78ATI Postat Decembrie 19, 2011 Autor Partajează Postat Decembrie 19, 2011 receptia nu este ok tot timpul pentru ca se desincronizeaza. incearca pauze mai mari intre transmisii si foloseste intreruperea de receptie.Cum sa folosesc intreruperea de receptie? Receptionez x secunde, si apoi intrerup? In acest moment eu transmit continuu cu pauze de 1.5 secunde intre transmisii. Informatia este aceiasi. Pauza intre bytes este de 90 ms.La prima citire sirul de caractere nu este complet, la a doua citire sirul este corect. Daca nu ma insel citirea se face ok de 2/3 ori dupa care "se bloicheaza"...am asteptat ceva de ordinul minutelor insa nu si-a mai revenit!Ma gandesc eventual la creerea unui byte de verificare, astfel incat daca receptia este ok, sa afiseze, iar daca nu...sa refaca transmisia.Cum pot face acest lucru (optimistic vorbind) daca 2/3 emitatoare emit aproape simultan? Link spre comentariu
costi002 Postat Decembrie 19, 2011 Partajează Postat Decembrie 19, 2011 exista un bit care se seteaza automat cand receptioneaza primul byte RCIF (PIR1<5>). dar, inainte de asta trebuie sa activezi intreruperile. in momentul in care s-a activat aceasta intrerupere, te trimite la org 0x0004 unde poti pune rutina ta de receptie. trebuie sa stii cati byte trebuie sa receptionezi. este destul de dificil de lucrat cu intreruperile, dar nu imposibil.incearca si aceasta varianta.citeste cu atentie data-sheetul la USART ASYNCHRONOUS RECEIVER Link spre comentariu
Ashky Postat Decembrie 19, 2011 Partajează Postat Decembrie 19, 2011 Nu te mai chinui cu usart-ul ca nu o sa mearga decat pe cablu.La exemplul pe care l-am dat eu nici macar nu conteaza pe ce frecventa lucreaza receptorul, se sincronizeaza singur.Ca sa fii sigur ca ce a primit este corect, poti folosi 2 variante, calculezi un checksum (cauta pbus cu google) sau trimiti de mai multe ori datele si daca receptorul primeste de doua-trei ori consecutiv aceleasi date le salvezi si gata. Link spre comentariu
78ATI Postat Decembrie 20, 2011 Autor Partajează Postat Decembrie 20, 2011 Buna dimineata!Am refacut conexiunile montajului, am incercat sa retestez totul. la 16F628A am programat RB0 ca si INT (intrare cu intreruperi). Ma intereseaza daca PORTA ramane in situatie clasica ca si IO Digital fara intreruperi!Intreb acest lucru deoarece, reconfigurand LCD pe PORTA, acum nici macar nu se mai initializeaza.Trebuie sa schimb controlerul? Exista un soft in care sa pot simula functionarea unui montaj, iar cand "montajul" arata si se comporta bine sa il pot muta de pe desktop pe placa de test?Va multumesc mult! Link spre comentariu
Liviu M Postat Decembrie 20, 2011 Partajează Postat Decembrie 20, 2011 PORTA e multiplexat - digital + analog. Default, dupa reset, e analog; ca sa mearga digital, trebuie reconfigurat (CMCON=7, parca). Link spre comentariu
78ATI Postat Decembrie 20, 2011 Autor Partajează Postat Decembrie 20, 2011 PORTA e multiplexat - digital + analog. Default, dupa reset, e analog; ca sa mearga digital, trebuie reconfigurat (CMCON=7, parca).Configuratia mea este:CMCON=7 'DigitalTRISA=0TRISB=%00000001 'RB0 = input/INTPORTA=0PORTB=0OPTION_REG.6 = 1 ' Interrupt on rising edge on RB0INTCON.1 = 0 ' Clear INT0IFT1CON.0 = 0 ' stop TIMER1T1CON.5 = 0 ' TIMER1 prescaler 1:2T1CON.4 = 1 ' TIMER1 prescaler 1:2PIR1.0 = 0 ' clear TMR1IFINTCON = $D0 ' enable GIE, PEIE and RBIE Link spre comentariu
Liviu M Postat Decembrie 20, 2011 Partajează Postat Decembrie 20, 2011 Folosesti si RA4?Daca da, vezi ca e open-drain. Link spre comentariu
78ATI Postat Decembrie 20, 2011 Autor Partajează Postat Decembrie 20, 2011 Folosesti si RA4?Daca da, vezi ca e open-drain.Folosesc RA4, pentru comanda LCD :( Link spre comentariu
Liviu M Postat Decembrie 20, 2011 Partajează Postat Decembrie 20, 2011 Si de ce esti trist?Pune o rezistenta pull-up (intre pin si +5V); ar trebui sa mearga. Link spre comentariu
78ATI Postat Decembrie 20, 2011 Autor Partajează Postat Decembrie 20, 2011 Si de ce esti trist?Pune o rezistenta pull-up (intre pin si +5V); ar trebui sa mearga.Trist e putin spus. Ma simt...am refacut montajul asta de n ori si nu mai stiu cum sa ii dau de cap. Il fac acum macar sa il vad ca merge. Va spun: de agonie la extaz acest montaj mi-a creeat toate starile. Extaz de cateva secunde. Sper sa reusesc sa il pornesc ca apoi sa pot merge mai departe! Link spre comentariu
78ATI Postat Decembrie 20, 2011 Autor Partajează Postat Decembrie 20, 2011 Sa inteleg ca PORTA ramene in starea initiala a setarii, indiferent de situatia intreruperilor pe PORTB.0? Este sau nu este influentat de aceste intreruperi?Multumesc! Link spre comentariu
Liviu M Postat Decembrie 20, 2011 Partajează Postat Decembrie 20, 2011 Ar trebui sa fie independente. Link spre comentariu
MatyC Postat Decembrie 20, 2011 Partajează Postat Decembrie 20, 2011 La PIC16F628 pe langa faptul ca RA4 este open drain (rezistor pull-up) sa ai grija la RA5 sa nu-l folosesti ca output. RA5 este doar pentru intrari. Link spre comentariu
78ATI Postat Decembrie 20, 2011 Autor Partajează Postat Decembrie 20, 2011 La PIC16F628 pe langa faptul ca RA4 este open drain (rezistor pull-up) sa ai grija la RA5 sa nu-l folosesti ca output. RA5 este doar pentru intrari.Da, de asta oftam la gandul ca nu voi putea folosi RA4. RA5 este intodeauna IN (MCLR). Dat fiind raspunsurile de mai sus, mai astept cateva ore sa ajung acasa sa refac testele. Link spre comentariu
MatyC Postat Decembrie 20, 2011 Partajează Postat Decembrie 20, 2011 La PIC16F628 pe langa faptul ca RA4 este open drain (rezistor pull-up) sa ai grija la RA5 sa nu-l folosesti ca output. RA5 este doar pentru intrari.Da, de asta oftam la gandul ca nu voi putea folosi RA4. RA5 este intodeauna IN (MCLR). Dat fiind raspunsurile de mai sus, mai astept cateva ore sa ajung acasa sa refac testele.Cu RA4 nu este problema, folosesti o rezistenta de 4K7 conectata la Vcc si se rezolva. RA5 nu este obligatoriu MCLR, poti conecta intrarea de RX RF, un buton, un switch ceva. Insa daca l-ai conectat la LCD, unde ai nevoie de porturi de iesire, nu va merge. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum