[ dzigi021 @ 05.02.2012. 20:25 ] @
Molim vas zanima me kolke velicine hex fail staje u pik16f877.
[ veselinovic @ 05.02.2012. 21:44 ] @
Cemu pitanje?
Ako zelis sam da pises program moras prouciti data sheet a tamo sve fino pise.
Ako imas vec gotov program onda ce sigurno da stane.
Ipak, evo 14KB flesa i 368B RAMa i 256B eeproma.

\http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf
[ dzigi021 @ 06.02.2012. 00:10 ] @
procito sam ja data seet,al nije mi jasno nakon definsanja kontrolera par upravljackih funkcija i nakoliko case provera meni je vec 3kb hex a nisam ni petinu programa otkucao imali neko neki savet sta da radim....
[ shpiki @ 06.02.2012. 00:33 ] @
Da okacis to sto si napisao da vidimo cega tu ima...
[ dzigi021 @ 06.02.2012. 01:17 ] @
upravljac solarima evo ga:
define osc 20
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pobuda= porte.2
symbol taster = porte.1
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0
input taster
output pobuda
output pumpa1
output pumpa2
output pumpa3
output pumpa4
output pumpa5
output pumpa6
output pumpa7
output pumpa8
output pumpa9
output pumpa10
output pumpa11
output pumpa12
output pumpa13
output pumpa14
output pumpa15
output pumpa16
output pumpa17
output pumpa18
output pumpa19
output pumpa20
blok var byte
blok = 1
pritisak var byte
pritisak = 0
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6 :
low pumpa7 : low pumpa8 : low pumpa 10 : low pumpa11 : low pumpa12: low pumpa13:
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19:
low pumpa20

program:
if taster = 0 then
pause 200
pritisak = pritisak + 1
if pritisak = 3 then pritisak = 1
if pritisak = 2 then blok = blok + 1
endif

select case blok

case 1
high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
case 2
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4
high pumpa1 : high pumpa2 :high pumpa3 : high pumpa5
case 3
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa5
high pumpa1 : high pumpa2 : high pumpa3 : high pumpa6
case 4
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa6
high pumpa1 : high pumpa2 : high pumpa3 : high pumpa7
case 5
low pumpa1 : low pumpa2 :low pumpa3 : low pumpa7
case 6


end select
pause 200
goto program
end
[ dzigi021 @ 06.02.2012. 01:20 ] @
a to je tek pocetak princip rada kada jedan ventil iskopca treba da se otpuste cetiri druga ventila i da se pobudi refres u modulu

[Ovu poruku je menjao dzigi021 dana 06.02.2012. u 02:45 GMT+1]
[ dzigi021 @ 06.02.2012. 01:43 ] @
Mozda nisam izabrao dobar nacin ali u kuci ima 20 pumpi,kako se koja gasi da impuls mikro komtroleru i on ukopca drugu,i da komandu modulu da je to uradio
[ ZAS011 @ 06.02.2012. 07:36 ] @
Kada ubacujes kod u post, koristi CODE tag-ove, imas tag-ove sa leve strane prozora u kome pises poruke i koristi uvlacenje linija kako bi ti program bio pregledniji.

Inace, za ovako prostu stvar, nije ti potrebno da uC radi na 20 MHz, dosta mu je 4, a mogao bi da upotrebis i 16F884, osetno je jevtiniji od 16F877A, a ima i interni oscilator.

Code:
define osc 20
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0

symbol pobuda = porte.2
symbol taster = porte.1

input taster

output pobuda
output porta
output portc
output portd


blok var byte
pritisak var byte

blok = 1
pritisak = 0

low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6
low pumpa7 : low pumpa8 : low pumpa 10 : low pumpa11 : low pumpa12: low pumpa13
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19
low pumpa20

program:
if taster = 0 then
    pause 200
    pritisak = pritisak + 1
    if pritisak = 3 then pritisak = 1
    if pritisak = 2 then blok = blok + 1
endif

select case blok

    case 1
        high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
    case 2
        low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4
        high pumpa1 : high pumpa2 :high pumpa3 : high pumpa5
    case 3
        low pumpa1 : low pumpa2 : low pumpa3 : low pumpa5
        high pumpa1 : high pumpa2 : high pumpa3 : high pumpa6
    case 4
        low pumpa1 : low pumpa2 : low pumpa3 : low pumpa6
        high pumpa1 : high pumpa2 : high pumpa3 : high pumpa7
    case 5
        low pumpa1 : low pumpa2 :low pumpa3 : low pumpa7
    case 6

end select

pause 200
goto program
end


BTW nedostaje ti jos iskljucivanje komparatera/AD konvertora, ...
[ goran_68 @ 06.02.2012. 07:41 ] @
Kod treba bolje napisati. case struktura i u c jeziku zauzima dosta prostora a verovatno i ovde. Probaj da malo bolje opises problem. Koji je uslov da se jedna od pumpi ukljuci? Da li sve ostale po ukljucenju neke od pum pi treba da budu iskljucene?
[ ZAS011 @ 06.02.2012. 08:20 ] @
@goran_68
Razlika izmedju Select case i If/ElseIf struktura kod kompajliranja je minimalna, u ovom konkretnom ptimeru 7 programskih reci (Select Case: 377 reci, If/ElseIf: 370 reci).

Code:
define osc 20
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0

symbol pobuda = porte.2
symbol taster = porte.1

input taster

output pobuda
output porta
output portc
output portd


blok var byte
pritisak var byte

blok = 1
pritisak = 0

low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6
low pumpa7 : low pumpa8 : low pumpa10 : low pumpa11 : low pumpa12: low pumpa13
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19
low pumpa20

program:
if taster = 0 then
    pause 200
    pritisak = pritisak + 1
    if pritisak = 3 then pritisak = 1
    if pritisak = 2 then blok = blok + 1
endif

if BLOK = 1 then
    high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
elseif blok = 2 then
    low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4
    high pumpa1 : high pumpa2 :high pumpa3 : high pumpa5
elseif blok = 3 then
    low pumpa1 : low pumpa2 : low pumpa3 : low pumpa5
    high pumpa1 : high pumpa2 : high pumpa3 : high pumpa6
elseif blok = 4 then
    low pumpa1 : low pumpa2 : low pumpa3 : low pumpa6
    high pumpa1 : high pumpa2 : high pumpa3 : high pumpa7
elseif blok = 5 then
    low pumpa1 : low pumpa2 :low pumpa3 : low pumpa7
else

endif

pause 200
goto program
end


Ovo bih ja drugacije napisao, al' nije moj projekat, tako da ...
[ dzigi021 @ 06.02.2012. 09:29 ] @
za pocetak dobar dan svima ajde neka mi neko da primer rado bih ga poslusao,jel ovo nema teorije da mi stane u pik
[ dzigi021 @ 06.02.2012. 09:38 ] @
Uslovi za ukljucenje pumpe:pre pumpe ima termostat na koji je vezan relej kad relej iskopca ode na miran kontakt preko kondenzatora i otpornika ce da da samo okidanje na taster mikro kontrolera kad mikro kontrler dobije taj impuls treba da ukopca druge pumpa tj preci ce preko case provere,ako moze sa nekom drugom komandom koja ce manje mesta ostvarivati isto rado cu vas poslusati
[ dzigi021 @ 06.02.2012. 09:48 ] @
I jos nesto zorane naravno poslusa cu te za kristal u data sheetu pise da je 20 MH zato sam ga tolkog stavio,dali mi mozes pojasniti tj napisati kako da iskopcam BTW KONWERTOT
[ dzigi021 @ 06.02.2012. 10:40 ] @
Sad sam izbrojao 543 case provera cu imati kako to da upakujemmmmmmmmmmmmmm
[ Genie_1984 @ 06.02.2012. 11:13 ] @
Za tako nešto ja formiram konstantan niz i u zavisnosti index-a niza prosledjujem vrednost na izlaz
Medjutim 543 vrednosti je puno i za to....

