[ boogi @ 13.11.2013. 15:15 ] @
[ boogi @ 13.11.2013. 15:15 ] @
[ goran_68 @ 13.11.2013. 20:18 ] @
Jesi li proveravao da li imaš stabilnih 5V za napajanje logike kad krene da brljavi?
[ boogi @ 13.11.2013. 20:22 ] @
Obzirom da sam tvorac sve te skalamerije od nule ( hardver + softver ) može i pitanje za dodatna objasnjenja.
Kuc , Kuc ima li koga? ![]() Telepatija! Ja pišem - covjek postavlja pitanje! Jesam 5,03V mjereno digitalnim instumentom. [ Zlatni_bg @ 13.11.2013. 20:24 ] @
Verujem da bi dobro doslo par kondenzatora tu.
[ boogi @ 13.11.2013. 20:26 ] @
Na svakoj 7-segmentnoj polči na +5V ima 100nF.znaci ukupno 13 kom jer na zadnjem bloku postoji i dvotacka kojom se uppravlja sa 74hc595. inace 5V je dodijeno iz 7805 regulatora. Elko od 100uf + 100n na ulazu i 10uF i 100n na izlazu iz 7805. cijenim da je na 30-40 stepeni celzijusa u radu - mlak.
[ macolakg @ 13.11.2013. 20:27 ] @
Decoupling na displejima lokalno, terminacija flet kablova na krajevima sa nekim otporom (probati od 1K do 330R).
A ako treba i fazno pomeriš data malo iza kloka, ili obrnuto. Sve zavisi kako si zamislio prenos (neg. poz. logika ili šta već). Šift registri moraju već imati stabilno stanje data u trenutku kada se pojavi tranzicija clock koja usempluje data u flop. [ boogi @ 13.11.2013. 20:39 ] @
Hm. Kablovi nisu flet nego alarmni 6x0,22. Probavao sam sa 100R pa je radio samo prvi blok , drugi ne(bila su prikljucena 2 i kabal ka trecem).
Podaci idu otprilike ovako: 16F877 postavi data na odredjeni pin, saceka 10mS, setuje CLK sa 0 na 1 , ostavi ga 10mS, setuje CLK sa 1 na 0 , saceka 10mS, odradi iz početka sve navedeno za preostalih 7 bitova ( za 1 segment) , saceka 750mS, setuje ENABLE , saceka 10mS, resetuje ENABLE , saceka 10mS i onda na sledeci bajt. Smatram da je 10mS i više nego dovoljno. http://www.google.ba/imgres?im...yzBtKkgJAO&ved=0CCoQ9QEwAQ Displej radii na bazi ovoga PDF-a( LATCH = ENABLE ) [ boogi @ 13.11.2013. 20:57 ] @
Sva prica (isti hardver i softver ) radi vec 2 mjeseca besprekorno na displeju koji ima 4 segmenta ( 1 blok ). problemi su nastali kada sam htjeo da dodam još blokova.
[ goran_68 @ 13.11.2013. 21:16 ] @
Probaj da između drugog i trećeg modula dodaš jedan 74HC245 za clock i enable linije.
[ boogi @ 13.11.2013. 21:23 ] @
Da ih malo "pojacam", ustabilim? Probat cu sa otporom od 330-1K ako ne da rezultate trazim 245.Ili mozda po dva NOT kola?
Da.Još jednu stvar sam zaboravio: kad sam otkacio CLK zicu sa 2.bloka a ostavio sve zice ka 3.bloku ( 3.blok nije bio zakacen ) radila su oba OK. Ne mogu da vjerujem da su CLK i EN na toj duzini kabla pokupili toliko kapaciteta parazitnog, smetnji ili cega vec da su izoblicili signal. [Ovu poruku je menjao boogi dana 13.11.2013. u 22:42 GMT+1] [ bogdan.kecman @ 13.11.2013. 21:40 ] @
ako svaki modul ima 4 595 onda je zgodno posle svakog modula na izlaz da stavis neki line driver (moze 245 koji kolega predlaze npr)
ono sto ti je bitno je kako ti krece data a kako klok sa ulaza, da li ih menjas zajedno ili promenis datu pa klokujes sa zakasnjenjem, posto ti data putuje vec posle 4 595 data moze da kasni tako da ti je klok stigao pre date zakaci osciloskop na poslednji modul (tu najbolje vidis kasnjenje) na data i klok liniju i gledaj sta se desava bice ti sve jasno :D... najjednostavnije resenje ti je da okasnis clock na sorsu tako da izbacis data bit, sacekas 25% vremena koje si odredio za klok time, onda flashnes klok opet 25% vremena i vratis se na idle, na taj nacin das data liniji vreme da stigne do cetvrtog modula ... dakle samim usporenjem kloka ne dobijas nista, moras da pomeris ivicu kloka u odnosu na data ivicu tako da data upadne na vreme EDIT: inace kada pravis takve module, ako ti je cilj da budu "izmenjivi/multiupotrebljiv/multikorisni" na izlaz svakog modula (posto ih vezes u lanac) treba da stavis line drivere, izlaz sa mcu-a ili cime vec generises signal takodje mora da ide preko line driver-a (nadam se iskreno da ne vozis n metara kabla direktno sa noge mcu-a :D ) [Ovu poruku je menjao bogdan.kecman dana 13.11.2013. u 22:52 GMT+1] [ goran_68 @ 13.11.2013. 21:41 ] @
Ovaj 74HC245 se lako nalazi zato sam ti ga i preporučio. Mada mislim da ti je mnogo bolje da promeniš sam koncept tvojih displeja. Prvo da umesto 16F877 odabereš neki 40-pinski PIC iz 18F serije. A drugo, da ti jedan modul čini jedan taj 18F PIC i 4 ULN2803. Module vezuj serijski preko USART. Prvi PIC u nizu ti može biti master a svi ostali slave (svaki slave ima svoju adresu). Tako ćeš moći module da udaljiš još više ukoliko se ukaže potreba.
[ vladd @ 13.11.2013. 21:50 ] @
Spoj celu informaciju za dva vezana displeja u jednu "rec". I postavi je odjednom. Mislim, tretiraj dva displeja kao jedan, ali sa osam znakova.
[ bogdan.kecman @ 13.11.2013. 22:02 ] @
zaboravih, ima jos jedno resenje ... ja sam koristio sledece na nekom led panelu koji sam pravio, isto sam po plocki imao 4x595 a bilo mnogo plocki .. nisam stavljao line drajvere posto je sve bilo blizu ali sam na ulaz od svake ploce na klok liniju stavio jedan hex inverter, sta je fora, uvedes klok u inverter i provuces ga kroz svih 6 komada tako da na izlazu dobijes identican signal samo sa nekim malim kasnjenjem koje se prilicno poklapa sa kasnjenjem koje data dobije kroz 4 595 tako da sam ja na nekih 50 plocki uvezanih imao svih 50 da rade ok :D
[ boogi @ 13.11.2013. 22:26 ] @
mislim da sam shvatio poentu.
@bogdan.kecman bogdane evo i dio programa: for b = 12 to 0 step -1 serial = data(b) -----------------data(B) je niz od 13 bajtova koliko ja imam 595 kola for bitt=7 to 0 step -1 tb=testbit(serial,bitt) -----------setovanje data if tb=0 then PORTA.2 = 0 else setbit ( PORTA,2 ) end if delay_ms(10) setbit ( PORTA,1 ) ----------------set CLK delay_ms(10) clearbit ( PORTA,1 ) next bitt delay_ms(750) delay_ms(10) setbit(PORTA,0) -------------set ENABLE delay_ms(10) clearbit(PORTA,0) next b mislim da imam kasnjenje CLK od 10mS u odnosu na data. Line driveri? (pogled oboren ka dole, kruzim stopalom po pijesku....) Prvi macici se ..... Line driveri - nema. [ bogdan.kecman @ 13.11.2013. 22:48 ] @
stavljaj source u [ code ] tagove bude citljiviji
Code: for b = 12 to 0 step -1 serial = data(b) for bitt=7 to 0 step -1 tb=testbit(serial,bitt) if tb=0 then PORTA.2 = 0 else setbit ( PORTA,2 ) end if delay_ms(10) setbit ( PORTA,1 ) delay_ms(10) clearbit ( PORTA,1 ) next bitt delay_ms(750) delay_ms(10) setbit(PORTA,0) delay_ms(10) clearbit(PORTA,0) next b ok ti ovde imas dobrih 10ms pre nego strobujes latch .. osim sto je komunikacija extra spora to bi sto se tajminga tice moralo da radi ... ja 595 vozim sa hardwerskog SPI porta na par megaherca ... ti sa tajmingom ne bi smeo da imas problema sa ovim kodom posto kasnjenja su reda velicine 10-200nS.. ti sa 10ms pauzom ihahaj nemas taj problem.. dakle moras da obratis paznju na sve ostalo: - line driveri omogucuju da upumpas signal u zicu - terminatori uguse dosta nois-a sa linije i ujednace impedancu - decoupling na svakom 595 ja cesto koristim 74hc244 drajvere doduse oni su bas line drajveri, kolega ti je predlozio transciever (bidirekcioni) no verovatno ti je savetovao njega posto se mozda malo lakse dobavlja od 245. Citat: boogi: Line driveri? (pogled oboren ka dole, kruzim stopalom po pijesku....) Prvi macici se ..... Line driveri - nema. ovo cu razumeti kao PIC tera direktno xyz metara kabla ... there's your problem, ne moze pic pin da savlada kapacitet kabla, moras da turis line drajver tu .. dakle probaj da dodas line drajver bar izmedju pica i prvog modula [ macolakg @ 13.11.2013. 23:23 ] @
Bez obzira što ti je komunikacija ultraspora, tranzicije ti traju isto vreme. Dakle refleksije i preslušavanje kroz kabl su ti na istom nivou kao kada bi radio sa megahercima komunikacije. Postoji visoka mogućnost kapacitativnog preslušavanja ili transformatorskog efekta. Ti kablovi nisu ni predene parice, možda ni širmovani, pa jednom rečju nisu za tu namenu.
Predlog za stavljanje buffera-drivera je odličan. Vrlo niska impendansa će verovatno pomoći. Ako ni to ne pomogne, onda namerno uspori tranzicije rc članovima na minimalnu vrednost koju dozvoljavaju 595 za siguran rad. Kada se svaki pojedinačni signal pošalje po jednom širmovanom predenom paricom, direktno iz PIC to može i koju desetinu metara (PIC ima prilično nisku impendansu kad je pin izlaz, nije on uopšte tako osetljiv). To bi bio korektan prenos na veće daljine naponskom metodom. Pozz [ boogi @ 14.11.2013. 20:06 ] @
Momci hvala na trudu!
Nešto sam naučio. Problem je riješen - 1K na kraju kabla i rade sva 4 bloka.Definitivno će u sljedećim projektima biti prisutan i 245 da ne bi razmišljao hoće/neće. Hvala još jednom POZZZZ [ boogi @ 15.11.2013. 12:08 ] @
Da ne otvaram novu temu.
18B20 temperaturni senzor. Zna li ko koja je max dužina kabla na koji se senzor može nakačiti? pretpostavljam da zavisi od vrste kabla. Generalno mi treba očitavanje temp na nekih 15m sa 18B20. Otvoren za sve predloge. [ bogdan.kecman @ 15.11.2013. 12:17 ] @
nisam terao 18B20 vec jedan drugi senzor (za pozar) koji radi na
identicnom protokolu i radio je na upredenoj plavobeloj zici (dodatno upredena busilicom od onoga kakva je u originalu) na nekim 70 metara (dakle dvozicno, parazitno se napajao) .. kapiram da bi i 18B20 radio slicno ako dobro uradis sw [ boogi @ 15.11.2013. 12:30 ] @
aha. probao sam 3-zicno ( opet sa svojim alarmnim kablom ) pa mi ocitava 0 C na nakih 15m.
[ bogdan.kecman @ 15.11.2013. 12:57 ] @
dakle da se opet ogradim nisam to radio sa DS-om (njega nikad nisam
terao preko par metara), trozilni kabl treba da radi bolje nego dvozilni... samo da se uradi sve kako valja [ macolakg @ 15.11.2013. 14:15 ] @
Dve predene parice: jedna napajanje, druga signal (pola od LAN kabla).
Ono što je masa, svaka svojom paricom, pa postaje ponovo zajednička tačka kod samog senzora. [ boogi @ 15.11.2013. 19:05 ] @
[ pelctronics @ 15.11.2013. 19:32 ] @
[ boogi @ 18.11.2013. 16:44 ] @
@bogdan.kecman
SW je djelimicno uzet iz jednog od primjera iz mikroelektronike Onewire. Koristi Onewire biblioteku za rad sa podacima preko jedne zice. Kakvi su tu tajminzi ja ne znam. Sta smeta senzoru da radi na 15m ja ne mogu da dokucim samo da pretpostavim da vrsta signala i fizicka konfiguracija kabla ( veze ) uticu na to i još možda i tajminzi same biblioteke. Imam riješenje koje bi moralo da uključi još jedan PIC koji bi lokalno citao temp pa onda da salje podatke drugom na 15m dalje. To mi komplikuje priču i to mi je zadnja alternativa. Ako ima ko da je radio sa DS18B20 na vecoj udaljenosti bio bi mu zahvalan da se ukljuci u pricu. Code: ow_reset(PORTA, a) ow_write(PORTA, a, $CC) ' SKIP ROM [CCh] ow_write(PORTA, a, $44) ' CONVERT T [44h] delay_us(120) i = ow_reset(PORTA, a) ' 0 - present, 1 - not present ow_write(PORTA, a, $CC) ' SKIP ROM [CCh] ow_write(PORTA, a, $BE) ' READ SCRATCHPAD [BEh] j1 = OW_Read(PORTA, a) ' Read LSB j2 = OW_Read(PORTA, a) ' Read MSB minus = j2 minus = minus >> 3 if minus = $1F then ' Checking temp.(+ or -) j2 = not j2 j1 = not j1 j1 = j1 + 1 end if Raw_temp = (j2 << 8) or j1 ' Getting RAW data TempC = (Raw_temp and $0FF0) >> 4 ' WHOLE NUMBER comma = (j1 and $0F) * 625 ' DECIMAL Evo šta Help iz mikroelektronike/onewire kaze: "Some basic characteristics of this protocol are: single master system, low cost, low transfer rates (up to 16 kbps), fairly long distances (up to 300 meters), small data transfer packages" I fino na kraju i shema sa pull-up otpornikom. [Ovu poruku je menjao boogi dana 18.11.2013. u 19:13 GMT+1] [Ovu poruku je menjao boogi dana 18.11.2013. u 19:14 GMT+1] [ bogdan.kecman @ 19.11.2013. 00:55 ] @
kao sto rekoh ja sam terao 1wire na dosta dugom plavobelom kablu samo malo dodatno upredenom (busilicom, dakle nista specijalno). Moras na kraj kabla kod senzora da ukacis osciloskop i pogledas na sta lici signal, drugacije ne znam kako ces da ga debagiras
[ Milobratovic @ 19.11.2013. 18:28 ] @
Ja sam radio sa 18B20, postigao sam stabilan rad sa nekih 40m kabla. Radi se o regulaciji temperature u tržnom centru, 5 mjernih tačaka, i 30-ak termometara u lokalnoj fabrici, sve sa 18B20. Pored "twisted" kabla, eksperimentisao sam sa pull-up otpornikom prema signalu. Davno sam to radio, ne sjećam se tačnih vrijednosti, ali znam da sam na nekim mjestima "sišao" i do 1K. Sve sam radio sa 3 žice.
[ bogdan.kecman @ 20.11.2013. 02:12 ] @
pull up je mega bitan za 1wire i za i2c i slicne bus protokole, posebno na vece duzine, ja obicno turim pot od 10k (imam jedan koji je pot u potu tako da ima ultra fino podesavanje) i onda gledam na kraju kabla osciloskopom na sta lici signal.. sto duzi kabl to mora manji pull up..
[ boogi @ 20.11.2013. 20:57 ] @
Hvala momci! To su mi velike smjernice. Cim budem na projektu probat cu eksperimentisati i malo sa osciloskopom pogledati te signale.
[ boogi @ 05.12.2013. 16:21 ] @
Evo mene.
Našao sam šta je! Jedna stvar koju nisam spomenuo je da su u igri 2 senzora koja se nalaze na dva različita pina(pin do pina). Dio softvera koji je zadužen za isčitavanje temperatura iz senzora čita temperature jednu odmah iza druge. Kombinacija hardvera, kakva je kod mene,i softvera ,takog kakav je bio, pravi problem. Jednostavno ubacivanje pauze od 5mS izmedju 2 čitanja i podešavanje pravog otpora kod senzora napravilo je da to sve fino proradi :) . Momci hvala na trudu i sugestijama !!! BOOGI [ boogi @ 24.07.2014. 20:32 ] @
Pozdrav društvu na forumu.
I još jednom, da ne otvaram novu temu, jer se tiče iste komunikacija kao i na startu, problemi ![]() Uvažio sam neke sugestije pa dizajnirao ploču čiji komunikacioni dio izgleda ovako : https://drive.google.com/file/...hfRVlCcnhPWDQ/edit?usp=sharing Na jednoj ploči su 2 "osmice". Velika površina od Cu sa lijeve strane je predvidjena za 7805 koji se ne vidi na slici.Na nj ulazu su 1000uF i 100nF i na izlazu su 100nF i 100uF . Na svakom 74HC595 kolu je 100nF.Otpori Rx su 100 oma. Lik kome sam dao to da napravi je spojio fizički 2 ovakve ploče kad je pravio pripremu za štampu da bi dobio 4 cifre na jednoj ploči. Izbacio je 74HC244 sa kraja prve dve "osmice" i otpore RX od 100 oma i kratko spojio dalje na sledeće 2 "osmice". Izbacio je 7805 i kondove oko 7805 na drugom paru "osmica" a kratko spojio +5V sa prvog regulatora da napoji drugi par 74hc595. Ostavio je Rx-ove i 74HC244 na kraju tj izlazu posle 4te "osmice" da drajva sledeću istu takvu ploču sa 4 "osmice". Prva ploča se "vozi" direktno sa 16F628A koji je udaljen 10tak cm. Druga ploča se veže na prvu i ona je udaljena 40tak cm. Na kraju druge su svi signali ( prije otpora Rx ) spojeni sa masom preko otpora od 1K. Ovakvih parova ima 5. (totem za ispis cijena na benzinskoj pumpi) Na stolu sve radi OK. Kad se odnese na teren 2 od 5 parova i to druga ploča u paru počne da brljavi. Probavao sam da vežem više ploča (4 cifre) u niz i uspio natjerati 3 da rade kako treba i to kad sam izbacio otpore od 100 oma na izlazu 74HC244. Četvrta neće.Interesantno je bilo da nekad npr druga( a za njom i sve ostale iza) nisu htjele da rade i zamjenom ploče proradi. Kola su iz PRC. Nisam više siguran je li dizajn ploče u pitanju, je li previše da jedan 74Hc244 tjera 4 x 74HC595 i sledeći 74HC244, jel SW loš, jesu li kola iz PRC-a ili su mali gremlini odlučilli da se malo igraju ![]() Ima li ko kakvu sugestiju? SW: Code: for b = 0 to 3 serial = data[b] for bitt=7 to 0 step -1 tb=testbit(serial,bitt) if tb=0 then PORTB.4 = 0 else setbit ( PORTB,4 ) end if delay_us(500) setbit ( PORTB,5 ) delay_us(500) clearbit ( PORTB,5 ) clearbit ( PORTB,4 ) delay_us(133) next bitt next b delay_ms(2) setbit(PORTB,6) delay_ms(1) clearbit(PORTB,6) Zanemarite "brljotinu" na 74HC244 vezanu za napajanje istog. ![]() [Ovu poruku je menjao boogi dana 24.07.2014. u 21:45 GMT+1] [ ZAS011 @ 24.07.2014. 21:22 ] @
Nije trebalo da izbaci 244. Za svaku cifru bi trebalo da imaš po jedan bafer koji unosi kašnjenje kako bi Clk stizao sa dovoljno zakašnjenja do svakog 595 kako bi imao valjani podatak ulečovan.
http://q-services.biz/video.html dole u sredini, ono što se ne vidi na snimku je još jedan takav "panel" 40-ak santimetara ispred snimljenog. Svaka cifra ima svoj 244 i 595. 595 su direktno kaskadirani a Clk, Latch i OE idu od bafera do bafera ... [ zica49 @ 24.07.2014. 22:26 ] @
Za pocetak uspori CLK..iz toga bi trebao da razaznas nekvalitetne komponente,naponsko propadanje ili nesto trece.
[ bogdan.kecman @ 25.07.2014. 00:34 ] @
opet ista prica rekose kolege generalno sve
- clock treba da traje duze - latch treba da traje jos duze - proveri na sta lice signali na prijemu - zasto izbaci line driver? [ boogi @ 26.07.2014. 19:27 ] @
Ja nikako da svarim neke stvari.
OK za 244 - nije trebalo da ga izbaci, slažem se. Shvatam da su drajveri tu da upumpavaju signal kako treba. Jedna stvar mi nije jasna - prošli prijekat, sa drugačijim pločama "osmica", se vozio direktno sa PIC-a a isti je gurao ukupno 16 kom 74HC595 kola i na kraju otpori od 1K ka masi , sa dužinom kabla i vodova od cca 3-4m i radilo sve besprekorno. Jeste CLK bio znatno sporiji cca 20mS dok je sad 1,133mS ali ne vidim to kao problem jer su kola dizajnirana da rade na MHz dok je kod mene manje od 1KHz PIC postavi podatak na liniju, sačeka 500uS,napravi pozitivnu ivicu CLK za shift registar, drži CLK 500uS, napravi negativnu ivicu prvo na CLK pa onda na Data( ako je bila jedinica), pa sačeka 133uS i onda ispočetka. Kad odradi sve bitove iz bajtova sačeka 2mS pa napravi pozitivnu ivicu na Storage registru, drži je 1mS i onda pravi negativnu ivicu na ST. Ja tu ne vidim ništa što bi uticalo da se ponaša nenormalno.Možda griješim. Nije mi jasno kako je piconja iz prvog projekta tjerao 16 kom 595 a sad tjera 4 pa onda ide drajver koji tjera sledeća 4 595 pa opet drajver pa 4 .... i to neće da radi. Ima li geometija vodova kakvu sam napravio na ploči na tim frekvencijama kakvih predispozicija da mi pravi ovakve probleme? Sva skalamerija je otišla na teren sa izmjenjenom koncepcijom da 1 pic tjera 2 ploče, tako da sad trenutno ne mogu experimentisati sa više ploča u nizu. Vjerovatno će biti prilike da opet ponovim sličan projekt pa ću opet naići na iste probleme. Ima li veze što svaka ploča ima poseban 7805 koji nisu svi idealno 5V nego od 4,75 do 5,05? [ ZAS011 @ 27.07.2014. 07:44 ] @
Uopšte nije poenta u tome koliko dugo PIConja "čeka" posle uspostavve prednje/zadnje ivice Clk signala, kod tebe se dešava da Clk prebrzo stigne do pojedinih 595 dok Data kasni.
Za svako digitalno kolo postoji parametar: Propagation Delay, pogledaj u datasheet-u za svako koje koristiš. Za 74HC595 - Motorola: ![]() ![]() [ boogi @ 27.07.2014. 11:33 ] @
Wiki:
"...In electronics, digital circuits and digital electronics, the propagation delay, or gate delay, is the length of time which starts when the input to a logic gate becomes stable and valid to change, to the time that the output of that logic gate is stable and valid to change..." Znam da postoji vrijeme koje je potebno kolu da "odreaguje" na određeni signal da bi na izlazu dobilo stabilan podatak. Meni se problem dešava izmedju pojedinih 595 kola, koliko shvatam, ali opet mi nije jasno zašto? Pretpostavimo da pustim podatak ovog tipa 1000 0000 0000 0000 na 2 kom 595 kola i to da idem od MSB bita sa "upumpavanjem" Date.74HC595 reaguje na pozitivnu ivicu Data CLK-a i Po mom SW: Data = 1, pauza 500uS, CLK = 1, pauza 500uS, CLK = 0 , Data = 0 , pauza 133uS.........ovo će postaviti Q0 na 1, Data = 0, pauza 500uS, CLK = 1, pauza 500uS, CLK = 0 , Data = 0 , pauza 133uS.........ovo će postaviti Q1 na 1 a Q0 na 0, . . . Data = 0, pauza 500uS, CLK = 1, pauza 500uS, CLK = 0 , Data = 0 , pauza 133uS.........ovo će postaviti Q7 na 1 a Q6 na 0, u ovom momentu Q7S je na 1 i predaje ga sledećem 595 --- na Data ulazu sledećeg 595 je 1. Do sledećeg CLK signala imam 500uS što je puno puta više od Propagation Delay vremena potrebnog da Q7S postane stabilan. Gdje sam preskočio korak? [Ovu poruku je menjao boogi dana 27.07.2014. u 12:56 GMT+1] [ ZAS011 @ 27.07.2014. 12:13 ] @
Code: for b = 0 to 3 serial = data[b] for bitt=7 to 0 step -1 tb=testbit(serial,bitt) if tb=0 then PORTB.4 = 0 else setbit ( PORTB,4 ) end if Primer drugačiji: if tb=0 then clearbit (PORTB,4) else setbit (PORTB,4) end if A može i drugačije: PORTB.4 = tb delay_us(500) setbit ( PORTB,5 ) delay_us(500) clearbit ( PORTB,5 ) clearbit ( PORTB,4 ) =< Zašto ovde resetuješ RB4? delay_us(133) next bitt next b delay_ms(2) setbit(PORTB,6) delay_ms(1) clearbit(PORTB,6) Data liniju menjaš prema vrednosti bit-a koji upumpavaš u HC595. Nema potrebe da ga bezpotrebno setuješ/resetuješ A i čemu ti služe 100R (RX) otpornici? Po meni su potpuno nepotrebni. [ boogi @ 27.07.2014. 12:27 ] @
Tačno - RB4 nema potrebe resetovati ako nema promjene. Ako ima resetovat će se sam u prvom dijelu programa. Prvobitno mi je SW bio bez reseta RB4 ali i tada sam imao iste probleme. Reset je stavljen da probam šta se dogadja ako resetujem RB4 pa je tu ostao onako bez nekog razloga - zaboravio izbrisati liniju :).
A 100 oma Rx otpornici su odavde http://circuit-diagram.hqew.net/74HC244-Octal-3$2dState-Noninverting-Buffer$2fLine-Driver$2fLine-Receiver_13935.html a posle kroz rad sam vidio da su nepotebni jer sa njima nije radila sledeća ploča pa sam ih izbacio sa izlaza 244 kola.Na ulazu su ostali - mozda nisu trebali?. Da, znam da se SW može napisati na više načina ali suština je ista. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|