Vizitator m3_catalin Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Vreau sa fac o schema cat se poate de simpla si totusi nu stiu unde gresesc parca ceva e facut sa fie asa asta e codul : void main(){ TRISE = 1; TRISB = 0;while (1){if (RE0 == 1) PORTB = 0x00; else (PORTB = 0xFF);}simplu, daca am 1 la pinul RE0, pun tot portul B in 0daca am 0 la pinul RE0, pun tot portul B in 1. Problema e ca orice ar fi el vede 0 la pinul RE0 si imi pune 1 pe portul B. unde gresesc? Link spre comentariu
Liviu M Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Ce pic folosesti? De exemplu cele din seria 16F87x au portul E multiplexat (digital cu analog) si vine default setat pe analog. Ca sa-l faci digital, trebuie sa reconfigurezi ADCON1 Also ensure that ADCON1 is configuredfor digital I/O.LE Am vazut in poze, e 16F877A. Cred ca are aceeasi "problema" cu cea zisa de mine la 16F877. Link spre comentariu
Vizitator m3_catalin Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 si cum fac asta in C, mplab ? Link spre comentariu
Liviu M Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Pagina 128 din data iti arata cum poti programa porturile multiplexate analog/digital in functie de PCFG3:PCFG0. Cum nu te intereseaza nici o intrare analoga, poti pune inainte de while(1) o initializare de genul (valabila in picc, daca folosesti altceva poate diferi) ADCON1 = 0x06; // (PCFG2=1, PCFG1=1) Link spre comentariu
Vizitator m3_catalin Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 si daca vreau sa masor ulterior tensiunea pe un potebtiometru setez ADCON1 = 0x00; masor si apoi pun iar digital ca sa controlez respectivele butoane ? Link spre comentariu
10vid Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Cum poti sa pui si potentiometru si buton pe acelasi pin? Pinii cu potentiometru ii lasi pe analogic, iar cei cu butoane digital input. Link spre comentariu
Liviu M Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Nu, cel mai simplu e sa te uiti la pagina recomandata si, in functie de configuratia care-ti trebuie, sa alegi valorile pentru PCFG3..PCFG0.Presupunand ca vrei un potentiometru pe AN0 (celalalt topic) si butonul pe RE0 (AN5), trebuie sa lasi AN0 analog si sa favi RE0/AN5 digital.Una din posibilitati e cu PCFG3:PCFG0 = 2 (0010), o alta e PCFG3:PCFG0 = 4 (0100) si ultima recomadata de mine e PCFG3:PCFG0 = E (1110).Am evitat in mod special variantele cu VREF+/- diferite de VDD/VSS. Link spre comentariu
Vizitator m3_catalin Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Multumesc mult pentru ajutor. Vreau sa folosesc similar acum pinii RE1 si RE2, dar nu pot. de ce? Nu apare 1 logic pe cei 2 pini cand ii leg similar ca si RE0. Link spre comentariu
francezu Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Ai configurat pinii respectivi ca intrari ? (bitii corespunzatori din registrul TRISE pusi pe 1 logic) Link spre comentariu
Liviu M Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 Ma duc sa-mi iau globul de cristal din debara, sa vad cum ai configurat portul E si ADCON1. Revin.PS Micsoreaza si tu putin pozele, ca ies din pagina. Link spre comentariu
Vizitator m3_catalin Postat Iulie 14, 2011 Partajează Postat Iulie 14, 2011 TRISE = 1;TRISB = 0;ADCON1 = 0xCE; asa le-am configurat, nu imi vede 1 pe RE1 SI RE2 orice ar fi Link spre comentariu
Liviu M Postat Iulie 15, 2011 Partajează Postat Iulie 15, 2011 Pentru fiecare "pin" in porturi exista un bit in TRISul corespunzator, bit care trebuie schimbat in functie de directia dorita - 1 == intrare, 0 == iesire.In cazul tau, rescriind in binar => TRISE=1 = 00000001, adica RE0 e intrare, restul sunt iesiri.Ca sa fie si RE1 si RE2 intrari, trebuie sa le faci "1" bitii corespunzatori din TRISE => TRISE = 00000111. Link spre comentariu
Vizitator m3_catalin Postat Iulie 15, 2011 Partajează Postat Iulie 15, 2011 am reusit pana la urma, aveai dreptate, si trebuia sa dau toggle pe buton in proteus ca sa imi vada ca butonu e apasat mereu cum sunt si cele de pe placa mea.urmatoarea problema ar fi cum sa masor valoarea unui potentiometru pe pinul AN0.dupa cum l-am configurat e analog acest pin.ADCON1 = 0xCE; AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 VREF+ VREF-D D D D D D D A VDD VSStrebuie sa setez din cate stiu canalul adcset_adc_channel(0); //channel 0 selected or pin RA0 selected for adcpe urma trebuie sa citesc valoarea de pe pin ?x=read_adc(); Link spre comentariu
Liviu M Postat Iulie 15, 2011 Partajează Postat Iulie 15, 2011 De data asta numai helpul de la mikroC sau cineva care lucreaza cu mikroC te pot ajuta.Da' am senzatia ca mikroC are multe exemple; cauta poate gasesti ceva pentru ADC.LE Pana la urma nu-s sigur ca folosesti mikroC. Pana la urma ce compilator folosesti? Link spre comentariu
Vizitator m3_catalin Postat Iulie 15, 2011 Partajează Postat Iulie 15, 2011 HI-TECH C compiler in MPLAB 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