Da li si probao da nađeš neki šablon/funkciju kako zavisi vrednost na izlazu?
[ goran_68 @ 06.02.2012. 11:43 ] @
Koliko vidim u npr. ovom delu:

low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4
treba da budu iskljucene sve pumpe
a potom ukljucujes uvek isto prve tri i narednu (u ovom sluaju petu):
high pumpa1 : high pumpa2 :high pumpa3 : high pumpa5

Dakle treba da napravis jednu pomeracku promenljivu duzine koliko imas ukupno pumpi, da je na svaki naredni impuls pomeris za jedno mesto levo ili desno (u zavisnosti kako se organizujes) i da preko i/ILI funkicija postavljas ili brises odgovarajuce bitove izlaza. Izvrsi preraspodelu pumpi po portovima mcu. Kod ce biti neuporedivo kraci.
[ elektrostudio @ 06.02.2012. 12:02 ] @
@dzigi021, ne brini za velicinu hex fajla - 3kb nije nista. Naime u hex fajlu prvo ide adresa 4hex karaktera , pa : , pa bajtovi pri cemu ide 2hex karaktera za 1bajt. Okaci poslednjih 10 redova hex-a i odatle cu objasniti sta je sta, a jos bolje je ako ima .lst file jer ces u njemu naci sve
[ dzigi021 @ 06.02.2012. 12:20 ] @
@elektroservis mmmmm na poslu sam a kuci mi je fail u kompu,znaci ja za ovo malo na kad na hex fail uradim proptis dobijem 2,3kb a govore da u u ovaj pik staje 14kb zato se bojim da nece stati,ako je tako kao sto ti govoris bilo bi super ne znam dali da nastavim da ga kucam ili da menjam nesto
[ dzigi021 @ 06.02.2012. 12:23 ] @
@goran68 mislis ako bi palio pumpe na istom portu da bi bijo mnogo manji kod?
[ dzigi021 @ 06.02.2012. 12:51 ] @
blizu mi je servis tako da sam trkno do kuci eco ge hej ts asm kako sada da ubacim mmm @zoran nemoj zameriti sto je nepregledno stvarno pokusavam ne znam drugcije da ubacim,miozda i sppem sa cod aj probacu
Code:
:
; PICBASIC PRO(TM) Compiler 2.60, (c) 1998, 2009 microEngineering Labs, Inc. All Rights Reserved.
PM_USED EQU 1

INCLUDE "16F877A.INC"


; Define statements.
#define CODE_SIZE 8
#define osc 20

RAM_START EQU 00020h
RAM_END EQU 001EFh
RAM_BANKS EQU 00004h
BANK0_START EQU 00020h
BANK0_END EQU 0007Fh
BANK1_START EQU 000A0h
BANK1_END EQU 000EFh
BANK2_START EQU 00110h
BANK2_END EQU 0016Fh
BANK3_START EQU 00190h
BANK3_END EQU 001EFh
EEPROM_START EQU 02100h
EEPROM_END EQU 021FFh

R0 EQU RAM_START + 000h
R1 EQU RAM_START + 002h
R2 EQU RAM_START + 004h
R3 EQU RAM_START + 006h
R4 EQU RAM_START + 008h
R5 EQU RAM_START + 00Ah
R6 EQU RAM_START + 00Ch
R7 EQU RAM_START + 00Eh
R8 EQU RAM_START + 010h
FLAGS EQU RAM_START + 012h
GOP EQU RAM_START + 013h
RM1 EQU RAM_START + 014h
RM2 EQU RAM_START + 015h
RR1 EQU RAM_START + 016h
RR2 EQU RAM_START + 017h
_blok EQU RAM_START + 018h
_pritisak EQU RAM_START + 019h
_PORTL EQU PORTB
_PORTH EQU PORTC
_TRISL EQU TRISB
_TRISH EQU TRISC
#define _pumpa1 _PORTA??0
#define _pumpa2 _PORTA??1
#define _pumpa3 _PORTA??2
#define _pumpa4 _PORTA??3
#define _pobuda _PORTE??2
#define _taster _PORTE??1
#define _pumpa5 _PORTD??7
#define _pumpa6 _PORTD??6
#define _pumpa7 _PORTD??5
#define _pumpa8 _PORTD??4
#define _pumpa9 _PORTD??3
#define _pumpa10 _PORTD??2
#define _pumpa11 _PORTD??1
#define _pumpa12 _PORTD??0
#define _pumpa13 _PORTC??7
#define _pumpa14 _PORTC??6
#define _pumpa15 _PORTC??5
#define _pumpa16 _PORTC??4
#define _pumpa17 _PORTC??3
#define _pumpa18 _PORTC??2
#define _pumpa19 _PORTC??1
#define _pumpa20 _PORTC??0
#define _PORTA??0 PORTA, 000h
#define _PORTA??1 PORTA, 001h
#define _PORTA??2 PORTA, 002h
#define _PORTA??3 PORTA, 003h
#define _PORTE??2 PORTE, 002h
#define _PORTE??1 PORTE, 001h
#define _PORTD??7 PORTD, 007h
#define _PORTD??6 PORTD, 006h
#define _PORTD??5 PORTD, 005h
#define _PORTD??4 PORTD, 004h
#define _PORTD??3 PORTD, 003h
#define _PORTD??2 PORTD, 002h
#define _PORTD??1 PORTD, 001h
#define _PORTD??0 PORTD, 000h
#define _PORTC??7 PORTC, 007h
#define _PORTC??6 PORTC, 006h
#define _PORTC??5 PORTC, 005h
#define _PORTC??4 PORTC, 004h
#define _PORTC??3 PORTC, 003h
#define _PORTC??2 PORTC, 002h
#define _PORTC??1 PORTC, 001h
#define _PORTC??0 PORTC, 000h
INCLUDE "UNTITLED.MAC"
INCLUDE "PBPPIC14.LIB"

INPUT?T _taster
OUTPUT?T _pobuda
OUTPUT?T _pumpa1
OUTPUT?T _pumpa2
OUTPUT?T _pumpa3
OUTPUT?T _pumpa4
OUTPUT?T _pumpa5
OUTPUT?T _pumpa6
OUTPUT?T _pumpa7
OUTPUT?T _pumpa8
OUTPUT?T _pumpa9
OUTPUT?T _pumpa10
OUTPUT?T _pumpa11
OUTPUT?T _pumpa12
OUTPUT?T _pumpa13
OUTPUT?T _pumpa14
OUTPUT?T _pumpa15
OUTPUT?T _pumpa16
OUTPUT?T _pumpa17
OUTPUT?T _pumpa18
OUTPUT?T _pumpa19
OUTPUT?T _pumpa20
MOVE?CB 001h, _blok
MOVE?CB 000h, _pritisak
LOW?T _pumpa1
LOW?T _pumpa2
LOW?T _pumpa3
LOW?T _pumpa4
LOW?T _pumpa5
LOW?T _pumpa6
LOW?T _pumpa7
LOW?T _pumpa8
LOW?T _pumpa10
LOW?T _pumpa11
LOW?T _pumpa12
LOW?T _pumpa13
LOW?T _pumpa14
LOW?T _pumpa15
LOW?T _pumpa16
LOW?T _pumpa17
LOW?T _pumpa18
LOW?T _pumpa19
LOW?T _pumpa20

