skraceni kurs ucenja picbasica

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

evo mene jos jednom sa novim problemom
naprovio sam program gdje se postave vrijeme A I vrijeme B, kad program pocne odbrojavati vrijeme a pali se led1, kad odbroji pocne odbrojavati vrijeme b i pali se led 2.
kad i to zavrsi vraca se na pocetak i ceka da mu se postavi novo vrijeme.
Eh ono sto mene zanima kako da zapisem u eeprom posljednje podeseno vrijeme da se kod ponovnog ukljucenja automatski ucita

Code: Select all

TRISB=%11111010
TRISA=0
SYMBOL UP=PORTB.4
SYMBOL UP1=PORTB.1
SYMBOL DOWN=PORTB.5
SYMBOL DOWN1=PORTB.7
p var word
zadato1 var word
i var word
zadato var word
BROJ VAR word
broj1 var word
broj1=60
BROJ=60
low portb.2
low portb.0           
lcdout $FE, 1
pause 100

POCETAK:

IF UP<1 THEN
broj=broj+1
ENDIF
IF broj>9999 THEN
broj=1 
lcdout $FE, 1
pause 100
ENDIF
IF DOWN<1 THEN
broj=broj-1
ENDIF
IF broj<1 THEN
broj=9999
lcdout $FE, 1
pause 100
ENDIF
lcdout $fe,1, "Zad " ,  dec broj ; ispisuje na LCD-u Zadata i broj prikazuje kao decimalnu velicinu
zadato = broj
IF UP1<1 THEN
broj1=broj1+1
ENDIF
IF broj1>9999 THEN
broj1=1 
lcdout $FE, 1
pause 100
ENDIF
IF DOWN1<1 THEN
broj1=broj1-1
ENDIF
IF broj1<1 THEN
broj1=9999
lcdout $FE, 1
pause 100
ENDIF
LCDOUT $FE, $C0, "pau ",DEC broj1 ; u drugu liniju ispisuje pauzu
zadato1 = broj1

pause 100

if portb.6=1 then
goto POCETAK
else
high portb.0
FOR I=0 TO BROJ
lcdout $fe,1, "Zad " ,  dec broj
LCDOUT $FE, $80+8, "Pos",DEC I
pause 1000
 NEXT I      
endif
low portb.0
PAUSE 900
high portb.2
for p=0 to broj1
lcdout $fe,1, "Zad " ,  dec broj
LCDOUT $FE, $C0, "pau ",DEC broj1
LCDOUT $FE, $C0+8, "pos ",DEC p
pause 1000
next p
low portb.2
lcdout $fe,1, "GOTOVO "
PAUSE 2000
goto pocetak
End ' Kraj programa
ja sam za sad zadao da broj bude 60
i broj1 60
ali ipak bi bilo bolje da ucita posljednje podeseno
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Mozes sa read wrtite, ili mozda i ne mozes... Jer to zavisi koji pic koristis...
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

Pozdrav, Pedja
pokusao sam na pocetku READ 1,BROJ
READ 2, BROJ1
A na kraju programa WRITE 1 , BROJ
WRITE 2,BROJ1
medjutim program je zapinjao odmah na pocetku, radim sa 16f84
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Te promenljive su word, stoga to treba i da kazes...
Ako koristis neku noviju verziju onda pises wrire/read adr. word broj. Ili ako imas stariju verziju onda rastavis broj na visi i nizi bajt i upises ih kao 2 posebna bajta, i isto tako procitas. Naravno za ovo ce ti trebati neke 2 pomocne promenljive... Mada ako se dobro secam, taj eeprom nesto zajebava na 84a, ili je pbp zezao...
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

Neznam sto da kazem nego da vise nisam normalan, ne mogu da napravim ni najjednostavniji program da nesto pospremi u eeprom
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Uzmi bilo koji 18F pic i nece biti nikakvih problema...
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

u pravu si sa 18f2550 write/read rade potpuno normalno
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: skraceni kurs ucenja picbasica

Post by WhiteHead »

Čini mi se da je negdje pomenuto da nakon naredbe WRITE treba pauzirati program na 10-ak milisekundi. Ja sam to koristio na F84 i radilo je OK. Doduše upisivao sam log-vrijednost.
Ako kaniš pobijediti, ne smiješ izgubiti
Branez
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 457
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)
Contact:

Re: skraceni kurs ucenja picbasica

Post by Branez »

Točno tako je! Evo jednoga primjera upotrebe Read/Write. Pisano doduše za F628, za F84 samo izostavi ovaj dio:

Code: Select all

CMCON=7                                 ' onemogoči komparatorje
A šta se toga tvoga pokusa tiče:
atom1 wrote:Pozdrav, Pedja
pokusao sam na pocetku READ 1,BROJ
READ 2, BROJ1
A na kraju programa WRITE 1 , BROJ
WRITE 2,BROJ1
medjutim program je zapinjao odmah na pocetku, radim sa 16f84
Normalno da zapinje! Malo razmisli zašto! Dali ima šta čitati na početku programa? Upotrebi DATA za upisivanje neke vrednosti u memoriju ili ručno upiši kod programiranja. Tako sam ja napravio, pa brez problema kod prvoga pokretanja programa nađe neku bezveznu (možeš upisati i pravu) vrednost, koju posle prepiše sa željenom. :wink:
Real Radios Glow in the Dark!
Branez
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 457
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)
Contact:

Re: skraceni kurs ucenja picbasica

Post by Branez »

help wrote:DATA {@Location,}Constant{,Constant...}

Store constants in on-chip non-volatile EEPROM when the device is first programmed. If the optional Location value is omitted, the first DATA statement starts storing at address 0 and subsequent statements store at the following locations. If the Location value is specified, it denotes the starting location where these values are stored. An optional label can be assigned to the starting EEPROM address for later reference by the program.

Constant can be a numeric constant or a string constant. Only the least significant byte of numeric values are stored unless the WORD modifier is used. Strings are stored as consecutive bytes of ASCII values. No length or terminator is automatically added.

DATA only works with microcontrollers with on-chip EEPROM such as the PIC16F84 and PIC16C84. It will not work on devices with on-chip I2C interfaced serial EEPROM like the 12CE67x and 16CE62x parts. Since EEPROM is non-volatile memory, the data will remain intact even if the power is turned off. The data is stored in the EEPROM space only once at the time the microcontroller is programmed, not each time the program is run. WRITE can be used to set the values of the on-chip EEPROM at runtime.
Example

' Store 10, 20 and 30 starting at location 5
DATA @5,10,20,30

' Assign a label to a word at the next location
dlabel DATA word $1234 ' Stores $34, $12

' Skip 4 locations and store 10 0s
DATA (4), 0(10)

See Also

WRITE
Ljudi zašto ne čitate "HELP" programa? :roll:
Real Radios Glow in the Dark!
Branez
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 457
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)
Contact:

Re: skraceni kurs ucenja picbasica

Post by Branez »

@atom1
Jesi li uspio?
Real Radios Glow in the Dark!
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

jesam,no razlog je bio toliko banalan da mi zao sto sam zamarao cijelu grupu,sad opet imam problem,
radim jedan brojac proizvoda, ali kad napravim brojilo i=i+1 broji do 255 to je prvi problem
drugi je kad taj "i" pomnozim sa 5 opet lcd prikazuje do 255, pretpostavljam da je problem u 8 bitnom brojacu
no trenutno nemam ideje kako to savladati, cak ni neki primjer ne nalazim
Branez
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 457
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)
Contact:

Re: skraceni kurs ucenja picbasica

Post by Branez »

atom1 wrote:jesam,no razlog je bio toliko banalan da mi zao sto sam zamarao cijelu grupu,sad opet imam problem,
.............
Daj podjeli razloge s nama, pa da ne pravimo takve greške i mi!
atom1 wrote:radim jedan brojac proizvoda, ali kad napravim brojilo i=i+1 broji do 255 to je prvi problem
drugi je kad taj "i" pomnozim sa 5 opet lcd prikazuje do 255, pretpostavljam da je problem u 8 bitnom brojacu
no trenutno nemam ideje kako to savladati, cak ni neki primjer ne nalazim
A da si stavio kodu, lakše bi ti bilo odgovoriti na taj dio pitanja. :wink:
Real Radios Glow in the Dark!
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

SYMBOL TASTER1= PORTB.2
B1 var byte
I VAR BYTE
INPUT TASTER1 ' sada smo taster proglasili ulazom
I=0
lcdout $fe,1,"0"
pocetak:
B1=0


button PORTB.4, 0, 0,0, B1, 1, lblset
GOTO pocetak

lblset:
I=I+1
pause 100
lcdout $fe,1,DEC I
GOTO pocetak
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: skraceni kurs ucenja picbasica

Post by WhiteHead »

Mogao bi sa:

Code: Select all

I VAR Word
A možeš i ostaviti kao byte i koristiti dvije varijable tako da neku "k" uvećaš za jedan kada god "i" dostigne 255
Ako kaniš pobijediti, ne smiješ izgubiti
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

svaka cast majstore radi sa var word , ta opcija mi je puno prilagođenija projektu
Branez
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 457
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)
Contact:

Re: skraceni kurs ucenja picbasica

Post by Branez »

Opet ponavljam: Sve to piše u "Help"-u!
Size is BIT, BYTE or WORD. Number of elements is how many array locations is desired. Some examples of creating arrays are:

sharks VAR byte[10]
fish VAR bit[8]

The first array location is element 0. In the fish array defined above, the elements are numbered fish[0] to fish[7] yielding 8 elements in total. Because of the way arrays are allocated in memory, there are size limits for each type:

Size
Maximum Number of elements

BIT - 256

BYTE - 96*

WORD - 48*
Real Radios Glow in the Dark!
atom1
Pocetnik na forumu
Pocetnik na forumu
Posts: 36
Joined: 12-09-2011, 22:58

Re: skraceni kurs ucenja picbasica

Post by atom1 »

da se nadovezem na help koji je u microcode studio skoro pa beskoristan, za mene kao pocetnika help u picbasic pro compileru je puno detaljniji i upotrebljiviji, pa da ne lutate sve okolo kao ja mozda ce vam ova sugestija biti od pomoci.nadam se da nisam otkrio toplu vodu :D
Glingur
Posts: 3
Joined: 11-10-2011, 15:47

Re: skraceni kurs ucenja picbasica

Post by Glingur »

Pozdrav svima, evo pitanja od novog clana:
Kako da generisem impuls trajanja 100 nS, koristim PBP i 16f877? Da li je uopste moguce generisati ovako male intervale ako se koristi Pic Basic Pro?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Jako tesko...
Post Reply