Problem sa programom - Printable Version +- DIY Electronic projects (https://forum.yu3ma.net) +-- Forum: Mikrokontroleri (https://forum.yu3ma.net/forumdisplay.php?fid=52) +--- Forum: Microchip PIC (https://forum.yu3ma.net/forumdisplay.php?fid=53) +--- Thread: Problem sa programom (/showthread.php?tid=1085) |
Problem sa programom - MILANNN - 10-17-2015 Pozdrav svima.Potrebno mi je bilo neto da moze da se menja frekvencija i perioda i napiso sam ovako za 16f628 i u proteusu radi sve kako treba ali kad sam povezao na plocici javlja se problem.Kad menjam frekvenciju menja se i perioda.U donjem redu mi pokazeje PR2 ali to cu da izmenim da pokazuje frekvenciju ako ovo gore navedeno resim.Evo koda: cmcon=7 Define OSC 4 DEFINE LCD_BITS 4 DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 0 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 2 DEFINE LCD_RWREG PORTB DEFINE LCD_RWBIT 1 DEFINE LCD_LINES 2 pause 100 duty VAR WORD milan var word milan=245 duty = 100 trisa=%00111111 trisb.3=0 portb.3=0 CCP1CON = %00001100 T2CON = %00000101 lcdout $FE, 1 mainloop: PR2 = milan if porta.0=0 then milan=milan-1 endif if porta.1=0 then milan=milan+1 endif opet: CCP1CON.4 = duty.0 CCP1CON.5 = duty.1 CCPR1L = DUTY >> 2 if porta.2=0 then duty = duty + 1 lcdout $FE, $80, "DUTY=", #duty pause 10 IF ( duty < 500) Then opet: duty = 500 endif if porta.3=0 then duty=duty-1 lcdout $FE, $80, "DUTY=", #duty pause 10 if duty > 101 then opet: duty=100 endif lcdout $FE, $80, "DUTY=", #duty lcdout $fe,$c0 lcdout "f=",#milan GoTo mainloop End RE: Problem sa programom - enaB - 10-18-2015 u cemu je ovo pisano? RE: Problem sa programom - Želja - 10-18-2015 Izgleda da je u pitanju PIC BASIC ili PROTON compiler. A zašto ne koristiš neki mikrokontroler sa hardverskim PWM modulom ( gomila iz serije 16F, napr 16F870) i jednostavnom komandom završiš posao. HPWM Channel,Dutycycle,Frequency Napr: HPWM 1,127,10000 (na kanalu 1,duty 50%, 10KHz) (duty je 127 jer 255 predstavlja 100%) Pri promeni duty ne menja se frekvencija i obratno. Pozz RE: Problem sa programom - MILANNN - 10-18-2015 Znam za to samo nisam probao jer neznam kako da menjam duty i frekvenciju ako koristim HPWM.Ima li neki primer za promenu frekvencije u HPWM ? RE: Problem sa programom - MILANNN - 10-18-2015 Mislim na promenu duty i frekvencije tasterima. RE: Problem sa programom - Želja - 10-18-2015 Milane, U HPWM komandi varijable : Dutycycle i Frequency možeš menjati čime ti padne na pamet pa i tasterima. Kada koristiš tastere, NIMALO NIJE pametno koristiti ih samo kroz IF-THEN komandu zbog DEBOUNCE I tu postoji komanda : "BUTTON" koja sve radi - proverava pin,stanje, postavlja vreme kašnjenja, vreme automatskog ponavljanja itd.. Kada se izvrši skok na labelu koju odredi "BUTTON" treba samo reći: labela: Dutycycle = Dutycycle + 1 ( ili Dutycycle = Dutycycle - 1) takodje isto i za frekvenciju. i posle ovoga izvršiš HPWM komandu : HPWM Channel,Dutycycle,Frequency .............................................. Primer za BUTTON: http://melabs.com/downloads/pbpm108.pdf na strani br.50 ........................................................ Ne znam šta koristiš PBP ili PROTON, sintakse su vrlo slične. Pročitaj prvo dobro uputstvo od kompajlera, drugačije će teško ići. Nadji na internetu neki open sors od bilo kog projetka sa tastaturom i videćeš kako je to izvedeno. Pozz RE: Problem sa programom - mikikg - 10-18-2015 Za debouncing algoritme pogledajte ovu temu: http://forum.yu3ma.net/showthread.php?tid=690 RE: Problem sa programom - Želja - 10-18-2015 Vidim ja Milane šta mi je činiti. Evo napisah ti nabrzinu programče u PBP ( Milan.pbp) Imaš četiri tastera: SET,ESC,UP,DOWN Sa tasterima UP i DOWN menjaš Duty i automaski čuvaš promene u EEpromu. Tasterom SET pokrećeš PWM, recimo elektromotor Tasterom ESC ga gasiš. Tasteri su preko BUTTON komande i imaju automatsko ponavljanje kada se zadrže. Sam ćeš dalje sa LCD displejom itd.. Pozz ..... P.S. Primetio sam grešku u komentarima napravljenu zbog copy/paste Kod labele SETUP: - treba "Pokreni PWM" Kod labele DOLE: - treba "Smanji Duty" Ali nebitno - to su samo komentari. RE: Problem sa programom - MILANNN - 10-18-2015 Evo kakgav je problem bio sve vreme.Napisao sam i sa HPWM i ponovo se nesto glupo ponasalo kad sam ukljucio.Na ovaj 16f628a neradi mi RA0 (pinuo sam nekad ranije greskom na 12V) i kad u progrmu uopste nedefinisem RA0 onda sve radi na oba nacina a kad ubacim RA0 onda kad je HPVM sam poseza frekvenciju cim ukljucim.Sve vreme se nekako "mesao" RA0. Pitao bih samo do koliku najvecu frekvenciju mogu da izguram kad koristim HPWM ?? RE: Problem sa programom - MILANNN - 10-18-2015 Sad tek vidim da si pisao.Hvala ti puno,nisi trebao da se mucis zbog mene.Ja sam ovo sad nabrzinu napisao sa HPWM i radi ali nisma znao niti mi je palo napamet da moze tako da se umesa crknuti ra0 a ukapirao sam da je to kad sam probao napisan program sa hpwm jer tad cim se ukljuci pocne sam da podize frekvenciju.Hvala jos jednom. |