LABEL?L _program
CMPNE?TCL _taster, 000h, L00001
PAUSE?C 0C8h
ADD?BCB _pritisak, 001h, _pritisak
CMPNE?BCL _pritisak, 003h, L00003
MOVE?CB 001h, _pritisak
LABEL?L L00003
CMPNE?BCL _pritisak, 002h, L00005
ADD?BCB _blok, 001h, _blok
LABEL?L L00005
LABEL?L L00001
CMPNE?BCL _blok, 001h, L00009
HIGH?T _pumpa1
HIGH?T _pumpa2
HIGH?T _pumpa3
HIGH?T _pumpa4
GOTO?L L00008
LABEL?L L00009
CMPNE?BCL _blok, 002h, L00010
LOW?T _pumpa1
LOW?T _pumpa2
LOW?T _pumpa3
LOW?T _pumpa4
HIGH?T _pumpa1
HIGH?T _pumpa2
HIGH?T _pumpa3
HIGH?T _pumpa5
GOTO?L L00008
LABEL?L L00010
CMPNE?BCL _blok, 003h, L00011
LOW?T _pumpa1
LOW?T _pumpa2
LOW?T _pumpa3
LOW?T _pumpa5
HIGH?T _pumpa1
HIGH?T _pumpa2
HIGH?T _pumpa3
HIGH?T _pumpa6
GOTO?L L00008
LABEL?L L00011
CMPNE?BCL _blok, 004h, L00012
LOW?T _pumpa1
LOW?T _pumpa2
LOW?T _pumpa3
LOW?T _pumpa6
HIGH?T _pumpa1
HIGH?T _pumpa2
HIGH?T _pumpa3
HIGH?T _pumpa7
GOTO?L L00008
LABEL?L L00012
CMPNE?BCL _blok, 005h, L00013
LOW?T _pumpa1
LOW?T _pumpa2
LOW?T _pumpa3
LOW?T _pumpa7
GOTO?L L00008
LABEL?L L00013
CMPNE?BCL _blok, 006h, L00014
HIGH?T _pumpa1
LABEL?L L00014
LABEL?L L00008
PAUSE?C 0C8h
GOTO?L _program
END?

END

[ dzigi021 @ 06.02.2012. 12:57 ] @
Stvarno se izvinjavam svima,al neumam da uvucem drukcije cod
[ dzigi021 @ 06.02.2012. 14:00 ] @
Drugari moji a sta kazete ako bi napravio na pocetku case proveru na jednoj labeli a dole palio i gasio pumpe a sa komandom gosub vracao program na rpoveru,posto meni se uvek jedna pumpa pali i gasi dali bi to bio manji hex fail
[ goran_68 @ 06.02.2012. 14:03 ] @
O tome ti i pricam. Treba samo da definisies pravilo po kome se pumpe pale odnosno gase.
[ shpiki @ 06.02.2012. 14:12 ] @
Bitno da si krenuo da razmisljas na drugaciji nacin - i to je napredak...
A sto se code tagova tice, ae ovako, peske:
pre k0da koji mislis da kopiras napisi [ code] (bez razmaka)
pa kopiraj text koji treba (k0d)
zatim napisi [/ code] (naravno opet bez razmaka).

Pozdrav.
[ dzigi021 @ 06.02.2012. 14:14 ] @
@goran znaci da napravim jedan pod program na koji cu ga uvek vracati.a kada krenu pumpe uiz drugog reda tj drugi broj onda opet definisem jesam li u pravu?
[ dzigi021 @ 06.02.2012. 14:24 ] @
e xvala shpiki nisam znao jos jednom se izvinjavam
[ dzigi021 @ 06.02.2012. 14:39 ] @
dada ovako je mnogo manje mozete li mi samo reci dali je uredu kako sam poceo da kucam 1.28mb je sada velicina hex
Code:
 define osc 4
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pobuda= porte.2
symbol taster = porte.1
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0
input taster
output pobuda
output pumpa1
output pumpa2
output pumpa3
output pumpa4
output pumpa5
output pumpa6
output pumpa7
output pumpa8
output pumpa9
output pumpa10
output pumpa11
output pumpa12
output pumpa13
output pumpa14
output pumpa15
output pumpa16
output pumpa17
output pumpa18
output pumpa19
output pumpa20
blok var byte
blok = 1
pritisak var byte
pritisak = 0
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6 :
low pumpa7 : low pumpa8 : low pumpa10 : low pumpa11 : low pumpa12: low pumpa13:
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19:
low pumpa20

program:
if taster = 0 then
pause 200 
pritisak = pritisak + 1
if pritisak = 3 then pritisak = 1
if pritisak = 2 then blok = blok + 1
endif

select case blok

high pumpa1 : high pumpa2 : high pumpa3 
case 1


high pumpa4

gosub program
low pumpa4

high pumpa5
gosub program
low pumpa5

high pumpa6
gosub program
low pumpa6

high pumpa7
gosub program
low pumpa7


end select
 
[ dzigi021 @ 06.02.2012. 15:25 ] @
e jos samo ovo pitanje postavio sam novu proveru dali sam to dobro uradio?ako jesam super hex je sada 1.85md
Code:
 define osc 4
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pobuda= porte.2
symbol taster = porte.1
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0
input taster
output pobuda
output pumpa1
output pumpa2
output pumpa3
output pumpa4
output pumpa5
output pumpa6
output pumpa7
output pumpa8
output pumpa9
output pumpa10
output pumpa11
output pumpa12
output pumpa13
output pumpa14
output pumpa15
output pumpa16
output pumpa17
output pumpa18
output pumpa19
output pumpa20
blok var byte
blok = 1
pritisak var byte
pritisak = 0
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6 :
low pumpa7 : low pumpa8 : low pumpa10 : low pumpa11 : low pumpa12: low pumpa13:
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19:
low pumpa20 :low pobuda

pocetak:
if taster = 0 then
pause 200 
pritisak = pritisak + 1
if pritisak = 3 then pritisak = 1
if pritisak = 2 then blok = blok + 1
endif
program:
select case blok

high pumpa1 : high pumpa2 : high pumpa3
high pobuda
pause 500
low pobuda
return
case 1
high pumpa4
gosub program
low pumpa4

high pumpa5
gosub program
low pumpa5

high pumpa6
gosub program
low pumpa6

high pumpa7
gosub program
low pumpa7

high pumpa8
gosub program 
low pumpa8

high pumpa9
gosub program
low pumpa9

high pumpa10
gosub program
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa10

program1:
case 2
high pumpa1 : high pumpa2 : high pumpa4  
high pobuda
pause 500
low pobuda
return

high pumpa5
gosub program1
 
 end select

 
[ dzigi021 @ 06.02.2012. 15:54 ] @
m sad gledam pa tu se samo vrti brojevi jer moze nekako da se napravi brojac:koji ce sam listati da nekucam jer samo se zadnja dva broja paljenja menjaju stalno a ova dva povremeno promeni jednom ili dvaput
[ ZAS011 @ 06.02.2012. 18:02 ] @
Auuuu, al' ce tebi ova zadnja varijanta da prsne k'o casa o patos. Imaces Stack Overflow/Underflow i zakucan kontroler cim pocnes da klikces po tasteru.

Imas pozivanje podprograma iz samog sebe -> rekurzija
[ elektrostudio @ 06.02.2012. 18:03 ] @
Ocigledno zelis da se redom pale pumpe 1, pa 2 a ugasi 1, pa3 a ugasi2 - zasto ne bi uzeo i deklarisao promenjivu velicine 16bit-a i samo shiftujes jedinicu ulevo? Ako hoces po dve pumpe u radu inicijalno stavi 3 (rade pumpa 1i2) pa kad siftujes dobijes pumpu 2i3 u radi itd.

var pumpe;

pumpe=1; - pokreces prvu pumpu

pa usledecem slucaju pumpe=pumpe*2, pa opet pumpe=pumpe*2 ....

odnosno pumpe=pumpe rotate left, ....
[ ZAS011 @ 06.02.2012. 18:17 ] @
Vlado, Igor ocigledno tyek pocinje da se bavi programiranjem, nemoj da ga zbunjujes c-olikim/pascal-olikim pisanjem

