» »

programiranje procesorja

programiranje procesorja

««
2 / 11
»»

Brane2 ::

Nasvet:

1. Nehi komplicirat.

2. Vzemi _enostaven_ Flash based PIC za začetek. Nekaj totalka vanilijastega, vendar z uporabnim številom pinov. Recimo 16F877 ali kaj podobnega.
Mikrokrmilnik naj bo na kaki test plati, ki ima že vse pripravljeno za programiranje in testiranje. POnavadi imajo tudi kako LEDico, LED/LCD displejček in polje lukenj, kamor lahko zalotaš kar ti paše. Cena take plate tudi ni ni nevemkaj- ponavadi v razredu 30-50EUR.

3. Začni z asmjem.


Zgornje velja vsaj dokler ne narediš prvih korakov in napišeš recimo kak programček, ki zna krmilit LCD in brat improvizirano tipkovnico.

Potem boš pa že dobil občutek za to, kaj bi dejanjsko rad in boš lahko prešaltal na kak drug čip in C, če boš to še hotel.

Po tvojih vprašanjih pa sklepam, da bo do takrat preteklo še VELIKO vode.

Ne podcenjuj enostavnih zadev in asmja. Z majhnim mikrokrmilnikom se da narediti presenetljivo kompleksne programe, če veš kaj delaš.
On the journey of life, I chose the psycho path.

Infinity ::

