Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
"Adatlap az vajon mi ?"
Attól is függ hogy milyen pic en állítod. De nagy vonalakban azt állítja hogy az IO pinek az analóg komparátor, vagy ad átalakítóhoz csatlakozzanak-e, vagy digitális ki-be menetek legyenek. Idézet: „Nem kell bankot váltani a 18-asoktól felfelé.” Ez így ebben a formában nem igaz! Ugyanúgy vannak bankok. Lapozni nem kell. Valamint az SFR regiszterek bármelyik bankból elérhetők.
Huh, nem gondoltam volna, hogy ilyen, de azért köszi Azt hiszem megostromlom a tanárt
A 18F-eket minden további nélkül lehet programozni a 16F-es utasításokkal. Ezen felül van még néhány új utasítás, amik hasznosak és érdemes őket használni(pl. BRA, RCALL,tábla műveletek stb. ) de ezek nélkül is lehet rájuk programot írni, csak nem érdemes.
Nézz meg egy adatlapot és látni fogod, hogy alapjában véve a felépítés hasonló, csak több biten tárolódik a program, ezért egy utasításba beleférnek a relatív ugrások is. (BZ, BNZ stb.) A 18F-eket sokkal könnyebb programozni, nem kell a lapokra figyelni, és nem kell bankot váltani, ha funkció regisztereket akarsz elérni(TRIS, PORT, stb...). Nagyobb memóriás példányoknál viszont megmaradtak a 256bájtos bankok a RAM területen, de ez nem okoz akkora bonyodalmat, mert ha az 1-es bankra váltasz, akkor a 0-ás első 128 bájtját bankváltás nélkül elérheted, és így 384 bájt áll rendelkezésre bankváltás nélkül! Próbáld ki, tetszeni fog a 16F-ek után! Idézet: „Azt hiszem megostromlom a tanárt” Inkább a www.microchip.com honlapot ostromold meg!
oksa.
köszi, én is próbáltam és rájöttem.. ezt a képletet írtam bele: T=25*(3*1024-1024)/512 és kijött nekem a 100 azaz a 0x64 hexa. remélem most már minden olyan számra működik ami benne van a 65536-os értékben, próbálgattam nekem mindent visszaadott, várom a visszajelzéseket.
Közben nagy nehezen találtam egy kis leírást, most azt értelmezem, de kezdek rájönni, hogy mi is ez. Csak nehéz leírni.
Remekül hangzik! Köszi!
Trudnai,átnéztem az utasitásokat, tányleg van különbség rendesen. Köszi hogy szóltál. És az LCD vezérléshez lehet találni valahol pl progit vagy ilyesmit? Eddig itt az oldalon keresgéltem, de még nem leletem semmire, lehet én vagyok a vak. Idézet: „És az LCD vezérléshez lehet találni valahol pl progit vagy ilyesmit? Eddig itt az oldalon keresgéltem, de még nem leletem semmire, lehet én vagyok a vak.” En beirtam a googliba: 'LCD PicDem2' utana elso talalatra rakattintottam ami a Picdem2 UsersGuide-ja. Ezekutan 6. fejezetra ramentem, ahol irja, hogy az AN587 -es targyalja az LCD-t. Rakerestem a Microchip oldalan az 'AN587' kifejezesre, es letoltottem a PDF-et meg a ZIP-et.
Igen, asm-ben programozok.
A hibauzenet a kovetkezo: Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x00000020 Errors : 1 Link step failed. A forrasfile-ok felépitése egyebkent sikeres onmagukban. Gyanitom, valami formai hiba lehet a forrás file-okkal. Kreáltam egy végtelen egyszerű programot csak a példa kedvéért (ledet léptet gomnyomásra, valamint egy másik forrás file-ban NOP-al megoldott késleltető rutin a kapcsoló pergésének kiküszöbölésére) lsd csatolt file-ok. Ezt a kettőt hogyan lehetne összehozni? Előre is köszönöm a segítséget!
Ez igy persze hogy nem megy, abszolut modben akarod hasznalni a linker scriptet. Nem olyan regen irtam ezen a forumon egy rovid leirast hogyan kell a valtozokat es a program kod teruleteket hasznalni linker scripttel, kress ra es olvasd el.
Azonban a pergesmentesites.asm-ben nincs kod! Ott csak egy makro definicio van amit nem hasznalsz sehol. A main.asm-ben ezt a makro definiciot nem fogod latni soha! Ha igy akarod csinalni akkor azt egy INC file-ba kell betenni es beincludalni, ha pedig kulon kodban szeretned akkor at kell alakitanod rutinna, call-lal meghivni es return-nel vissza terni. Ja es persze globalis-nak kell definialni, a main-ben pedig externkent deklaralni. Idézet: „Remekül hangzik! Köszi!” Olvasd el a többi hozzászólást is, ami ide tartozik? Mert remekül hangzik, csak nem teljesen igaz... (#318830) Aztán én is írtam valamit neked, azt olvastad? Mert szerintem nem sok eltérés van, pedig Te azt írod sokat látsz. Ez csak a látszat. Na mindegy, nem számít....
Örülök, hogy működik. Na, és mi a kérdés?!
kérdésem az mindig akad
végül is az lenne,h.itt a képletnél (T=25*(3*i-1024)/1024), miért 1,5 V lett referencia feszültségnek számolva? mikor én az A/D konverziónál VCFG be beállítottam 1-et azaz 1=Vdd, ez alapján. "Vout = Aout * Vref / 1023 ahol Aout az ADC-ből kiolvasott 0-1023 közötti szám Vref a referencia feszültség, amit az ADC kap" mitől függ ez a beállítás a konverziónál meg a képlet esetében, egyezni e kell mindenképp a Vref értéknek(gondolom igen)?? így most számolhatom át a képletet? eszközömön nem tudok feszültséget állítani.
1,5V nem lehet a referencia fesz!
Adatlap (TABLE 17-15: )!
najó akkor mindenképp 2,2-5 V között kell lennie, ha jól értelmezem.
akkor most mindent számolhatok át??
akkor azt mondja meg nekem v.ki, hogy számolódik a képletem és milyen referencia feszültséget kell választanom(A/D-nél 5 V-ot állítottam be)??
Ta=(Vout-0,5)/0,01 mert most nagyon nem tiszta.
Mi ez a Vout? Ez nem DA hanem AD !
Mar korabban jol irtad (majdnem), hogy ha Vdd a referencia, akkor a felbontasod Vdd / 1024 lesz (10 bites AD eseten). Azaz Vref / 1024... Magyaran a merendo feszultsegnek minden korulmenyek kozott Vdd es Vss koze kell esnie. _akarmi is tortenik_ ! Tehat ha max 12V-ot akarsz merni akkor pl egy fesz osztoval le kell osztani Vss - Vdd koze - tipikusan 0 es 5V koze. Azt, hogy a beerkezo (merendo) 5V az valojaban 12V-nak felel meg azt szorzassal szamolod ki: U = ADres * (Vmax / ADmax) Ezekutan 10 bit AD eseten ha Vmax=12V es Vref=5V : 1. Vin = 12V -> ADres = 1024 --> 1024 * (12V / 1024) = 12 ... 2. Vin = 6V -> ADres = 512 --> 512 * (12V / 1024) = 6 ... 3. Vin = 0.1V -> ADres = 8 --> 8 * (12V / 1024) = 0.09375.. Eleg bonyas, mi? Meresi pontatlansagok mindig lesznek, nemcsak a felbontasbol adodoan, hanem mert az AD sem tokeletes, a referenciad sem tokeletes (foleg ha Vdd-t hasznalsz ra... de meg ha egy LDO-s Vref aramkort is hasznalsz annak is van egy bizonyos pontatlansaga, tehat a meres sem lehet pontos). Also kb ket bited valoszinuleg kisebb-nagyobb mertekben ugralni fog... Azonkivul a fesz oszto aramkorod sem lesz pontos - foleg ha 5%-os ellenallasokbol oldod meg - tegyel bele egy trimmer potit es szabalyozd ki, persze nyilvan az is homersklet es paratartalom fuggo, de remelhetoleg nem kell neked ezekre most figyelni. Sok sikert!
hát igen.
de sztem én nem erre gondoltam. mivel szeretnék hőmérsékletet mérni(mire már többször leírtam a képletet), nem feszültséget, ezért ezt nem értem. "Magyaran a merendo feszultsegnek minden korulmenyek kozott Vdd es Vss koze kell esnie. _akarmi is tortenik_ ! Tehat ha max 12V-ot akarsz merni akkor pl egy fesz osztoval le kell osztani Vss - Vdd koze - tipikusan 0 es 5V koze." a mérési pontatlanságokkal és 10 bites felbontással egyet értek én is. De mellette majd persze páratartalmat és fényt is mérnék, mivel a NYÁK erre lett megtervezve, és potit nem gondoltam bele. sajnos ez még nem a kérdésemre a válasz vagy csak nemjól értelmezem.. A kérdésem az,h.van egy szenzorom minek van egy képlete, miből számolhatom az aktuálisan mért értékét, és van a kontrollerem amivel ezt szeretném feldolgozni és majd kiküldeni. Milyen Vref-et érdemes/kell választanom mind az A/D mind a képlet esetében, és ez hogy módosítja a képletem? Köszi
A Te hozzászólásodat nem vettem észre, de most megkerestem. Éjjel unatkoztam, és ugy döntöttem végigolvasom a 18F4520-es adatlapját, szóval elkezdtem és átolvasom. Biztosan találok hasznos információkat
Én még goglin nem kerestem csak itt az oldalon, de ezek után megteszem
Homeres, hmm, hat kulonbozo hoelemek leteznek, altalaban par tized milivoltod adnak le fokonkent, ugyhogy annal erositot kell alkalmazni, pl opamp-ot, hogy merni lehessen. Ott meg bonyolodik is a keplet, hogy bizonyos fokoknal a gorbe megvaltozik, tehat mindenkepp kepp egy kompenzacios tablazat is.
Szilvanak van egy nagyon jo kis paka projectje - PICsold - ahol parameterezhetoen kezeli le a merest, hogy a kulonbozo hoelemeket is le tudja kezelni. De azt hiszem epp o ajanlotta nemreg, hogy inkabb hasznald a Dallas homerojet amivel 1wire-el tudsz kommunikalni. Majd remelhetoleg kiegeszit ebben?
AZt írtam korábban, hogy 100 foknál 1,5 V a kijövő feszültség, ezért 1,5V-os referencia esetén lehetne optimális felbontással megmérni a 100 fokig terjedő hőmérsékletet. Minél nagyobb Vref, annál kisebb számot fog kiadni az ADC egy adott hőmérsékleten.
Igen, ha pl. 2,5V vagy 5 V a referencia, akkor át "kell számolni" a képletet (nem egy nagy "was ist das"). Idézet: Elvileg tehetsz utána egy erősítőt, de nem éri meg... „eszközömön nem tudok feszültséget állítani.”
Sziasztok,
van egy zsák kvarcom aminek 4 lába van (DIP14-es tok + van SMD is). Ezeket hogyan kell bekötni? Úgy láttam neten, hogy az 1-es és a vele átlósan lévő láb föld, a másik kettő pedig az osci lába. ez így helyes?
értem és köszi is, mivel az 1,5 V-al tök szép értékek jönnek is és az nagyon tetszik.
DE akkor most a képletben jó nekem az Vref=1,5 V, amit írtál,maradhat???????Nem baj,h.A/D-nél én Vdd=1-t azaz 5 V-ot adok meg????? "át "kell számolni" a képletet (nem egy nagy "was ist das")." Átszámoltam a képletet, de akkor pl ha Vref=5 V-al számoltam akkor nem szép szám jött ki(jóval 125 feletti érték). Akkor most hogy van ez??? Mivel számoljak???
Jól emlékszem, hogy ezen már egy jó ideje rágódunk, vagy az valaki más volt? Mindegy...
Ha van egy feszültség kimenetű hőmérő, akkor annak kimeneti feszültsége valamilyen lineáris függvény szerint követi a mért hőmérsékletet. (ha nem lineáris a függvény, akkor ki kell dobni, vagy nagyon meg lehet vele szenvedni a programal.) Tehát akkor legyen egy pl. -40°C-hoz tartozó feszültség érték, és legyen egy 120°C-hoz tartozó fesz érték, amelyik két érték között változik lineárisan a hőfok függvényében. Kérdések a hőmérődhöz: 1. mekkora a -40°C-hoz tartozó fesz érték? 2. Mekkora a 120°C-hoz tartozó fesz érték? Ha más szélső hőfokokat akarsz felvenni, akkor azokhoz tartozó feszeket add meg! Tegyük fel, hogy a szélső feszek megvannak, akkor meg kell vizsgálni, hogy belefér-e a 0..5V-os referencia tartományba. 3 lehetőség van: 1. Belefér pontosan. (heuréka) 2. Belefér, de pl. csak 1V a max., ami kevés, mert rossz felbontást eredményez. Eldöntjük, hogy ez a felbontás megfelel-e, és ha nem akkor erősíteni kell a jelen egy OPA-val(Pl. MCP6001), hogy 0..5V tartományba kerüljön a fesz. 3. Nem fér bele(több mint 5V!) Akkor pedig osztót teszünk, hogy a jel 0..5V tartományra redukálódjon. 4. Namost a negyedik... Van több is, de ezeket most hagyjuk... Ha megvan a fesztartomány, a 3 pont egyike szerint, akkor az A/D-vel meg tudom mérni a feszt. pl. A hőmérő jele 1 és 5V közé esik 0 és 120°C között. A 0-5V 1024 részre osztódik fel a 10bites A/D által, tehát 1bit változás 5/1024=0,00488V lesz. Az 1 és 5V között 4V a különbség, ami az 1024 4/5-öd részére esik, azaz 819 részre bontódik a 0..120°C tartomány, így a felbontás 0,146°C lesz. Tehát a 205 jelenti majd a 0°C-t a 614 a 90°C-t és az 1024 a 120°C-t. Ezt természetesen bárhová el lehet tologatni és bármilyen hőfokokat lehet rendelni a feszültségekhez az osztóktól, OPA erősítésektől és a referencia fesztől függően. Ha szerencsés vagy, elég csak a hőmérő feszültségét megmérni, és ahhoz rendelni. A lényeg az összerendelés! Remélem elég gyalogmódon sikerült leírnom!
Bocsi, a 614-hez a 60°C tartozik!
csatoltam egy excel képet is...
Még annyit, hogy az általam felvetett 0..120°C tartomány csak hasraütés volt, nem volt köze a korábbi -40°C től 120°C felvetéshez, ez ne zavarjon meg. A számítások -30°C ra jönnek ki, azaz a 0V a -30°C- hoz tartozik. Természetesen csak át kell kalibrálni a számításokat, és máris -40-hez fog tartozni a 0(vagy bármilyen hőfokhoz, amit szeretnél...). Ha a hőmérőd nem megy le 0-ig, az se baj, akkor az lesz a legkisebb fesz, amit a hozzá tartozó hőfokhoz rendelsz. Ekkor csökken a felbontás is...
Nem. Elsősorban nem kvarcok, hanem kavrcoszcillátorok.
Bekötés: Általában 1=NC (vagy disable, amelyik kapuzható...) A mellette levő a GND láb. Az 1-es lábbal szemben levő (8-as vagy 14-es lábnak hívják) a Vcc (típustól függően +5V, +3.3V vagy egyéb). Az 1-es lábbal átlósan szemben levő az oszcillátor kimenete (általában TTL kompatibilis). A feliratok alapján nem árt adatlapot keresni, márcsak a tápfesz miatt is...
Idézet: Persze, hogy nem baj! Csak tudjál róla, hogy akkor Vref=5V, s ezzel számolj, ne mással! Ez esetben az ADC-ből mindig (viszonylag) kis számok fognak kijönni, nem tudod kihasználni a 10 bites tartományt...„Nem baj,h.A/D-nél én Vdd=1-t azaz 5 V-ot adok meg?????” Az ADC-ből kiolvasott szám ugyanis a bejövő jel és Vref arányának az 1023-szorosa. |
Bejelentkezés
Hirdetés |