u PBP/Proton+ siftovanje se vrsi pomocu

Code:
pumpe var word

promenljiva = promenljiva << 1


s time sto se mora voditi racuna o broju siftovanja/mnozenja sa 2 posto nema rotacije kroz Carry.

[ elektrostudio @ 06.02.2012. 18:25 ] @
Zorane, racunao sam da zna osnove PBP (moje izvinjenje). Ja inace to uradim u asm tako da su ovo samo smernice a ne program. Inace kako sam video sto je odradio PBP posle kompajliranja kod je nekih cca 200byte-a tako da bez problema staje u 16F877
[ dzigi021 @ 06.02.2012. 19:06 ] @
pumpe var word

promenljiva = promenljiva << 1
zorane dali mozes da mi objasnis ovo kako radi
[ ZAS011 @ 06.02.2012. 19:19 ] @
Mnozi sa 2

Inace, PBP/MCS ima dobar Help, tu pise svastanestopametno, samo treba citati.
[ Genie_1984 @ 06.02.2012. 19:54 ] @
Ako je promenljiva Pumpe=1

onda pumpe=pumpe<<1 radi sledeće (brojevi su u binarnom obliku)

(00000001) << 1 = (00000010)

pa sledeći put pumpe=pumpe<<1 bi bilo

(00000010) << 1 = (00000100)

a pumpe=pumpe>>1 "vraćaju" nazad

(00000100) >> 1 = (00000010)
[ ZAS011 @ 06.02.2012. 20:06 ] @
00000001 * 10 = 00000010 => 1 * 2 = 2
00000010 * 10 = 00000100 => 2 * 2 = 4

binarno decimalno
00000001 1 0*27 + 0*26 + 0*25 + 0*24 + 0*23 + 0*22 + 0*21 + 1*20
00000010 2 0*27 + 0*26 + 0*25 + 0*24 + 0*23 + 0*22 + 1*21 + 0*20
00000011 3 0*27 + 0*26 + 0*25 + 0*24 + 0*23 + 0*22 + 1*21 + 1*20
...
11111111 255 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20

surova matematika

Siftovanje u levo je isto sto i mnozenje sa 2 a siftovanje u desno isto sto i deljenje sa 2.

"promenljiva = promenljiva << 1" je isto sto i "promenljiva = promenljiva * 2"
"promenljiva = promenljiva << 2" je isto sto i "promenljiva = promenljiva * 4"
"promenljiva = promenljiva << 3" je isto sto i "promenljiva = promenljiva * 8"
[ dzigi021 @ 07.02.2012. 01:15 ] @
citam i citam na korak sam da ukapiram
[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 03:05 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 03:26 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 04:02 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 04:23 GMT+1]
[ dzigi021 @ 07.02.2012. 02:18 ] @
Ili Covek je nakon cigarete pametniji a mozda i nije hehe
drugari jer vi mozda mislite na ovo:
u pic basicu 1-upaljen 0-ugasen
pic 16f877
port ima 8 pinova
znaci
0000001-na b.0-5v
pomeranje nalevo
0000010-na b.1-5v
pomera nalevo
pomera nalevo
0000100-na b.2-5v
pomera nalevo
0001000-na b.3-5v
al opet kako bi uradio proveru
jer njega mirni kontakt releja koji je vezan na ermostat impulsom pomera
a ima dosta provera

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 03:29 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 03:41 GMT+1]
[ dzigi021 @ 07.02.2012. 03:29 ] @
cek cek siftovanje je pomeranje niza bitova
dali bi ja mogao definisati ceo port kao izlazni
i tu kucati paljenje pumpi ali Da ne promeni bez impulsa
znacu kucao bi sve,Dali bi imao mesta?
za porta
TRISA = 0
1111000
kad dobije impuls krene dalje
1110100
kad dobije impuls krene dalje
1110010
kad dobije impuls krene dalju
1110001
kucao bi sva paljenja koja imam nije problem
samo kako da napravim proveru da stoji program dok nedobije impuls


[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 05:19 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 05:22 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 05:23 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 05:27 GMT+1]

[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 05:28 GMT+1]
[ ZAS011 @ 07.02.2012. 10:20 ] @
Ti si resio da se u "sitne sate", kao pocetnik, uplices k'o pile u kucine.

Jedan savet: ako hoces da se ovakvim stvarima bavis ozbiljnije, kupi neki razvojni sistem, imas kod MikroElektronike. Sve sto napises i izkompajliras, sjuris u uC i odmah probas. Posto ti je, u onome sto si do sada postavio od koda PORTB slobodan, tu nakacis LCD i ispi sujes statusne poruke.
[ dzigi021 @ 07.02.2012. 11:17 ] @
znaci nevalja nista he znao sam,da sitni sati juce mi je drugar dobio sina pa sam kod njege zaglavio,kad sam dosao kuci seo malo za komp i do pola sest,a od sedam radim nema veze glava mi pada al mlad sam jos mogu sva sreca juce sam sokove pijo
no zorane ideja za proveru je dobra,napravicu ali sa ledicama pa vidim koja se kako pali,a sto se tice mog poslednjeg piskaranja dali bi port b radio tako kako sam zamislio
dali di palio i gasio te pinove?
[ rsinisa @ 07.02.2012. 12:51 ] @
Za početak pročitaj ovo
http://www.elitesecurity.org/t...imizacija-programa-pisanih-PBP
pa ćeš uspeti da uštediš nešto programske memorije.

Kao drugo, definiši TAČNO šta treba da se radi u zavisnosti od vrednosti promenljive koju testiraš. Ja sam ovu temu pročitao jednom i nisam uspeo da zaključim da li ti znaš tačno šta treba da se radi u zavisnosti od vrednosti. Probaj da nam nacrtaš/napišeš tabelu stanja ili napišeš zakonitost (ukoliko postoji) pa ćemo da vidimo. Možda ima i neko drugo rešenje.

Pozdrav.
Sinisha
[ dzigi021 @ 07.02.2012. 13:23 ] @
sinisa treba da palim pumpe i da menjam kombinacije
kad se upale cetrii pumpe nista se nemenja dok se neda impuls na mikrokontroler
ma meni trebe
kod koji bi otkucao samo neko da mi da primer
znaci trebe da se pale
1,2,3,4 pumpa
pa provera dok nedonije impuls stoji na ovoj kombinaciji
kad dobije impuls predje u drugi red i uradi ovo
upali 1,2,3,5 pumpu
i tako dalje
znaci meni trebe blanko program na kom bi ja mogao menjati kombinacije
[ rsinisa @ 07.02.2012. 13:32 ] @
Apsolutno sam razumeo da su tebi potrebne kombinacije, ali me zanima da li te kombinacije mogu nekako da se izračunaju na osnovu vrednosti promenljive koju pratiš, tj. ima li tu nekih zakonitosti. Jer ako ima, može da se desi da kombinacija može da se izračuna, a ne da se zadaje svaka pojedinačno.

Pozdrav.
Sinisha
[ dzigi021 @ 07.02.2012. 14:15 ] @
moze da se napravi brojcanik koji bi se vrteo od broja do broja,al nov sam pa mi je to komplikovano-tj ne znam la znam da otkucam svaku kombinaciju,zato sam tako krenuo poz sinisa
samo simisa kako da radim proveru za taster a da mi sve stane u pic
ima dosta promena


[Ovu poruku je menjao dzigi021 dana 07.02.2012. u 15:59 GMT+1]
[ veselinovic @ 07.02.2012. 16:09 ] @
Nije bas najjasnije sta zelis.
Ajde redom.
Imas jedan termostat kao ulazni parametar. termostat ima jedan kontakt.
Izlaz je 24 pumpe.
Zelis da kad upalis spravu ( pritisnes taster start - jos jedan ulazni parametar) se desi sledece :
Upali pumpu 1,2,3 i 4.
Kad termostat otvori gasis pumpu br 4 ( 1,2 i 3 rade i dalje).
Iduce otvaranje termostata dasi pumpu 4, a pali pumpu 5 ( 1,2 i 3 rade i dalje)
i tako analognmo do pumpe 24.
Sta se desi poslije palis opet 4 ( 1,2 i 3 su stalnoi upaljene)?

