Problem 16f883
Moderators: pedja089, stojke369, [eDo], trax
Problem 16f883
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
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
Re: Problem 16f883
http://ww1.microchip.com/downloads/en/d ... 41291d.pdf
pogledaj sta sve imas na portb.
Ocigledno nesto nisi ugasio pa ti pinovi nisu digitalni.
pogledaj sta sve imas na portb.
Ocigledno nesto nisi ugasio pa ti pinovi nisu digitalni.
Re: Problem 16f883
Probao nesto sto sam nalazio na internetu ali neuspevam,idalje nece
Re: Problem 16f883
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 ?
Re: Problem 16f883
Moze da bude napon napajanja referentni.
Strana 107 u datasheetu na linku koji sam postavio.
Strana 107 u datasheetu na linku koji sam postavio.
Re: Problem 16f883
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
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
Re: Problem 16f883
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?
Ali ovo mi bode oko
ADCIN 1 , BROJ1
BROJ = ( BROJ1 */ 500)>>2
Da tu ne bi trebalo da bude broj1?
Re: Problem 16f883
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
adcin 0 , broj
BROJ = ( BROJ */ 500)>>2
ADCIN 1 , BROJ1
BROJ = ( BROJ1 */ 500)>>2
valjda teko treba,neznam nisam siguran pa zato pitam
Re: Problem 16f883
Ali za drugi kanal koristis opet broj, sto znaci da gubis podatak za prvi kanal.
Re: Problem 16f883
za drugi sam stavio BROJ1 a za prvi BROJ
Re: Problem 16f883
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.
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.
Re: Problem 16f883
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
Re: Problem 16f883
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
EDIT:
Nema na cemu, to mi se desilo bezbroj puta i ko zna koliko ne prespavanih noci zbog tako neceg
Re: Problem 16f883
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
Re: Problem 16f883
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?
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?
Re: Problem 16f883
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
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
Re: Problem 16f883
Oba bita treba da su nula.
Bit 4 ako je nula onda je izabran vdd kao referentni napon.
Bit 4 ako je nula onda je izabran vdd kao referentni napon.
Re: Problem 16f883
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