MihaiStoica Postat Martie 19, 2014 Partajează Postat Martie 19, 2014 Stimati colegiIncerc sa construiesc un montaj cu 4 canale PWM independente, in sensul de factor de umplere. Mi-a picat cu tronc PIC18F45K80 care se lauda cu 4 canaleProgramelul de test, urmand a fi extins este:#include #include "config.h"void main(void) { PR2 = 249; // PWM Period = [(PR2) + 1] x 4 x TOSC x (TMR2 Prescale Value) CCPR2L = 25; // PWM Duty Cycle = (CCPR2L:CCP2CON<5:4>) x TOSC x (TMR2 Prescale Value) TRISCbits.TRISC2 = 0; TMR2ON = 1; CCP2M3 = 1; CCP2M2 = 1; TRISB = 0xFF; for(;;){ if(PORTBbits.RB0 == 0) CCPR2L = 125; }}PROBLEMA: Mareste factorul de umplere chiar daca pe RB0 am 1 logic (o rezistenta de 10k la VDD). Am pus un delay. Pe osciloscop se vede cum porneste cu factor de umplere mic (CCPR2L = 25) si imediat sare la factor de umplere mare (CCPR2L = 125)Lucrez cu MPLAB X si compilator HI-TECH PICC18. La fel se intampla daca il compilez cu XC8Multumesc anticipat Link spre comentariu
brad Postat Martie 19, 2014 Partajează Postat Martie 19, 2014 cred ca trebuie sa-l faci digital portul B:ANSELB=0x00; Link spre comentariu
MihaiStoica Postat Martie 20, 2014 Autor Partajează Postat Martie 20, 2014 Incerc si asta, desi in mod default ANCON1 ar trebui sa aiba 0 pe ANSEL11<10:8>, adica digitalIntr-adevar, daca are 1, il configureaza ca analogic si orice intrare este citita ca fiind 0 (asa scrie in datasheet)Orice idee este binevenitaMultumesc Link spre comentariu
MihaiStoica Postat Martie 28, 2014 Autor Partajează Postat Martie 28, 2014 Pana la urma i-am dat de capIntai configurez portul ca fiind iesire (TRISx= 0x00), ii pun 1 pe iesire (PORTx=0xFF) si il fac intrare (TRISx=0xFF)Chiar daca intrarea este in aer (ar trebui sa citeasca 1) i-am pus si cate o rezistenta de 10k la VDD 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