Probaj malo da razmislis i definise problem. Ako nista napravi tabelu u exelu ili u wordu.
Problem je lako rijesiv ( ako Sinisa ne ukomplikuje sa ineraptima :) ).
[ ZAS011 @ 07.02.2012. 16:45 ] @
Sve to moze bez interapta samo treba NATENANE razmisliti i lepo precizno i koncizno napisati sta se zeli, a ne:

ja bio onako da kombinujem i obrcemprevrcem (samo koga ) i da to nesto u sekvencama dok impuls dodje ne dodje i takotomislimda

dzigi021 ce u svakom slucaju imati pomoc i od mene, samo ovde na forumu, kada bude znao tacno sta hoce, a da mu "gazda" ne "zavrne siju".
[ dzigi021 @ 07.02.2012. 18:20 ] @
zorane znam ja sta hocu da napravim,al neide,nikako,al ocu sam naravno uz neciju pomoc da sve iskuckam,hehe"a da mi gazda nezavrne siju"sad znam da znas i ti sta hocu evo to je to jer mi mozes pomoci ovde na FORUMU.kako da resim to
[ goran_68 @ 07.02.2012. 18:58 ] @
Jel možeš ti lepo da napraviš jednu tabelu u kojoj treba da opišeš kad šta treba da bude uključeno a šta isključeno. Jednostavno:

korak pumpa1 pumpa2 pumpa3 ... pumpan ... pumpa20

1 ON ON ON OFF OFF
2 ON ON OFF OFF OFF
.
.
.

i tako redom do kraja. Ovako si ga mnogo brate zakomplikovao. Niko živi ne zna šta tačno želiš. I to traje na tri strane...


[ dzigi021 @ 07.02.2012. 19:13 ] @
imam ja tabelu napravljenu u exselu al ima jako puno kombinacuija ne znam kako da ih ubacim u pic 540 kombinacija ima
[ ZAS011 @ 07.02.2012. 19:38 ] @
Mi znamo da TI znas sta hoces, jedino NAMA nije jasno sta hoces posto, cini mi se, to ne umes lepo i koncizno da nam objasnis.

Nije problem u "kuckanju po tastaturi" vec negde drugde. Matematika je cudo i sa njom moze svasta da se odradi. Jedino ne shvatam citavu ovi tvoju zavrzlamu sa 24 pumpe i samo JEDNIM ulazom.

A sto se "onoga" sto se zove "to sto ti hoces", znas sta je dugo stajalo i skupljalo prasinu. Punto, ECU, iznalazenje odgovarajuce kombinacije prekidaca , tu nema pomoci, nadam se da znas zasto.
[ Genie_1984 @ 07.02.2012. 19:44 ] @
Pa da vidimo taj excel fajl....
možda nam onda bude jasno pa budemo mogli da ti pomognemo.

Ovako,dok samo ti znaš šta hoćeš, ništa od naše pomoći...
[ ZAS011 @ 07.02.2012. 19:46 ] @
Aj em aut of dis
[ dzigi021 @ 07.02.2012. 19:57 ] @
nemerem ja ovo raditi glup sam ja za to ostajem ja kod auto elektronike,ma nije to zoki za punta,neumem ja ovo uraditi i sta sad kad sam ko k... glup hvala svima al kad neide neide
[ dzigi021 @ 07.02.2012. 20:07 ] @
Sad je meni sve jasno zorane...jbg tako ispalo neradim u tom servisu vec pola godin e,izvini radi toga
[ dzigi021 @ 08.02.2012. 16:11 ] @
Ajde da probam jos ovo danas mi palo na pamet dali bi ovako radilo?
define osc 4
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pobuda= porte.2
symbol taster = porte.1
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0
input taster
output pobuda
output pumpa1
output pumpa2
output pumpa3
output pumpa4
output pumpa5
output pumpa6
output pumpa7
output pumpa8
output pumpa9
output pumpa10
output pumpa11
output pumpa12
output pumpa13
output pumpa14
output pumpa15
output pumpa16
output pumpa17
output pumpa18
output pumpa19
output pumpa20
blok var byte
blok = 1
pritisak var byte
pritisak = 0
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6 :
low pumpa7 : low pumpa8 : low pumpa10 : low pumpa11 : low pumpa12: low pumpa13:
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19:
low pumpa20 :low pobuda

pocetak:
if taster = 0 then
pause 200
pritisak = pritisak + 1
if pritisak = 3 then pritisak = 1
if pritisak = 2 then blok = blok + 1
endif
program:
select case blok

