Problem 16f883

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Problem 16f883

Post by MIKI73 »

Pozdrav svima.Posto je 16f883 dosta jeftiniji ja reko njime da se ozabavim ali ispade problem.Pokusao sam u proteusu da napisem nesto za AD i nemam prikaz na displeju (radim u proteusu),pa onda ajde mozda nesto gresim izbacujem jedno pojedno i na kraju posto nemam prikaz na displeju napisao sam nesto najosnovnije samo da proverim pa i tad na displeju u proteusu nemam nista.Evo neke probe samo da bih video da li ce da proradi displej.Sve ostalo mi savrseno radi sa 16f88 , 16f877 ... Ima li nesto posebno za 16f883 ili ga proteus nesto neprihvata...ako neko ima iskustva sa tim zamolio bih za savet

DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100 'cekanje inicijalizacije displeja
BROJ VAR WORD
broj=100
lcdout $FE, 1
POCETAK:

lcdout $FE, $80, "COUNT=", broj
pause 10
GOTO POCETAK:
end
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

http://ww1.microchip.com/downloads/en/d ... 41291d.pdf
pogledaj sta sve imas na portb.
Ocigledno nesto nisi ugasio pa ti pinovi nisu digitalni.
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

Probao nesto sto sam nalazio na internetu ali neuspevam,idalje nece
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

Proradio je displej.Samo bih da zamolim za ovo oko referentnog napona za ADC kako da postavim.Moze li da ref vapon bude napon napajanja i da se nista nedovodi na RA2 i RA3 ili kako pravilno postaviti u adcon1 ?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

Moze da bude napon napajanja referentni.
Strana 107 u datasheetu na linku koji sam postavio.
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

Sad radi displej i sve ostalo ali samo na RA0 a kad hocu da koristim i RA1 kanal e onada nastaje problem,tad se nesto mesa izmerena vrednost na oba kanala.Evo kaoda pa ako moze savet sta da izmenim ili je mozda ovo uredu ali da se glupira proteus jer sa 16f88 mi radi ovako sve kako treba ali 16f883 nece.


DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100


CLEAR
DEFINE OSC 4 ; set oscillator speed

; Setup Ports and Pins
PORTA = %00000000
TRISA = %11111111 ; set to inputs
PORTB = %00000000
TRISB = %00000000 ; set all PORTB pins to outputs
IOCB = %00000000 ; disable IOCB on PortB
PORTC = %00000000
TRISC = %00000000 ; set all PORTC pins to outputs

; Initialize I/O
; enable and set up AN0 input as ADC
; right justify and use power rails as Vref
ANSEL = %00000011 ; A/D enabled for ANS0, disabled for ANS1->ANS7
ANSELH = %00000000 ; A/D disabled for ANS8->ANS13 za port B
CM1CON0 = %00000000 ; Disable comparators
CM2CON0 = %00000000 ; These default to disabled at POR, but just in case

Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS

ADCON1=%10000000
ADCON0=%11000001

BROJ1 var word
BROJ VAR WORD
POCETAK:

adcin 0 , broj
BROJ = ( BROJ */ 500)>>2

ADCIN 1 , BROJ1
BROJ = ( BROJ1 */ 500)>>2

lcdout $fe,2
lcdout "U1=",DEC (BROJ/100),".", DEC2 BROJ,"V"
pause 10

lcdout $fe,$c0
lcdout "U=",DEC(BROJ1/100),".", DEC2 BROJ1,"V"
pause 10

GOTO POCETAK:
END
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

Hm, podesavanja sad deluju ok.
Ali ovo mi bode oko
ADCIN 1 , BROJ1
BROJ = ( BROJ1 */ 500)>>2

Da tu ne bi trebalo da bude broj1?
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

To sam stavio dve promenljive BROJ i BROJ1 pojednu za oba kavala RA0 i RA1

adcin 0 , broj
BROJ = ( BROJ */ 500)>>2

ADCIN 1 , BROJ1
BROJ = ( BROJ1 */ 500)>>2

valjda teko treba,neznam nisam siguran pa zato pitam
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

Ali za drugi kanal koristis opet broj, sto znaci da gubis podatak za prvi kanal.
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

za drugi sam stavio BROJ1 a za prvi BROJ
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

Mozda si hteo, ali nisi.
Ovo je kopija drugog kanala iz tvog koda
ADCIN 1 , BROJ1
BROJ = ( BROJ1 */ 500)>>2
Kao sto vidis, krajnji rezultat smestas u broj, a to je promenljiva od prvog.
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

Hvala ti najlepse.Nisam video a ubi se gledajuci.sad je uredu. Jedino sto nisam skapirao kako da referentni bude VDD i da nemoram nista da dovodim kao referentni na RA2 ili RA3
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

Baci oko na 107 stranu datasheeta. Pa samo bite registra postavis na 1 ili na 0 prema onome sto tamo pise, i sta zelis da ti bude.
EDIT:
Nema na cemu, to mi se desilo bezbroj puta i ko zna koliko ne prespavanih noci zbog tako neceg :azdaja:
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

To je cena kod mene kad samo prekopiram neki red da nekucam.Vidim stranu 107 ali nekapiram je pa cu u proteusu da probam neke kombinacije da vidim sta se desava.Trebalo bi da ima mogucnost da se nedovodi spoljni ref napon
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

A sta ne kapiras na 107 strani.
Pise lepo 0=vdd za neki bit, isto tako za neki drugi bit pise sta radi.
Samo te bite trebas staviti na 1 ili 0. Bas mi nije jasno sta ne kapiras.
Jel mozes malo da pojasnis?
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

bit 5 VCFG1: Voltage Reference bit
1 = VREF- pin
0 = VSS ako je na 0 ispada da je ref 0V


bit 4 VCFG0: Voltage Reference bit
1 = VREF+ pin a ako je na 1V ispada ref napon napajanja
0 = VDD

kao da su oba u funkciju istovremeno odnosno sta god da probam neradi dok nedovedem neki napon,svejedno koliko od 0 do 5V i samo tad radi. Sve sam orobao
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Problem 16f883

Post by pedja089 »

Oba bita treba da su nula.
Bit 4 ako je nula onda je izabran vdd kao referentni napon.
MIKI73
Napredujem
Napredujem
Posts: 107
Joined: 01-11-2014, 16:57

Re: Problem 16f883

Post by MIKI73 »

ok. hvala ti puno.na kraju i da se nije naslo resenje ostavio bih mi neki napon jer nekoristim sve ulaze ali bolje je kao sta si napisao.hvala Pedja jos jednom
Post Reply