korenje sam znam neki z mikrokontrolerji (o tem sm mogu 2 let poslušat prfokso :( ) in sm marsi ker programčič spisu, resno lahko samo ponovim branetove besede. Js osebno sm se u šol nauču programerat motorolo MC6803 k je za začetek kr fajn poj sm pa pr enmu projektu sam prešaltu na PIC16f84a in ni glih nevem kake razlike, pač ja sej se razlikujejo neke sintakse sam struktura je pa ista, poleg tega pa se boš iz asm programeranja nauču ekonomičnga programiranja, boš vidu d ti bo poj velik laži napisat program k bo kraji glede vrstic in izvajalnega časa. Js ti priporočam za začetek kakga PIC 16fxxx al pa kak 8bitn mikrokontroler (motorola MC6803). pa že narjeno ploščico si nabau k boš meu preveč dela za začetek.

Azrael ::

Kako je z brezplačnimi vzorci elektronskih komponent beri temo: Vzorci (samples) - vprašanja in odgovori.

Je pa z mikrokontrolerji (in z 99.99...% drugih stvari) tako kot so ti že rekli: brez muje se še čevelj ne obuje.
Nekoč je bil Slo-tech.

BluPhenix ::

Infiniti, ena prošnja lahko pišeš z normalnimi slovenskimi besedami, saj je drugače precej težko brati tvoje poste? Hvala.
Podpisa ni več, ker so me poskušali asimilirati.

Infinity ::

sory modri fenix... kaj pa ni blo razumlivega?

korenje_ver2 ::

brane, 5 dni ze bulim v datašit od pic16f84a. Mislim, da mi prižiganje lede sploh nebi delalo problemov.

Sedaj se ubadam s tem, kako bi naredu nekaksen "DOS" programcek, kjer bi z "imeni" dolocu lokacije s podatki. imel bi naprimer 8 bajtov (ki bi lahko predstavljali tudi črke) + 1 bajt, ki bi predstavlju dolžino lociranih podatkov (addresse) + [1. bajt=naslov,2. bajt=dolžina]*n
glede na to da nebi uporabil fiksne dolžine, npr 512 bajtov za locirane podatke, bi moral vsakic seekat in poiskat nek unikaten bajt pred temi 8 bajti, ki dolocajo ime lociranih podatkov...

torej nekako tako...

0x20=unikaten bajt za ime
0x21-0x29=ime - 8 črk = 8 bajtov
0x2A=število naslednjih naslovov, ki določajo lokacije (npr. da je fragmentiran, bi bila 1)
0x2B=naslov, kjer se podatki začnejo
0x2C=naslov, kjer se podatki končajo

problem je tudi pri iskanju prostih lokacij po moje... npr. če bi imel praznine pod 12 bajti, nebi mogel tja zapisati tega

glede na to da lahko shranim 255 v en bajt, bi lahko kar z bajtom definiru dolzino teh ključnih podatkov z imenom in lokacijami. Ta bajt bi dal pa takoj za tistim unikatnim bajtom. (tako niti nebi rabil 0x2A naprimer)


mate kakšen predlog?

Zgodovina sprememb…

int47 ::

PDF-jev se nima smisla učit na pamet.
-Zanimajo te ohišje, i/o zmožnosti, funkcije pinov, napajalna napetost, reset....
-Velikost in tip različnih pomnilnikov.
-Kje se mora začet program in prekinitvene rutine.
-Ukazi, če delaš v ASM.
-Podrobno naštudiraš le tisti HW, ki ga v projektu uporabljaš.

Nato nabaviš čip, prižgeš LED-ico in greš naprej na večje projekte. Teoretiziranje in reševanje fiktivnih problemov na suho nima smisla.

Razviti lasten prevajalnik ni tako zelo enostavno. Zakomplicira se že pri primerjavi dveh števil.
npr. primerjaš dve 8 bit spremenljivki z HEX vrednostima 0x01 in 0xFF. Katera je večja?
Najprej je potrebno vedeti tip spremenljivk.
*Če je 0xFF nepredznačeno število je 0x01 = 1(dec) 0xFF = 255(dec).
*Če je 0xFF predznačeno število je 0x01 = 1(dec), 0xFF = -1(dec).

P.S. Kaj boš z datotečnim sistemom v uC z 68 byti RAM-a in 1K programskega pomnilnika?

Zgodovina sprememb…

  • spremenil: int47 ()

korenje_ver2 ::

int, sej tako kodo bi uporabil za cip z vec rama. mislm da je assembly koda kompatibilna z novejsimi 8 bitnimi mikrokontrolerji.

btw, mislim da je datasheet od pic16f84a zelo dobr za učenje. Vsebuje vse osnove, ki jih imajo verjetno skoraj vsi mikrokontrolerji. Razlika je samo v tem, da je ta mic cist oskubljen.

zdej sm si naredu nekaksno osnovo za programčič...

Zgodovina sprememb…

int47 ::

Če že pišeš kodo "za rezervo", jo:
-Dokumentiraj (komentarji).
-Dobro preizkusi.

korenje_ver2 ::

mmm kva sm našel...

http://www.e-dsp.com/controlling-a-color-graphic-lcd-epson-s1d15g10-controller-with-an-atmel-avr-atmega32l/

Programiranje barvnega LCDja od mobitela :D
to jz hočem narest.

int47, tam ni nič za komentirat. Je preprosta osnovna koda, kjer sem določil interrupt rutino. Program bo šel v sleep stanje zaradi neznatne porabe toka. Iz sleep stanja ga bo zbudil WDT (watch dog timer) (upam da sem pravilno to napisal, ker ne vem če bo wdt uporabljen za cikle v programu... ker potem bi porabil 2.3 sekunde za vsak ukaz). V glavnem ko bo šel iz sleep stanja, bo prebral temperaturni senzor in zapisal podatke v ram. Iz rama pa nato na LCD. Pri tem bo glavni interrupt na RB0. RB0 in RB1 bosta povezljiva na PC, od kjer se bo lahko odčitavalo temperaturo. Komunikacija med PCjem in čipom bo 2-bitna. Zaradi točnosti prenosov podatkov bom uporabil RB0 za nekakšen "hold", ki bo povedal, ali je signal na RB1 high ali low (baud rejte še ne znam štimat :P).

Kasneje bom dodal še nek rele ali tranzisor ter dve tipki, s katerimi bom nastavil preklopno temperaturo za ta rele ali tranzistor.

TESKAn ::

No, glede te kode.
- SFRjev ti ni treba deklarirat, ker ima to že kompiler narejeno (za PICe je v MPLABu za vsakega PICxxxxx.inc, kjer so ti registri deklarirani)

- če boš tvoje spremenljivke (MEMx) deklariral tako, kot si jih, ti ne bo nič delalo prav. Na njihovih mestih se nahajajo nekateri SFRji, ki upravljajo hardwer in pisanje/branje na ta mesta ti bo prineslo kr'nekaj, samo ne tistega kar bi ti rad.

- watchdog timer je ena taa reč, ki jo boš hotel imet izključeno. Vsaj pri večjih prjektih, ker nikoli ne boš vedel, če si dal dovolj CLRWDTjev noter, da ti ne bo kar tako resetiralo kontrolerja. Torej WDT = OFF.

- z interruptom je malo več dela, kot si ti predstavljaš. Vedno moreš shranit vsebine WREGa, STATUSa in PCLATHa ter jih na koncu interrupt rutine obnovit. Spet, template kodo imaš v MPLABu.
In ponavadi se te rutine piše tako, da imaš na 0x004 najprej shranjevanje pmembnih registrov, potem imaš rutino ALI klic rutine, na koncu pa obnoviš registre in končaš interrupt.

- MOVFW NE obstaja. Uporabit moreš ukaz:
MOVF MEMx,w

- WDT se uporablja za drugo, ne za budit procesor iz spanja. Ideja WDTja je ta, da ti procesor resetira, če ti kje zaštrika. Tvoj programčič bi, če bi delal, vsake tri sekunde resetiral procesor in se šel znova inicializacijo itd.


Torej, nasvet. Pozabi na svoj compiler, pozabi na kuckanje ASMja v notepadu, downloadaj si MPLAB, inštaliraj, poišči template za svoj kontroler in se uči.

In še t, za te tvoje tabele je že vsa teorija predelana, kako kaj narediš. Resno. Narejeno je pa tako, da jih delaš na kopici (heapu). Ampak potem imaš morje drugih problemov, ala:
- bodo posamezne lokacije s fiksno dolžino?
če ne bodo, imaš spet druge probleme:
- kako 'povezat' proste lokacije?
- se bodo lahko lokacje sprostile?
- če ja, kako se spopast z defragmentacijo?
- itd...

V glavnem, nehaj teoretziraz, pejt na Micrchipovo stran, se registriraj, naroči par PICev, zgradi si JDM programator (za začetek bo dober) in testiraj. Potem se pa zafrkavaj z barvnimi grafičnimi LCDji in tem...
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

TESKAn ::

P.S.: za komunikacijo PCjem uporabi RS232, večina kontrolerjev ima to vgrajeno in je preprosto ko hudič. Ampak za božjo voljo, ne izumljat stvari, ki so že bile izumljene. Ker je verjetnost, da b tebi uspelo naredit nekaj bolje, praktično nič. In je veliko večja, da boš naredil slabše in bolj zapleteno.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

teska,
a ni tako, da če uporabiš WDT za bujenje iz SLEEPa, da preprosto nadaljuje program od SLEEPa naprej?

drgač pa bom naročil v ponedeljek par PICev.

To da imajo nekateri PICI podporo za usb, i2c, lcd ... že vem. Sam za začetek je dobr tko mal sam ustvarjat :P
Tisto ko je že vse narejeno mi ni glih cool. ker potem je to spet tako, kot da bi me pošiljal v trgovino po končni izdelek...

aja pa pri teh 8 bitnih lahko seštevam do max 255? pri 16 bitnih PICih bi lahko uporablju številke do 65k ne?

Zgodovina sprememb…

korenje_ver2 ::

pa lejte tole http://thomaspfeifer.net/nokia_6100_dis...
Zakon zadeva.

TESKAn ::

Ja, maš prov, se da.
In imaš prav glede 8 in 16 bitov.
Kar je pa naredil tale nemec, je pa samo vmesnik med račnalnikom in tem LCDjem. uC ne dela skoraj nič.

In če delaš kak večji projekt, imaš dovolj drugih problemov, da bi se ukvarjal še z programiranjem serijske komunikacije.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

hja... tale moja zadevica je kr velka :P
me zanima kolk vrstic bom mogu uporabit samo pri tem, da bom dobil temperaturo iz senzorja...

ja jz tut hocem uporabit tak lcd... pa se jih dobi sam v mobitelih. pomisl kva je boljs... dat 40 eur za en 128x64 lcd al zastonj razdret kak star mobitel, kjer bi lahko imel celo barvni graficni lcd?

cilj mojega "projekta" je glih v tem, da uporabim graficni barvni lcd ki bo prikazoval temperaturo :D

Zgodovina sprememb…

TESKAn ::

Heh, ti misliš, da boš veliko porabil za brat en senzor? Naj ti zaupam skrivnost, največ vrstic boš porabil, da boš izpisal LCD. Največ. Pri mojem projektu od približno ~4 - 5 tisoč vrstic C kode več kot polovico zasedajo meniji, kaj naredit ob pritisku določene tipke. Par tisoč vrstic pa skrbi za vse drugo - branje temperatur, PWM modulacija, branje tipke itd.

In itak je oljša verzija razdret star mobitel. Samo da izpišeš 132x132 pixlov tako, da bo izpisano kaj pomenilo, boš porabil daleč največ časa od vsega projekta.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

ce pogledam moje perl skripte, kjer sem pisal preko 50k vrstic za en programcic, potem to niti ni tako grozno...

kar se pa tice teh lcdjev iz mobitelov, sem opazil da res ne mores spreminjat posameznega piksla. preprosto kar bi lahko naredil, je to da naredim nekaksne tabele v spominu, ki bodo ime ze shranjene oblike crk. Za neuporabljeno bi ta mreza uporabila ozadje, za uporabljeno pa crno barvo. Tako bi preprosto ob spremembi v ramu generiral novo sliko, ki bi jo potem prenesel na lcd. hja nc posebnega. sam veliko dela je.

aja pa ram ki bi ga rabil: 24576+~4 bajtov za sliko. 27*((višina*širina)*(3)+~4) bajtov za mrežo za recimo 27 znakov.
ze samo za prikaz enega piksla na lcdju bi porabil ene 5-10us ta proc. to pomeni ene 200ms za prikaz slike :(

Zgodovina sprememb…

TESKAn ::

Vedet moreš, da je v mikrokontrolerjih RAM zelo zelo omejen. Največ, kar sem imel do sedaj, je bilo 16 kB. Tako da sliko iz RAMa prikazovat je bolj tako - tako...boš rabil kak zunanji pomnilnik, recimo EEPROM, v katerem bi imel statične slike, potem pa sliko bereš in sproti prilagajaš pixle, ki bodo sestavljali znake. Za znake bi pa lahko imel bitfield, se pravi v enem bajtu za 8 pixlov in bi bilo ~2kB dovolj.
5 - 10 uS za pixel se mi pa zdi orenk preveč. Če recimo uporabiš 40 MHz PIC (en iz 24H družine), ti v teh 5 uS izvrši 200 ukazov. To je pa več kot preveč za prikazat en sam pixel...
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

Zgodovina sprememb…

  • spremenil: TESKAn ()

BluPhenix ::

1. kompliciraš
2. kompliciraš
3. kompliciraš

Vse tri točke verjetno izhajajo iz tega, da to kar bereš in govoriš nisi še preizkusil v praksi. Ne gledat datasheet in govorit "u sej to mi ne bo delalo problemov", ker ni vedno tako. MArsikdaj dela še najbolj osnovna stvar probleme. MCUji niso PC imao svoje zahteve in svoje muhe. En tak enostaven primer problemov:

Pri mikrokontrolerjih so timingi zelo pomembni pri dostopu do periferije. Včasih imajo določeni kosi periferije omejen čas v katerem lahko podatek, potem ko si vpisal naslov registra prebereš. Sej ni problem poračunaš in napišeš. Problem je lahko že, ko imaš interrupte. En ti pač skoči noter ravno med timingom in z branjem ne bo nič. PAč moraš narediti tako, da interrupte med takim branjem onemogočiš, nič lažjega. Zakomplicira se, ko se mora interuptna rutina čimprej odzvati na interrupt. Ker si onemogočil interrupte med tistim branjem se, v kolikor vskoči ravno takrat, ne more izvesti tako hitro kot bi se morala in cela zadeva ne deluje ali pa deluje napačno. Seveda tega ne ugotoviš tako hitro in gre lahko precej dni za eno tako stvar.


Skratka lotise že enkrat na začetku in nehaj komplicirat in sanjarit o svojem compilerju, ker je nonsense. GCC je precej dober in nima smisla, da bi pisal nekaj svojega.

ČE vzameš kakšen dallasov temperaturni senzor porabiš nekje 20 vrstic, da prebereš temperaturo z njega (kje malo več, kje malo manj).

Watchdog ni namenjen bujenju procesorja iz power down, ima povsem drugi namen. Če se ne slabo spomnem pri marsikaterih procesorjih niti ni aktiviran med power downom. Za to imaš klasične časovnike, ki navadno delujejo vedno.

In ja, ram v mikrokontrolerjih je zelo omejen, zato je dobro šparati z njim.

Aja pa še to, upam da imaš vsaj malo pojma o elektroniki, ker pri mikrokontrolerjih ni samo programiranje, periferijo je treba tudi usklatiti in priklopiti na mikrokontroler.

to pomeni ene 200ms za prikaz slike :(
Kaj je pa to slabega? Sej ne rabiš spreminjat slike vsake mikrosekunde. To je čisto dovolj oz. še preveč. Menjava na vsako sekundo je čisto dovolj v večini primerov. DS1820(temp. senzor) itak porabi 750ms za pretvorbo temp ...

Kaj bi pa delal s tistim iskanjem podatkov po ramu pa mi ni čisto jasno zakaj bi to delal? Da ti ne bo to tvoje čudo vpisalo kdaj kam kaj kar nebi smelo in švlo vse v p...... Skratka odmisli razmiljanje iskanja rašitev na podlagi izkušenj s PCja (sploh s kakšnega pythona), ko boš programiral mikrokontrolerje boš moral, predvsem na začetku malo drugače razmišljati. NE pozabit spodaj ne laufa mikroprocesor, ki vsklajuje delovanje periferije in taskov.
Podpisa ni več, ker so me poskušali asimilirati.

korenje_ver2 ::

aja sem se zmotil...
tale PIC16F84A baje izvrsi pri 4MHz kristalu en cikel (ukaz) v 200 ns se mi zdi. Pa potem ce rabis ene 10 ukazov, da pripnes piksel na lcd, je to recimo 2mikros.

blupheix, to vem. Zdej gledam glih kolk morajo bit signali dolgi za ta temperaturni senzor. To je zlo moteče, ker ne smeš met interruptov :(... glih zaradi tega mi je še najbolj všeč komunikacija, ko uporabiš en bit za držalni bit (npr. da z enim bitom sporočiš, da so signali že nastavljeni, in potem počakaš na povratno informacijo, da je podatek sprejet)... taka komunikacija ni odvisna od časa, je pa res da je počasnejša.

Zgodovina sprememb…

zcetrt ::

movfw obstaja. Bojda ne od nekdaj, ampak zdaj obstaja.

Pic potrebuje štiri brce kristala za en cikel. Pri 4MHz torej 1us za cikel.

WDT PICa zbudi iz spanja oz. teče med spanjem. Zbudi pa ga z resetom. Ram se ohrani.



Korneje, kaj pa če bi naredil svoj mikrokontroler? Konec koncev ne moreš iti kar v trgovino in ga kupiti.
4.

korenje_ver2 ::

zcert, na http://ww1.microchip.com/downloads/en/D... piše da WDT zbudi PIC iz sleepa in nadaljuje program. Pri tem se WDT števec resetira na 0.


ok sm malo obnovil http://the-nox.com/ibm60gb/SENSOR.txt

Zgodovina sprememb…

TESKAn ::

Na, da ne boš se matral preveč: fajlek, tako zgleda koda ponavadi v ASMju, po Microchipovi predlogi. Zraven je še tole, kjer imaš že definirane vse registre.

Na naslovu 0x000 imaš samo skok na glavno rutino, če tam kaj preveč pišeš, ti bo zadeva šla pisat na naslov 0x004 in naprej, tam pa je interrupt vektor.

movfw so pa zgleda dali v MPLAB in ti prevede movfw x kot movf x,w...se ljudem ni dalo pisat onega w - ja na konec:).
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

kaj so une tabele za eeprom?
kaj je "de"

kje si reku da se dobi te building blocke za razlicne PICe? zgleda zakon. se vedu nism da ma ta PIC tolk tega notri...

Zgodovina sprememb…

TESKAn ::

Vse to se dobi zraven MPLABa od Microchipa. Direktiva 'de' pa ti definira, kaj se bo nahajalo v EEPROMu na tistem mestu - najprej org 0x2100, kar pove compilerju, da se naslednji podatki začnejo na naslovu 2100 (v primeru tega PICa je to EPROM) potem pa de "blabla", ki ti da na naslov 2100 'b', na 2101 'l', na 2102 'a' itd. Kar je tle zapisano se zapiše v EEPROM ob programiranju. Potem pa lahko te podatke bereš v glavnem programu, lahko pa tudi zapisuješ v EEPROM in tako shraniš kakšne nastavitve ipd. za primer, če zmanjka elektrike, da se ohranijo nastavitve.
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

korenje_ver2 ::

TESKA, dej povej kako bi naredil, da bi med branjem iz temp. senzorja lahko uporabil interrupt (gumb), ne da bi to motilo branje podatkov iz senozrja in zapis v ram. je to mozno? Npr, da bi dral gumb, in bi bil tisti pin vedno na high... potem bi skos hodilo v 0x0004, branje iz senzorja, ki je casovno odvisen, bi bilo pa moteno. Je mozno, da bi naredil nekaksen prebuffer za gumb v drugem cipu, ki bi posredoval stevilo pritiskov na gumb centralnempu procesorju, medtem ko ne bere iz senzorja?

Zgodovina sprememb…

snow ::

Lahko imaš pooling tipk, v enem timer interruptu pa se ti izvršuje en state machine, ki ga procesiraš v glavni zanki, kjer obdeluješ tudi tipke. Je čisto vseeno ali bo tipka reagirala v 1000 us ali 10 us.

Niti slučajno ne rabiš dveh procesorjev!!
Dokler boš programiral na pamet in nič preizkušal ne boš znal nič.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

BluPhenix ::

Še vedno goniš svojo namesto, da bi malo prebral kaj smo ti do sedaj napisali. Spet vlečeš neka dva procesorja, jao ...

Pač za čas branja disablaš interrupte no. Še vedno bo prej prebralo in zaznalo tipko preden jo boš ti spustil. Pa ne pozabi debouncinga na tipki.
Podpisa ni več, ker so me poskušali asimilirati.

korenje_ver2 ::

snow ja to je dobra ideja. tmr0 bi se vsako 1ms aktiviru in bi chekiru port, ce je bla tipka aktivirana. tm pr tipki bi dal kak 200nF-500nF kondi (al kako se to ze kej zracuna :P), da bi obdrzu aktivacijski signal se neki casa. Procesiranje tega signala seveda ne sme motiti komunikacije med senzorjem in PICom.

BluPhenix ::

Spet kompliciraš. Zakaj bi sploh rabil, da je kontroler v power down?
Podpisa ni več, ker so me poskušali asimilirati.

Jackal ::

Lahko si brez skrbi, da slučajno tipka ne bo dovolj dolgo aktivna. da bi pic to zaznal. Bolj problem boš imel z debouncingom (ti. odskakovanje kontaktov ob pritisku - zato bo pic prebral več pritiskov). Drugače imaš pa tudi registre, katerih vrednost se postavi ne glede na to ali je pic zaposlen s programom ali ne.

[sarcasm]
Če ne pa najbolje da vzameš kar en Core2Duo... Na enem jedru boš imel glavni program, na drugem pa skeniranje tipk. Ali še boljše kar ali še boljše Quad Core... če te slučajno prime, da bi rad skeniral še kakšno tipko. >:D
[/sarcasm]

Kot ti je že večina do zdaj svetovala (oz. ti vbija v glavo) - loti se že enkrat konkretno dela. Lahko da boš že pri prižiganju LEDice naletel na probleme, ki jih sploh nisi predvidel. Kaj šele programiranje kakšnega LCDja.
Walking the way is something completely different than imagining the way.

CCfly ::

Zaradi tega ker mladeniča razganja od želje po ustvarjanju, na koncu bo pa vse skupaj opustil, ko bo ugotovil da se mu še LED-ice ne prižgejo. Z drugimi besedami zmanjšaj apetite in začni poslušati dobronamerne nasvete kolegov.
"My goodness, we forgot generics!" -- Danny Kalev

kobilica ::

CCfly,se strinjam.Jaz sem hotel tudi cross fade ledice,ampak sploh programskega jezika nisem znal.Trenutno se bom naucil Basic.

korenje_ver2 ::

pa joj no... ledice ni problem prizigat. v glavnem ledice znam prizigat. sedaj pa naprej. tko da nic vec o ledicah jasno? :\

v glavnem kar se tice bouncinga stikala, se to odpravi z vmesnim kondenzatorjem.

BluPhenix ::

v glavnem kar se tice bouncinga stikala, se to odpravi z vmesnim kondenzatorjem.

Napačen odgovor, vrni se k ledicam, resno. Če pa misliš drugače pa povej kako bi vezal ta kondenzator.
Podpisa ni več, ker so me poskušali asimilirati.

korenje_ver2 ::

bluphenix: http://www.mstracey.btinternet.co.uk/pictutorial/progtut12.htm

Secondly, I have included a de-bouncing circuit across the switch. This is needed because every time you flick a switch, the contacts will bounce. This will make the PIC think there have been more than one switches. With the de-bouncing circuit, when the switch goes high, the capacitor charges up. no matter how many times the switch goes to +5V, the capacitor will only charge once. The capacitor is discharged when the switch is thrown the other way. If you want to see the effects of switch bounce, then disconnect the capacitor and resistor across the switch.

BluPhenix ::

Uh, šele zdaj sem videl, da si napisal o debouncingu stikala. Ja za stikalo je tisto primerni način debouncinga, problem pa je to, da ne deluje pri tipkah in navadno imaš tipke, ne stikal. No, razen če hočeš komplicirat.

Tako da, ok vzamem nazaj, stikalo se da debouncat s kondenzatorjem.
Podpisa ni več, ker so me poskušali asimilirati.

Zgodovina sprememb…

Brane2 ::

Da se, je pa v večini primerov trapasto, ker to lahko narediš s SW.

korenjev2: Sploh pa ne vem, kaj se sploh še ukvarjaš s tako enostavnimi zadevami.

Ti rabiš čip z vhodom za mikrofon( s posebnim senzorjem za zaznavo mahanja rok) , preko katerga bi mu lahko lepo razložil kaj hočeš od njega in pustil zadevi, da se sprogramira sama... :\
On the journey of life, I chose the psycho path.

Zgodovina sprememb…

  • spremenil: Brane2 ()

korenje_ver2 ::

glih gledam http://www.sxlist.com/techref/microchip...
ka je ze vse napisan, sam dveh tipk nima... pa graficnega zaslona... mogoce bom kr na tej kodi gradil.

korenje_ver2 ::

lejte tole.. http://free-vz.htnet.hr/Ivica-Novakovic...
kontroliranje lcdja in termometra na pic 12F

No jaz sem snel lcd iz nekega starega telefona... ne vem glih kera nokia je. LCD ima 10 konektorjev. lcd je barvni. Opazil sem da če postavim voltmeter na prvi strani na 3. pin in 0V, se osvetlitev lcdja poveča. 0V+pin2 na tej strani pa ugasne led. ostane samo še 4. pin na prvi strani, ki je verjetno 0V.
na eni strani je prvi pin 4-18V, kar izgleda da je signalni pin, drugi-četrti je 0V, peti pa točno 2.76V
na drugi strani je prvi in drugi pin 1.8V, tretji niha okoli 0.2V, četrti niha okoli 0.05V, peti niha okoli 1.6V





No zdej bi tale lcd zvezu z com portom in se malo igral... kva moram narest? :P

a sem že našel specifikacije :D zakon

http://www.sparkfun.com/commerce/produc...

Zgodovina sprememb…

  • zavaroval slike: Azrael ()

neoto ::

korenje, še veliko polente boš moral pojest...

BTW, sporoči, ko boš usposobil LCD!

korenje_ver2 ::

nekateri bi pa res vse naredil, da bi izgubil voljo za uresničitev svojih idej...

namesto da bi bili vzpodbudni in pomagalni. forum ni zato, da nekomu govorite nej gre ledice prizigat.

Zgodovina sprememb…

BluPhenix ::

Forum je zato, da bi nekomu pomagal. ČE pa ta nekdo resno pokaže, da ne misli upoštevati nasvetov ljudi, ki imajo na področju, katero ga zanima precej izkušenj, ti ki bi radi pomagali zgubijo voljo.

No zdej bi tale lcd zvezu z com portom in se malo igral... kva moram narest? :P

Ja zveži in se igraj ne ... sej ne rabiš nasvetov in izkušenj drugih ...
Podpisa ni več, ker so me poskušali asimilirati.

korenje_ver2 ::

ja jz hocem zvezat lcd, vi mi pa govorite nej grem vezat led diode. mislm wtf.

kobilica ::

Hocejo ti dopovedati,da iz malega raste veliko!Res ne vidis?Ce so bis naucil prizgat LEDico,bos ze nekaj vedel,ce bos pa sel direktno na LCDje,brez da bi vedel kaj delas,mogoce ti bo uspelo,ampak se vedno ne bos vedel za kaj se gre.
Na tvojem mestu bi sel pogledat na google,kako dela LPT,in LCD,program pa znas napisati mar ne?

Pa se link,ceprav ni barvni LCD,saj je vseeno.

Link!

Zadovoljen? Ce ti ne uspe,pojdi prizigat LEDico

neoto ::

Ti hočeš prižigat diode, mi ti povemo osnove, ti teoriziraš, mi te prepričujemo, da nehaš, ti raje spet začneš razgljabljat o grafičnih! LCDjih, mi ti povemo, da je bolje, da začneš z alfanumeričnimi, ti se raje odločiš, da boš barvni LCD uporabil... WTF?

neoto ::

BTW, večina nas tistih, ki ti želimo pomagati, a nas ne poslušaš, je že držalo kar nekaj mikrokontrolerjev v rokah, pa na boš verjel, programirali smo jih tudi. Ko boš tudi sam začel, boš ugotovil, da ti s papirjem in svinčnikom nekako ne more uspet napisat delujočega programa (razen če imaš res zelo zelo zelo velik 'zegn').

Zgodovina sprememb…

  • spremenil: neoto ()

korenje_ver2 ::

kobilica, eno je prizigat take namenske naprave, kjer veš kakšni so izhodi, drugo je pa vzet lcd iz neke serijske naprave in ugotovit, kva je ker input, poleg tega pa še uspet napisat kej na tak lcd...

no sedaj pa tako... ko sem meril napetosti na kontaktih,

Ok mi lahko kdo pove, kaj vse rabim, kere upore, da prižgem backlight na lcdju, če imam znane tele podatke:
(za vir bi uporabil 5V napajalnik)

3.92V pin1 - pin2 || pin3

ko je led dioda prižgana
6.6V pin1 - pin2
7.13V pin1 - pin3

18.81V pin1 - pin2 || pin3 brez lcdja priključenga
~0.8V pin2 - pin3 (ko sem dal kratek stik na ta 2 pina, je backlight zacel svetit veliko bolje)

pin1 naj bi bilo LED V+
pin2 naj bi bil GND za LED
pin3 naj bi bil splošen GND
pin4 je brez uporabe
pin5 je verjetno VCC-display (2.74V neglede v kakem stanju je lcd) - kratek stik z gnd in pin5 ugasne lcd. LCD se nazaj ne prižge, doker ne ugasnem mobitela.

Ok po sledečih podatkih naj bi znal prižigat in ugašat backlight.

Na drugi strani pa:
pin1 - gnd 1.8V (kontakt CS, ki ne vem čemu služi). Kontakt je vedno 1.8V, razen če ugasnem mobitel.
pin2 - gnd 1.8V (kontakt SCK...)
pin3 - ~?? (kontakt SDATA verjetno)
pin4 - ob stiku z GND se lcd resetira za cca 2 sekundi
pin5 - GND 1.8V (VCC-DIGITAL ??)


Sedaj pa če mi kdo da kake pointerje, kako narest 18.8V iz 5V, potem pa kako reducirat iz 5V na točno 2.74V, ter iz 5V na točno 1.8V

Zgodovina sprememb…

zcetrt ::

Ej, Korenje, a se zavedaš. da si se ravnokar začel ukvarjati s prižiganjem ledice? :))



Glede Watchdoga... Se opravičujem za dezinformacijo.
4.
««
2 / 11
»»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Microchip MPLAB icd 2 (pic16f876a)

Oddelek: Programiranje
111119 (996) Highlag
»

PIC18F4550 in ds18s20

Oddelek: Elektrotehnika in elektronika
191888 (1567) snow
»

Zelo pocasno utripanje LED diode (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
508418 (7623) a13misko
»

PIC 16f84A - utripanje

Oddelek: Elektrotehnika in elektronika
222092 (1892) ql000
»

mikrokontrolerji, programatorji, c/asm ?

Oddelek: Elektrotehnika in elektronika
292872 (2491) snow

Več podobnih tem