case 1
end select
return
high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
gosub pocetak
low pumpa4
high pumpa5
gosub pocetak
low pumpa5
high pumpa6
gosub pocetak
low pumpa6
high pumpa7
gosub pocetak
low pumpa7
high pumpa8
gosub pocetak
low pumpa9
high pumpa10
gosub pocetak
low pumpa3 :low pumpa10
high pumpa4 : high pumpa5
gosub pocetak
low pumpa5
high pumpa6
gosub pocetak
low pumpa6
high pumpa7
gosub pocetak
low pumpa7
high pumpa8
gosub pocetak
low pumpa8
high pumpa9
gosub pocetak
low pumpa9
high pumpa10
gosub pocetak
[ Genie_1984 @ 08.02.2012. 16:28 ] @
Ne bi tako radilo.... Da li si probao simulaciju u proteusu? Taj program ne bi radio ništa jer si koristio RETURN a da pre toga nisi pozvao podprogram (nema povratne adrese na steku.

I dalje ne shvatam kojim redolsedom se pale/gase pumpe...pa ne bi bilo loše da postaviš taj tvoj EXCEL fajl....

[ dzigi021 @ 08.02.2012. 16:40 ] @
evo ga obican brojac recimo


[Ovu poruku je menjao dzigi021 dana 08.02.2012. u 17:51 GMT+1]

[Ovu poruku je menjao dzigi021 dana 08.02.2012. u 17:55 GMT+1]
[ dzigi021 @ 08.02.2012. 16:56 ] @
nije sve iskucano al evo za prve 4
[ dzigi021 @ 08.02.2012. 17:04 ] @
jer ovo bolje?
Code:
define osc 4
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3
symbol pobuda= porte.2
symbol taster = porte.1
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0
input taster
output pobuda
output pumpa1
output pumpa2
output pumpa3
output pumpa4
output pumpa5
output pumpa6
output pumpa7
output pumpa8
output pumpa9
output pumpa10
output pumpa11
output pumpa12
output pumpa13
output pumpa14
output pumpa15
output pumpa16
output pumpa17
output pumpa18
output pumpa19
output pumpa20
blok var byte
blok = 1
pritisak var byte
pritisak = 0
low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6 :
low pumpa7 : low pumpa8 : low pumpa10 : low pumpa11 : low pumpa12: low pumpa13:
low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19:
low pumpa20 :low pobuda

pocetak:
if taster = 0 then
pause 200 
pritisak = pritisak + 1
if pritisak = 3 then pritisak = 1
if pritisak = 2 then blok = blok + 1
endif
program:
select case blok

case 1
end select

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
gosub pocetak
return
low pumpa4
high pumpa5
gosub pocetak

return 
low pumpa5
high pumpa6
gosub pocetak
return
low pumpa6
high pumpa7
gosub pocetak
return
low pumpa7
high pumpa8
gosub pocetak
return
low pumpa9
high pumpa10
gosub pocetak
return
low pumpa3 :low pumpa10
high pumpa4 : high pumpa5
gosub pocetak
return
low pumpa5
high pumpa6 
gosub pocetak
return
low pumpa6
high pumpa7
gosub pocetak
return
low pumpa7
high pumpa8
gosub pocetak
return
low pumpa8
high pumpa9
gosub pocetak
return
low pumpa9
high pumpa10
gosub pocetak
return
[ ZAS011 @ 08.02.2012. 17:06 ] @
Kod koji si napisao nema sanse da radi, evo ti sa malecnim izmenama i malko komentara.
Code:
define osc 4
cmcon = 7

' Aliasi za bitove portA
symbol pumpa1 = porta.0
symbol pumpa2 = porta.1
symbol pumpa3 = porta.2
symbol pumpa4 = porta.3

' Aliasi za bitove portE
symbol pobuda= porte.2
symbol taster = porte.1

' Aliasi za bitove portD
symbol pumpa5 = portd.7
symbol pumpa6 = portd.6
symbol pumpa7 = portd.5
symbol pumpa8 = portd.4
symbol pumpa9 = portd.3
symbol pumpa10 = portd.2
symbol pumpa11 = portd.1
symbol pumpa12 = portd.0

' Aliasi za bitove portC
symbol pumpa13 = portc.7
symbol pumpa14 = portc.6
symbol pumpa15 = portc.5
symbol pumpa16 = portc.4
symbol pumpa17 = portc.3
symbol pumpa18 = portc.2
symbol pumpa19 = portc.1
symbol pumpa20 = portc.0

input taster
output pobuda


'output pumpa1
'output pumpa2
'output pumpa3
'output pumpa4
'output pumpa5
'output pumpa6
'output pumpa7
'output pumpa8
'output pumpa9
'output pumpa10
'output pumpa11
'output pumpa12
'output pumpa13
'output pumpa14
'output pumpa15
'output pumpa16
'output pumpa17
'output pumpa18
'output pumpa19
'output pumpa20

output porta
output portc
output portd

blok var byte
pritisak var byte

blok = 1
pritisak = 0

'low pumpa1 : low pumpa2 : low pumpa3 : low pumpa4 : low pumpa5 : low pumpa6 :
'low pumpa7 : low pumpa8 : low pumpa10 : low pumpa11 : low pumpa12: low pumpa13:
'low pumpa14 : low pumpa15 : low pumpa16 :low pumpa17 : low pumpa18 :low pumpa19:
'low pumpa20 :low pobuda

porta = 0
portc = 0
portd = 0
low pobuda

'****************************************************************
'* Podprogrami                                                  *
'****************************************************************
pocetak:
if taster = 0 then
    pause 200
    pritisak = pritisak + 1
    if pritisak = 2 then
        blok = blok + 1
    elseif pritisak = 3 then
        pritisak = 1
    endif
'    if pritisak = 3 then pritisak = 1
'    if pritisak = 2 then blok = blok + 1
endif
return

'****************************************************************
'* Glavna programska petlja                                     *
'****************************************************************
program:
select case blok
    case 1 ' kada je 'blok' = 1 izvrsice se sve do kraja programa :)
    porta = %00001111
'    high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
    gosub pocetak
    low pumpa4
    high pumpa5
    gosub pocetak
    low pumpa5
    high pumpa6
    gosub pocetak
    low pumpa6
    high pumpa7
    gosub pocetak
    low pumpa7
    high pumpa8
    gosub pocetak
    low pumpa9
    high pumpa10
    gosub pocetak
    low pumpa3 :low pumpa10
    high pumpa4 : high pumpa5   
    gosub pocetak
    low pumpa5
    high pumpa6
    gosub pocetak
    low pumpa6
    high pumpa7
    gosub pocetak
    low pumpa7
    high pumpa8
    gosub pocetak
    low pumpa8
    high pumpa9
    gosub pocetak
    low pumpa9
    high pumpa10
    gosub pocetak 
end select

' Gde su ti ostali CASE uslovi?
[ dzigi021 @ 08.02.2012. 17:10 ] @
pa mesto case sam ubacio gosub rekao si da komanda case uzima puno mesta,zato uvek sa gosubom vracam na case 1 jer ne znam sa kojom drugom komandom da uradim proveru tastera
[ dzigi021 @ 08.02.2012. 17:23 ] @
Cekaj zorane ja dosta promena imam dali meni kombinacije paljenje,tj gasenje uzima dosta mesta ili case provere?
ako kombinacije uzimaju puno mesta napravicu posto portovi nisu mesoviti mogu kroz ceo port binarnim brojem da napravim jedno paljenje,dali bi to stalo u pic,kolko promena mogu tako proveriti?
[ goran_68 @ 08.02.2012. 17:48 ] @
Moj predlog. Neka mu neko pokaze kako se rade nizovi u bejziku pa da onda napuca tu tabelu u programsku memoriju i zove vrednosti za svaki port na osnovu indeksa (blok). Taman ce da nauci i nizove.
[ ZAS011 @ 08.02.2012. 18:16 ] @
Tvoj PODPROGRAM koji se zove "pocetak:" izmedju svoga "imena" i povratka u glavni program -> "return" nece uraditi nista ukoliko nisi pritisnuo taster pa ce se svaki put posle povratka u glavni program izvrsavati sledeca naredba i sve tako redom do kraja.

Evo ti kako bi izgledalo, nekako, to sto predpostavljam da si zamislio.
Code:
define osc 4
cmcon = 7

' Aliasi za bitove portA
symbol Pumpa1 = porta.0
symbol Pumpa2 = porta.1
symbol Pumpa3 = porta.2
symbol Pumpa4 = porta.3

' Aliasi za bitove portE
symbol Pobuda= porte.2
symbol Taster = porte.1

' Aliasi za bitove portD
symbol Pumpa5 = portd.7
symbol Pumpa6 = portd.6
symbol Pumpa7 = portd.5
symbol Pumpa8 = portd.4
symbol Pumpa9 = portd.3
symbol Pumpa10 = portd.2
symbol Pumpa11 = portd.1
symbol Pumpa12 = portd.0

' Aliasi za bitove portC
symbol Pumpa13 = portc.7
symbol Pumpa14 = portc.6
symbol Pumpa15 = portc.5
symbol Pumpa16 = portc.4
symbol Pumpa17 = portc.3
symbol Pumpa18 = portc.2
symbol Pumpa19 = portc.1
symbol Pumpa20 = portc.0

' Definisanje ulaznih pinova
input taster

' Definisanje izlaznih pinova
output porta
output portc
output portd
output pobuda

porta = 0
portc = 0
portd = 0
low pobuda

goto program
'****************************************************************
'* Podprogrami                                                  *
'****************************************************************
Pocetak:
'    Cekanje na pritisak na taster
    while taster = 1
        pause 50
    wend
    
'    Ako je taster i dalje pritisnut, ceka se njegovo otpustanje
    while taster = 0
        pause 50
    wend
return

'****************************************************************
'* Glavna programska petlja                                     *
'****************************************************************
Program:
porta = %00001111
gosub pocetak
low pumpa4
high pumpa5

gosub pocetak
low pumpa5
high pumpa6

gosub pocetak
low pumpa6
high pumpa7

gosub pocetak
low pumpa7
high pumpa8

gosub pocetak
low pumpa9
high pumpa10

gosub pocetak
low pumpa3
low pumpa10
high pumpa4
high pumpa5   

gosub pocetak
low pumpa5
high pumpa6

gosub pocetak
low pumpa6
high pumpa7

gosub pocetak
low pumpa7
high pumpa8

gosub pocetak
low pumpa8
high pumpa9

gosub pocetak
low pumpa9
high pumpa10

gosub pocetak 
goto program

end
[ dzigi021 @ 08.02.2012. 19:09 ] @
zorane meni treba kada dobije impuls da predje na druge pumpe,a dok nedobije impuls da stoji
[ dzigi021 @ 08.02.2012. 19:13 ] @
Ja tek sada pocinjem da shvatam binarne brojeve...kako radi
[ dzigi021 @ 08.02.2012. 19:22 ] @
ja tek sada pocinem da shvatam vasu pricu,zasto nebi nasao 10 bitni kontroler i u njega kucao red po red u binarnim brojevima sad sam vas ukapirao!!!jeeeeeeeee
[ dzigi021 @ 08.02.2012. 19:30 ] @
znaci ovaj kod koji je zoran odkucao radi program ide sve dok de ne stisne taster,kad se stisne taster program stoji,kada se taster odpusti program nastavlja dalje odande gde je stao ako je tako to je tooooooooooo
[ ZAS011 @ 08.02.2012. 20:41 ] @
Lose si skapirao.

Program u startu ukljuci prve cetiri pumpe
Code:
porta = %00001111

zatim skoci u Pod Program "Pocetak"
Code:
 Gosub Pocetak

u kome ceka da pritirnes i otpustis taster da bi izvrsio deo programa do sledeceg skoka u podprogram "Pocetak" i tako redom

...


da bi na kraju sve pocelo iz pocetka
Code:
Goto Program
[ dzigi021 @ 08.02.2012. 21:48 ] @
da da to mi treba al izbaci jednu gresku u kompailiranju sad cu okaciti
[ dzigi021 @ 08.02.2012. 22:15 ] @
jao zoki uf al u pod programu dok je taster stisnit treba da se upali pobuda a taj signal treba da traje mozda pola secunde ili secundu koja daje signal modulu da je upalio druge pumpe to sam napisao a nisam ponavljao e meni veceras nema spavanja ima da ga iskucam Puno ti HVALA,po tebi video si tabelu oce kod biti veci od 8mb oce stati u pik?
[ ZAS011 @ 08.02.2012. 22:53 ] @
Nece biti veci od 8Mb, to ti GARANTUJEM.
[ dzigi021 @ 08.02.2012. 22:59 ] @
a kako da dodam onaj rele za pobudu,i dali smem napraviti jos jedan pod program dobro sam razmislio kako cu da iskombinujem sve,i sta je ovaj eror
[ dzigi021 @ 08.02.2012. 23:34 ] @
zoki jer mi mozes dopisati jos to pa da krenem da ga kuckam
[ dzigi021 @ 09.02.2012. 00:53 ] @
zasto non stop izbacuje greskuu kad se kompajlira ovu:
[ dzigi021 @ 09.02.2012. 03:51 ] @
zorane pa jer on ima 8mb?
[ dzigi021 @ 09.02.2012. 04:46 ] @
ovo je 8 kb a kanda tolko mesta ima sta sada?
Code:
define osc 4
adcon1 = 7

' Aliasi za bitove portA
symbol Pumpa1 = porta.0
symbol Pumpa2 = porta.1
symbol Pumpa3 = porta.2
symbol Pumpa4 = porta.3

' Aliasi za bitove portE
symbol Pobuda= porte.2
symbol Taster = porte.1

' Aliasi za bitove portD
symbol Pumpa5 = portd.7
symbol Pumpa6 = portd.6
symbol Pumpa7 = portd.5
symbol Pumpa8 = portd.4
symbol Pumpa9 = portd.3
symbol Pumpa10 = portd.2
symbol Pumpa11 = portd.1
symbol Pumpa12 = portd.0

' Aliasi za bitove portC
symbol Pumpa13 = portc.7
symbol Pumpa14 = portc.6
symbol Pumpa15 = portc.5
symbol Pumpa16 = portc.4
symbol Pumpa17 = portc.3
symbol Pumpa18 = portc.2
symbol Pumpa19 = portc.1
symbol Pumpa20 = portc.0

' Definisanje ulaznih pinova
input taster

' Definisanje izlaznih pinova
output porta
output portc
output portd
output pobuda


goto program
'****************************************************************
'* Podprogrami                                                  *
'****************************************************************
Pocetak:
'    Cekanje na pritisak na taster
    while taster = 1
        pause 50
    wend
pobuda = 1
pause 1000
pobuda = 0    
'    Ako je taster i dalje pritisnut, ceka se njegovo otpustanje
    while taster = 0
        pause 50
    wend
return

'****************************************************************
'* Glavna programska petlja                                     *
'****************************************************************
Program:
high pumpa1 : high pumpa2 : high pumpa3 : high pumpa4
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa4

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa5
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa5

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa6
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa6

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa7

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa8

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa9

high pumpa1 : high pumpa2 : high pumpa3 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa3 : low pumpa10

high pumpa1 : high pumpa2 : high pumpa4 : high pumpa5
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa4 : low pumpa5

high pumpa1 : high pumpa2 : high pumpa4 : high pumpa6
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa4 : low pumpa6

high pumpa1 : high pumpa2 : high pumpa4 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa4 : low pumpa7

high pumpa1 : high pumpa2 : high pumpa4 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa4 : low pumpa8

high pumpa1 : high pumpa2 : high pumpa4 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa4 : low pumpa9

high pumpa1 : high pumpa2 : high pumpa4 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa4 : low pumpa10

high pumpa1 : high pumpa2 : high pumpa5 : high pumpa6
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa5 : low pumpa6

high pumpa1 : high pumpa2 : high pumpa5 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa5 : low pumpa7

high pumpa1 : high pumpa2 : high pumpa5 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa5 : low pumpa8

high pumpa1 : high pumpa2 : high pumpa5 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa5 : low pumpa9

high pumpa1 : high pumpa2 : high pumpa5 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa5 : low pumpa10

high pumpa1 : high pumpa2 : high pumpa6 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa6 : low pumpa7

high pumpa1 : high pumpa2 : high pumpa6 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa6 : low pumpa8

high pumpa1 : high pumpa2 : high pumpa6 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa6 : low pumpa9

high pumpa1 : high pumpa2 : high pumpa6 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa6 : low pumpa10

high pumpa1 : high pumpa2 : high pumpa7 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa7 : low pumpa8

high pumpa1 : high pumpa2 : high pumpa7 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa7 : low pumpa9

high pumpa1 : high pumpa2 : high pumpa7 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa7 : low pumpa10

high pumpa1 : high pumpa2 : high pumpa8 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa8 : low pumpa9

high pumpa1 : high pumpa2 : high pumpa8 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa8 : low pumpa10


high pumpa1 : high pumpa2 : high pumpa9 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa2 : low pumpa9 : low pumpa10

high pumpa1 : high pumpa3 : high pumpa4 : high pumpa5
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa4 : low pumpa5

high pumpa1 : high pumpa3 : high pumpa4 : high pumpa6
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa4 : low pumpa6

high pumpa1 : high pumpa3 : high pumpa4 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa4 : low pumpa7

high pumpa1 : high pumpa3 : high pumpa4 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa4 : low pumpa8

high pumpa1 : high pumpa3 : high pumpa4 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa4 : low pumpa9

high pumpa1 : high pumpa3 : high pumpa4 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa4 : low pumpa10

high pumpa1 : high pumpa3 : high pumpa5 : high pumpa6
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa5 : low pumpa6

high pumpa1 : high pumpa3 : high pumpa5 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa5 : low pumpa7

high pumpa1 : high pumpa3 : high pumpa5 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa5 : low pumpa8

high pumpa1 : high pumpa3 : high pumpa5 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa5 : low pumpa9

high pumpa1 : high pumpa3 : high pumpa5 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa5 : low pumpa10

high pumpa1 : high pumpa3 : high pumpa6 : high pumpa7
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa6 : low pumpa7

high pumpa1 : high pumpa3 : high pumpa6 : high pumpa8
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa6 : low pumpa8

high pumpa1 : high pumpa3 : high pumpa6 : high pumpa9
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa6 : low pumpa9

high pumpa1 : high pumpa3 : high pumpa6 : high pumpa10
gosub pocetak
low pumpa1 :low pumpa3 : low pumpa6 : low pumpa10



[ ZAS011 @ 09.02.2012. 06:58 ] @
Citat:
dzigi021: zoki jer mi mozes dopisati jos to pa da krenem da ga kuckam

Nemam nameru da ti pisem ceo program.
[ dzigi021 @ 09.02.2012. 10:03 ] @
ma ne zoki resi cu ja samo mi reci daci u 16f877 kolko staje?puno tebi hvala i za ovo valjda moge ja dopisati nesto
[ dzigi021 @ 09.02.2012. 10:17 ] @
Dalo mi neko moze preporuciti neki mikro kontroler koji ima par 1-2mb flesh,24izlazna i jedan ulazni pin a da nije surovo tezak za rad
[ rsinisa @ 09.02.2012. 10:42 ] @
Da sam ja na tvom mestu uveo bih u igru neki spoljni EEPROM i onda u njega ubacio kombinacije.

Pozdrav.
Sinisha
[ dzigi021 @ 09.02.2012. 10:50 ] @
dobra ideja ali kako?
[ rsinisa @ 09.02.2012. 11:32 ] @
Internet je čudo, imaš na njemu gomilu primera kako se povezuje EE sa PIC kontrolerima, a i imaš nekih primera, pa čak i u samom uputstvu za PBP. Ništa bez čitanja, veruj mi.

Pozdrav.
Sinisha
[ goran_68 @ 09.02.2012. 11:39 ] @
Ne treba mu EEPROM. Ako taj PBP moze da radi sa nizovima a valjda moze napise nesto ovako i zdravo.
Code:

PORTA = pumpenaportua[i];
PORTB = pumpenaportub[i];
PORTC = pumpenaportuc[i];


gde su pumpenaportua, pumpenaportub, pumpenaportuc nizovi iz njegove tabele.
[ rsinisa @ 09.02.2012. 11:40 ] @
Evo jedna sugestija: pošto imaš 20 pumpi, potrebna su ti 3 bajta i ta 3 bajta "povežeš" sa 3 porta, recimo A, B i D na koje priključiš pumpe. I onda u EE napraviš tako tabelu da ti po 3 bajta predstavljaju jednu kombinaciju i u zavisnosti od promenljive koju pratiš, uzmeš iz EE ta 3 odgovarajuća bajta i to stanje prebaciš na portove. Eto, mislim da sam dovoljno pomogao, više zaista nemam vremena.

Pozdrav.
Sinisha
[ rsinisa @ 09.02.2012. 11:44 ] @
Citat:
goran_68: Ne treba mu EEPROM. Ako taj PBP moze da radi sa nizovima a valjda moze napise nesto ovako i zdravo.

Nemam sad vremena da ulazim u detalje, u nekoj sam gužvi, ali po meni u ovom slučaju jedino sa EE može da odradi to na efikasan, brz i jeftin način, to sa nizovima nije dobro za konkretan slučaj.

Pozdrav.
Sinisha
[ Odin D. @ 09.02.2012. 12:08 ] @
Jeli neko dosad provalio sta je fazon sa tim kombinacijama?
[ elektrostudio @ 09.02.2012. 12:24 ] @
Izgleda niko!!! Verovatno covek ne moze da objasni sta zeli... na zalost tada mu ne mozemo pomoci. Resenje je jednostavno ali nema tabele stanja kombinacija a da svaku kombinaciju radi peske - nema smisla. Najbolje bi bilo da okaci tabelu stanja da vidimo moze li se odraditi minimizacija.
[ veselinovic @ 09.02.2012. 12:46 ] @
Lici na listanje svih kombinacija za daljinski za kola. Mozda grijesim.
[ Odin D. @ 09.02.2012. 13:08 ] @
Za skladistenje 540 kombinacija tih pumpi, potrebno mu je 1620 bajtova, a on je poceo da trazi mikrokontroler sa 1000 puta vecom memorijom.
Pogubi se coek nacisto, al' samo kad bi uspio objasniti sta mu treba, rjesio bi ovo za 20 minuta...
[ ZAS011 @ 09.02.2012. 14:36 ] @
Nisu pumpe u pitanju
[ dzigi021 @ 09.02.2012. 14:46 ] @
@VESELINOVIC koji svaki forum bojkutuje-brise,NARAVNO IMA SVE LEGALNE PROGRAME NA RACUNARU ajde malo znanja pa onda pisi DA BI SE DALJINAC UKODIRAO U KOLA MORA SE DATI KONTAKT PAR PUTA STISNUTI VALENTNI TASTER-U ZAVISNOSTI OD DALJINSKE KOMANDE ILI ALARMA PA TEK TADA SE UKODIRA JEDAN PA DRUGI DALJINAC-------JA NISAM LOPOV,IMAM SVOJU FIRMU U KOJOJ DOBRO SVOJIM ZNOJEM ZARADJUJEM,nepada mi napamet da se bavim kriminalom,A TI SADA AKO OCES SLOBODNO OBRISI I OVAJ FORUM,a znas ko uvek govori o postenju.....IZVINJAVAM SE SVIMA,AL MISLIM DA NISAM OVO NAPISAO DA BI PUKAO
[ dzigi021 @ 09.02.2012. 14:51 ] @
Opet govorim sta god pravim,radim nije PROTIV ZAKONA......A ako o meni mislite da sam kvaran covek necu nikada vise uci ovde,
OPET PONAVLJAM POSTEN SAM COVEK KOJI ZIVI OD RADA A NE PREVARA,TAKO SAM RODJEN TAKO CU I UMRETI,do pet sam je jebavao sa ovim a od 7 asm vec srafio u radionici ma..................a
[ dzigi021 @ 09.02.2012. 14:57 ] @
@elektro studio okacio sam tabelu u exselu je
[ dzigi021 @ 09.02.2012. 15:04 ] @
@zoran pozdrav zoki molim ta cena mi nije bitna dali postoji neki veci pic s vise mesta pocetnik sam GLIUP SAMMMM neumem da odkucam drukcije dali mi mozes preporuciti neki pic
[ veselinovic @ 09.02.2012. 15:14 ] @
Dzigi,
nema razloga za velika slova.
Obrisao sam dva tvoja posta.
1. jer je u suprotnosti sa pravilima foruma o pirateriji, ali ne zato sto su kod mene legalni programi, nego sto je to zabranjeno-ako google nadje pirateriju brise forum sa liste pretrage - to su uslovi sa kojim si se slozio kad si se registrovao.
2. post ti je obrisan jer si upao bez veze i reda ljudima, iako si imao vec isto pitanje.

E, sad ti uporno zamotavas upotrebu uredjaja, a radis kao autoelektricar-elektronicar, i to se vidi odavde :http://www.elitesecurity.org/t415503-0-Upravljanje-relejima , a i zanimas se za alarme : http://www.elitesecurity.org/t442121-0#3008779

Ili ces otkriti namjenu uredjaja, ili ce svako moci da pretpostavi sta radis. Tako je to i slus.
[ dzigi021 @ 09.02.2012. 17:12 ] @
Izvinjavam se Veselinovicu,nocima nespavam,a danju radim sam na sebe sam ljut,jer sam glup kao tri da nelajem namena uredjaja je upravljanje solarnim postupkom,al ne znam kako da je resim
dali ima neki brojac?ili neki vece picda bi najzad resio ovo
[ veselinovic @ 09.02.2012. 17:41 ] @
Dzigi,
ajde se malo urazumi ( ne mislim na tvoj post upucen meni, nego na namjenu uredjaja).
Mnogo si labilan, pogledaj malo svoje postove pa skontaj sam sta zelis.
Dok se malo ne sredis ide katanac, jer je za sada sve vec receno.