FPGA Postat Iunie 29, 2015 Partajează Postat Iunie 29, 2015 Salut, Am incercat sa fac un program prin care la apasarea unui buton sa am unPWM(50%),iar la apasara altui buton sa am alt PWM(10%)....in cazul in care nu e apasat niciun buton sa am PWM 0....si nu stiu daca este chiar corect(nu merge simularea cu Proteus)! Ma puteti ajuta ?...sa imi spuneti daca e corect?...sau mai trebuie ceva modificat? Va multumesc!!!! Codul: void main() { CCP1CON = 0b00001100; // Enable PWM on CCP1 TRISC = 0b11111011; // Make pin 17 (RC1/CCP1) an output T2CON = 0b00000100; // Enable TMR2 with prescaler = 1 PR2 = 249; // PWM period = (PR2+1) * prescaler * Tcy = 1ms TRISB0 = 1; // Makes RB0 a input pin TRISB1 = 1; // Makes RB0 a input pin while(1) { if(RB0 == 0) //If Switch1 is presseed CCPR1L = 0; if(RB0 == 1) //If Switch1 is presseed CCPR1L = 125; if(RB1 == 0) //If Switch2 is not presseed CCPR1L = 0; if(RB1 == 1) //If Switch2 is presseed CCPR1L = 25; }} P.S. - sa nu radeti daca am scris tampenii....sunt 0 la capitolul asta...dar mi-ar placea sa invat cate ceva!!! Link spre comentariu
Mircea Postat Iunie 29, 2015 Partajează Postat Iunie 29, 2015 (editat) Ca tot folosesti MikroC. Cauta in help si foloseste functia Button. Asa cum ai facut poate (fa-l practic si vei intelege de ce) va merge cu un switch basculant, nicidecum cu un push-button.LE: cred ca nu e totusi in MikroC, poate fi orice C. Editat Iunie 29, 2015 de thunderer Link spre comentariu
mars01 Postat Iunie 29, 2015 Partajează Postat Iunie 29, 2015 (editat) Ce controller folosesti, ce frecventa a oscilatorului (1MHz?)... Nu ai debounce la switch-uri ... Editat Iunie 29, 2015 de mars01 Link spre comentariu
FPGA Postat Iunie 29, 2015 Autor Partajează Postat Iunie 29, 2015 Ce controller folosesti, ce frecventa a oscilatorului (1MHz?)... Nu ai debounce la switch-uri ... PIC 16F877A....1Mhz....debounce cum fac?....dupa fiecare apasare un delay si verific din nou daca e apasat butonul?...in rest ar trebui sa functioneze?... Link spre comentariu
Liviu M Postat Iunie 29, 2015 Partajează Postat Iunie 29, 2015 TRISC = 0b11111011; // Make pin 17 (RC1/CCP1) an output Ca sa faci un pin output trebuie sa pui 0 in TRIS-ul corespunzator.RC1 e al doilea pin. La tine e 1 => input. Link spre comentariu
mars01 Postat Iunie 30, 2015 Partajează Postat Iunie 30, 2015 Da, merge si asa sau cu timere. Liviu ti-a rezolvat problema. Pe viitor cand nu ai de modificat prea multi biti intr-un port, foloseste-te de alias-uri asa cum ai facut cuTRISB0, TRISB1. E mai usor asa decat sa stai sa numeri biti ... Link spre comentariu
FPGA Postat Iunie 30, 2015 Autor Partajează Postat Iunie 30, 2015 Va multumesc pentru raspunsuri...o sa revin si cu alte intrebari cand ma mai impodmolesc.... Link spre comentariu
laur234 Postat Iunie 18, 2016 Partajează Postat Iunie 18, 2016 salutare mars01, acum incerc sa modific programu de pwm pentru 16f84 am un wellman p8048(programator si placa de experimente) cu ce am invatat de la tine 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