[ dzigi021 @ 05.02.2012. 20:25 ] @
Molim vas zanima me kolke velicine hex fail staje u pik16f877. |
[ dzigi021 @ 05.02.2012. 20:25 ] @
[ 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. Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|