Fórum témák
» Több friss téma |
Köszi, de annyi sz... telepítettem már, ezért biztosra akarok menni.
melyik változatot töltsem le ? lite? standard?
Szerintem mindegy. Én a Standard-Eva csomagot választanáml, de őszintén szólva nem tudom, hogy van-e bármi differencia a Lite változathoz képest. A letöltéshez regisztrálni kell magadat.
Csak arra ügyelj, hogy a letöltéseknél az Upgrade csomaggal ne próbálkozz, mert az licensz beszerzése nélkül nem telepíthető!
Még egyszer köszi, villog a led- mégpedig C-ben!
Sziasztok!
Nekem is lenne egy kérdésem. Remélem ebbe a topicba való. Van egy 18F4550 pic-em, az első négy analóg csatornáját szeretném használni, azaz analóg jelet mérni. Most a négy analóg csatornán négy 10KOhm-os potenciométer van felrakva és azokat figyelem/szabályzom. Az a problémám, hogy a pic-ken mért feszültség eltér a voltmérőmön mért feszültségtől. Az eltérés tizedes nagyságrendű. Nem tudom, hogy ez még belefér a tűrésbe vagy sem? Vagy én állítottam be valamit rosszul? A potenciométereket úgy kötöttem be, hogy az egyik fix lábát a földre a másikat a +5V-ra kötöttem és a harmadik lábát egy 1KOhmo-os ellenálláson keresztül kötöttem a PIC analóg lábára, illetve egy 100n kondin keresztül a földre kötöttem. Ezt szerintem jól kötöttem be, mert két analóg bemeneten is tudok mérni. Az alábbi programot használom hozzá:
Remélem tudtok nekem segíteni, hogy mit ronthattam el, hogy nem pontos értéket kapok vissza. Segítséget előre is köszönöm! Idézet: „A hivatalos fordító működött két napig.” Nem tudok erre mit valaszolni -- illetve annyit, hogy nem lehet, hogy azon a gepen egyszer mar fel volt installalva a proba valtozat? Amugy akkor sem szabad velemenyem szerint crackelt valtozatokat telepitgetni, mivel azok csak nem kert biztonsagi reseket hagynak a gepeinken. Na mindegy, orulok, hogy a Microchipes forditokkal sikerult elerni amit szerettel volna!
Szia!
A/D csatornaváltás után 2 * Tad időt kell várni az A/D indítása előtt.
Esetleg a tisztelt felhasználó átállította a dátumot, s a program ezt "díjazta"?
Tippnek jó, de mi lenne az indíték?
Eddi - az elmúlt 23 évben - nem volt olyan alkalmazás ahol a dátumot kellet volna állítgatnom. Még tegnap előtt sem De azért köszi, most éppen a picula project alapjain gyakorlatozok. Idézet: Pont arra céloztam, hogy nem jó! „Tippnek jó” Idézet: Tisztázzuk már, hogy az a 4 MHz-es kvarc komoly? Mert akkor sürgősen át kell írni a konfigurációs beállításokat.„most éppen a picula project alapjain gyakorlatozok.” Úgy látom, hogy nálad a LED-ek is fordítva vannak bekötve (magas szint kiadására világítanak), mint nálam. LED-villogtatásnál ez mindegy, de lesznek olyan programok, ahol zavaró lehet a fordított működés, ezért ott majd módosítani kell a programot. PICkit2-vel programozol, vagy mivel töltöd be a programot?
És erre tud valaki valamit mondani, hogy miért nem működik rendesen?
Vagy egy működő kódot tud valaki ajánlani?
Valóban a beépített kvarc 4 Mhz-es, de van egy foglalat, és egy jumper, és bármi mással hajthatom.
Most is így gyakorolok. (most éppen 8 Mhz) A led villogtatásnál valóban mindegy a led bekötése, ha nem tetszik a minta azt könnyen átírom. A billentyűzet lekérdezés egyenlőre kicsit nehezebb. Egy után épített pickit 2-vel programozom, és általában arról kapja a tápot is.
Most csak ugy feluletesen neztem at, de nyilvan mikor hozza adsz, akkor a szma nem mehet at pozitivbol negativba -- akkor mar szatural. Ha kivonsz, akkor negativbol nem mehet at pozitivba. Es szerintem amit kivonnal ill hozza adnal, annak a meretet is szabalyozni kellene.
Milyen hozzáadásra gondolsz? Én csak kivonásokat csináltam.
A "MOST_H" változóra gondolsz? Mert nekem ezt +127-nél kellene megfognom és nem valami köztes értéknél (pl. 50). És elég nagy ugrások is lehetnek benne (pl. 100 után már -40 jönne).
Szia!
Kivonás után: Pozitív számot kivonva: Meg kell vizsgálni az eredmény legfelső bitjét. Amennyiben eltér a kisebbítendőétól és 0, akkor a legkisebb negatív számmal helyettesíteni az eredményt (8 bitre 0x80, 16 bitre 0x8000). Negatív számot kivonva: Meg kell vizsgálni az eredmény legfelső bitjét. Amennyiben eltér a kissebbítendőétól és 1, akkor a legnagyobb pozitív számmal helyettesíteni az eredményt (8 bitre 0x7F, 16 bitre 0x7FFF). Összeadás után: Pozitív számot hozzáadva: Meg kell vizsgálni az eredmény legfelső bitjét. Amennyiben eltér az első tagétól és 1, akkor a legnagyobb pozitív számmal helyettesíteni az eredményt (8 bitre 0x7F, 16 bitre 0x7FFF). Negatív számot hozzáadva: Meg kell vizsgálni az eredmény legfelső bitjét. Amennyiben eltér az első tagétól és 0, akkor a legkisebb negatív számmal helyettesíteni az eredményt (8 bitre 0x80, 16 bitre 0x8000).
Bocs, de ezt nem teljesen értem.
Milyen kivonás után és milyen összeadás után? Most írtam egy rövid kis kódot amivel megtudom állapítani, hogy jobbra vagy balra szeretne nőni a 16 bites változó értéke, vagy éppen egy helyben áll, azaz nulla. És most teszteltem túlcsordulás esetén is jól működik. Vagy nincs szükség ennek megállapítására? Egyébként a 16 bites váltózómban az érték 3 16 bites változó összeadásával keletkezik (jó esetben itt nincs túlcsordulás).
0x7FFF + 0x7FFF = 0xFFFE és nincs átvitel, de az eredmény 16 bites előjeles ábrázolásban -2.
Telítéses összeadást végezve az előjel változott és 1 lett, korrigálni kell az eredményt 0x7FFF -re.
Sziasztok!
Szükségem lenne egy "knight rider" -es futófény programjára, de olyanra, ahol az elalvó ledek fényereje fokozatosan csökken (szoftveres PWM). Gondolom, hogy több weboldalon is van, de eddig sajnos nem találtam, csak C nyelven írt programokat. Nekem AMS kéne! (nem c lefordítva asm-re) Kérem, aki tud, linkeljen egyet. Köszönöm előre is! u.i.: annak nagyon örülnék, ha csak ezt a funkciót tudná a program, mert nem túlságosan értek a picekhez, így biztos vagyok benne, hogy nem tudnám kibogarászni a nekem szükséges részt
Köszönöm a választ, de még mindig nem pontos a mérés. Nem tudom, hogy az ADC-t jól állítottam-e be. Meg tudod esetleg nézni a programomból?
Köszi
De igen, meg kell allapitani merrefele szatural... Gondolj bele: A max pozitiv ertek amit a 16 bites elojeles szamod felvehet 32768 (avagy hexaban 0x7FFF). A minimum -32768 (azaz hexaban 0x8000). Namost, felvetodik ket kerdes:
1. Honnan tudod egy szamrol, hogy az tul nagy-e, vagy tul alacsony? 2. Ahogy lathatod a hex abrazolasbol, a ket veglet eleg kozel all egymashoz... (szamabrazolasbol adodoan) Szaturalni csak akkor tudsz, ha tudod a novekmenyt. Ha az pozitiv, akkor pozitiv iranyba szaturalsz, ha negativ, akkor negativba... Amugy pedig ez egy eleg specialis eset, mikor a minimum ill maximum abrazolhato szamot szeretned vizsgalni. Ebben az esetben ugyanis elegendo a novekmeny utan vizsgalni az atvitelt (carry flag) es abbol megallapithato, hogy szatural-e vagy sem... Tehat pl ha mindig osszeadassal csinalod, akkor elobb megnezed, hogy tortent-e tulcsordulas, majd ha igen, akkor megnezed a novekmeny negativ-e -- ha igen akkor felveszi a -32768 -at, ha nem akkor pedig a +32767 -et... Idézet: „Ebben az esetben ugyanis elegendo a novekmeny utan vizsgalni az atvitelt (carry flag) es abbol megallapithato, hogy szatural-e vagy sem... Tehat pl ha mindig osszeadassal csinalod, akkor elobb megnezed, hogy tortent-e tulcsordulas, majd ha igen, akkor megnezed a novekmeny negativ-e -- ha igen akkor felveszi a -32768 -at, ha nem akkor pedig a +32767 -et...” Sajnos két előjeles ábrázolású pozitív szám összeadása után nem keletkezik átvitel a C jelzőbitbe, az eredmény mégis átfordulhat negatívba. P;lda itt.
Közbe rájöttem, hogy mire gondoltál csak siettem és már nem volt időm válaszolni.
Írtam is egy kis kódot csak azzal a különbséggel, hogy az összes változó előjelét figyelem, ugyanis ha úgy csinálom ahogy te írtad, akkor az nem fog működni abban az esetben ha negatív számot adok az eredményhez. Pl. -2+127=125 127+(-2)=125 És mind a kettő pozitív szám. Ha úgy csinálom ahogy írtad, akkor az első esetben a legkisebb negatív számmal helyettesítené az eredményt a program, míg a másodikban nem csinálna semmit. Ha jól gondolom. Tehát a programom ami így sem működik:
Ez most azt csinálná, hogy ha a részeredmény "+", C is "+" és RES "-" akkor a legnagyobb számmal helyettesít. Illetve ha a részeredmény "-", C is "-" és RES "+" akkor a legkisebb számmal helyettesít. A hiba meg az, hogy nem akar változni a felső bájt, úgy csinál mintha nem kezelné összeadáskor az átviteleket. Illetve néha bevillan egy "1"-es a felső bájtnál de utána visszamegy "0"-ba. Szóval mi lehet a hiba? Off: a hexától meg kíméljetek már
Sehonnan nem tudom, hogy túl nagy egy szám, csak meg kellene fognom a jelet nehogy túlcsorduljon és pozitívból hirtelen negatívba menjen át. Egyébként egy integrátorhoz kellene a szaturáció.
De mint írtam azt sikerült megcsinálnom, hogy kijelezzem merre fele haladnak a számok, pozitívba vagy negatívba mégsem értem el vele nagy áttörést.
Szia!
Még két hozzászólással visszaolvasva... Különbséget kell tenni, hogy pozitív vagy negatív számot adunk hozzá az előző eredményhez. -2+127=125 Idézet: „Összeadás után: Pozitív számot hozzáadva: Meg kell vizsgálni az eredmény legfelső bitjét. Amennyiben eltér az első tagétól és 1, akkor a legnagyobb pozitív számmal helyettesíteni az eredményt (8 bitre 0x7F, 16 bitre 0x7FFF).” Nézzük, az eredmény előjele eltér az előző eredményétól (-2), de az előjel bit értéke 0, így a 125 jó eredmény, nem kell telíteni. 127+(-2)=125 Idézet: „Negatív számot hozzáadva: Meg kell vizsgálni az eredmény legfelső bitjét. Amennyiben eltér az első tagétól és 0, akkor a legkisebb negatív számmal helyettesíteni az eredményt (8 bitre 0x80, 16 bitre 0x8000).” Nézzük, az eredmény előjele nem változott, nem kell telíteni. -126 + (-126)= 4 Most az eredmény előjele nem egyezik a kiinduló érték előjelével, az előjelbit értéke 0, helyettesíteni kell -127 -tel. Vagy 127 + 127 = 254 Az eredmény előjele eltér az előző eredményétól (127), és az előjel bit értéke 1, így helyettesíteni kell 127 -tel. Windows calculator - hex.... Idézet: „helyettesíteni kell -127 -tel” Helyett: helyettesíteni kell -128 -tel
Le tudnád pontosan írni hogy mi a feledat? Addig érthető hogy 16-bites számok túlcsordulását szeretnéd elkerülni (telítődéssel). A minimum és maximum értékek azok a 16-bites 2-es komplemens ábrázolás szélsőértékei, igaz? ($8000 ill. $7FFF, azaz decimális -32768 ill. +32767)
De honnan jönnek ezek a számok? Ez egy adatfolyam?Ezek eleve 16-bitesek? Abszolút értékek vagy növekmények? Van valami kezdőérték, ahonnan indul a folyamat? Van esetleg maximális értéke a növekményeknek (különbözetnek)?
Helló!
Így már oké, csak félre értelmeztem a mondatot, úgy értelmeztem, hogy neked az első tag az amit hozzáadsz, de mindegy, most már értem. Akkor ugyanazt a kódot írtam meg elvileg amit írtál. A kódot átnézted? Szerinted az jól van? "Windows calculator - hex...." Tudom, azt használom csak minek nyissam meg mindig ha decimális számokkal fejben is megy nagyjából.
Igen, azok lennének a szélsőértékek. A számok 3db 16 bites változó összegéből keletkeznek aminek tagja hol negatívak, hol pozitívak lehetnek. Kezdeti állapotban mindenki nullán van és külső megszakításkor megváltozik pl. az egyik változó értéke és a ciklus végén a jelenlegi eredményt egy előző értéket tartalmazó változóba tárolom el és így szépen magától nő a változó értéke minden ciklus lefutásakor, mivel az összegzésnél a tagok között szerepelnek az előző értékek is. Röviden ennyi.
Mi ez a 3 változó és mire kell? Miért kell őket összeadni? Mit akarsz ezzel az egész dologgal megvalósítan? Ha ismernénk a célt, ill. a rendelkezésreálló eszközöket, akkor könnyebben meg tudnánk határozni a módot.
Sziasztok, után épített PICKIT 2-vel szeretnék felprogramozni egy 18F25K80-as MCU-t, de nem látja. És a PICKIT2 szoftverben sem látom ezt a kontrollert. Lehet frissíteni a PICKIT2 programját hogy tudja ezt a kontrollert is programozni?
Üdv.: Miki |
Bejelentkezés
Hirdetés |