Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Érdekelne az a gördülő átlagolás is, mert a 12 óra az csak egy példa volt. Lehet, hogy nagyobb lesz a figyelési intervallum.
Sziasztok!
Megtudná mondani valaki,hogy milyen alkatrészek a követketők: (Eprom) TMS2708JL-47 DP8122 a másik: MCM2708C 7909 És mit lehet vele kezdeni?
1. Ebben a (kiemelt) topikban kellett volna kérdezni!
2. Valószínűleg 1 kbyte (1024x8 bit) UV-EPROM. Elektromosan írható, UV fénnyel törölhető. 3. Google a 2708 EPROM kulcsszavakkal segít!
Közben a másodpecenkénti kijelzést az ötleted alapján úgy fogom megvalósítani, hogy timer1-et be illetve ki kapcsolom a szelep működésének megfelelően. 8-as osztással 2Mhz-es órajelen. Így kapom meg a lehető legpontosabb értéket.
Az átlagoláson még gondolkodom...
A leheto legpontosabbat CCP-vel kapnad ahogy azt mar javasoltak neked. De mindegy, ilyen interruptozassal is el lehet intezni, csak majd a prioritasokra is ugyelj...
A "gördülő" átlagolás alatt azt értettem, hogy adott sűrűséggel beteszed az értékeket a memóriába és azokat átlagolod --> ez a tipikus átlagolás, csak itt össze is kell adnod meg osztani is kell! Ilyenkor célszerű úgy megválasztani a memória cellák számát, hogy 2 egész számú hatványa legyen és akkor az osztás csak shiftelés!
Steve
Ha valakinek lenne 16f628-ra magyarul felkommentezett asm kódja két 7szegmenses kijelző multiplexére azt nagyon megköszönném ha feltenné.Ezzel szenvedek már egy ideje.A tut10_1 asm müködik de nem látom át.A másik asm -et én próbáltam 628 ra átirni de nem jó mert a két számjegy egyszerre látszik a kijelzőkön.A probapenelen nem használok quartzot csak a belső oszcillátort, okozhat hibát?
Az első forráskódot lefordítja neked az MPLAB?
Lefordul,csak a confgbitekre panaszkodik.Az égető programban állítottam belső oszcillátorra.
Szia,
fel volt telepítve a graphviz csomag, átírtam ezeket a dolgokat a doxyfile-ban, azonban nem generál semmi, ellenben olyan hibákat dob, hogy nem tudja megnyitni a map fájljait... Neten keresgéltem, másnak is vannak ilyen gondjai, de megoldást nem találtam Idézet: „Az égető programban állítottam belső oszcillátorra.” Az nagyon nem jo otlet! Nincs dokumentalva a forrasodban es honnan fogod tudni par het elteltevel mit is egettel be? Tessek megnezni az adatlapban ill a header / include file-okban, hogy hogyan kell azt a forrasbol beallitani!
Sziasztok!
A segítségeteket szeretném kérni. Meg szeretnék tanulni PIC-et programozni. Tudom, nem egyszerű dolog, már utánna olvastam egy két dolognak! Amiben kellene a segítségetek, hogy milyen PIC-et ajánlotok, ami nem is drága (mondjuk egy ezresből kijön), de van legalább egy (ha több, az se gond) analóg portja illetve ezenkívűl vagy 8 digitális. És ehez a PIC-hez milyen egyszerű programozót ajánlotok, ami működőképes is s házilag össze lehet rakni. Olvastam a neten rengeteg programozóról, de nem teljesen tudtam kiigazodni, mert valaki azt írja, hogy az egyszerű sorosportos JDM jó valaki eg azt, hogy nem jó. Nekem valami egyszerű kellene, ha tudtok segíteni. Természetesen idővel veszek egyet, vagy összerakok egy komolyabbat, de egyenlőre csak tanulni akarok és ezért nem igazán szeretnék sok pénzt rááldozni. Ha már úgy érzem, hogy tudok valamit s fejlesztenem kell magam, akkor majd látom értelmét komolyabb dolgokba befektetni. Dr. Kónya László úr könyve már megvan (megvettem és nem letöltöttem), de ezenkívűl milyen oldalakat ajánlotot, ahol érdemes szétnézni? (ha lehet, akkor magyar legyen) Ill. példa programokat hol keressek, ahol el is magyarázzák, hogy miért úgy kellet megírni a progit, mert sokat példákból tanulok. És mégegy. Ha nem gond, főleg pascal nyelven kellene, mert ahoz értek. Tudom, elsőre ez így nagyon sok, de kérlek segítsetek! Segítségeteket nagyon köszönöm!
1. Javaslom olvasd el ezt a topicot, mert minden kérdésedre megvan a válasz!
2. Nézz fel az oldalamra, erről is írok... 3. Olvasd el az összes cikket itt a hobbin, ami PIC-el kapcsolatos. Kérdésem az lenne, hogy jól értesz az elektronikához?
Olvasd végig itt az oldalon a nagyobb PIC-es témákat az elejétől a végéig (keresőben PIC és keresés a témacímekben), illetve a közben linkelt oldalakat is. Szánj rá 1-2-3 hetet, hidd el megéri. Meg nézz szét itt az oldalon a Cikkek, Kapcsolások között is. Utána már majd ki tudod választani a neked való kontrollert és égetőt.
A Pascalt meg felejtsd el, az nem kontrollerhez való. Kezdésnek csakis asm.
Szia!
A Te oldaladat már egy ideje olvasom! nagyon tetszik, mert sok mindent leírsz. Ezt a topikot végig olvasni hetekbe is telhet, mert rengeteg hozzászólás van. Szerintem értek az elektronikához, de nem tudom megmondani, hogy mennyire, mert mind magamtól tanultam, de sok mindent megoldottam már és folyamatosan fejlesztem magam. Te hogy szoktad kiválasztani a megfelelő PIC-et?
A gyártó oldalán van egy program(erről is írtunk már, hidd el érdemes elolvasni a topicot, még ha sokáig tart is), ez a MAPS. Ez nagyon megkönnyíti a választást(letölthető és online is van). Egyébként mindig a feladattól függ milyen PIC-et választ az ember. De ezzel nem hiszem, hogy újat mondtam. Aztán jön, hogy kapható-e. Én 18F-eket használok, ha már egy lapnál több memóriát igényel a program. Ha nem, akkor 16F627A. Nagyon leegyszerűsítve...
Én kezdésnek is 18F-et ajánlok(2321,14K50!,2550). Érdemes több PIC-et venni, kizárva a bizonytalanságot, ha valami nem működik. Persze, két PIC-et is tönkre lehet tenni, ha nem vagyunk elég körültekintőek!
Mellékelek egy forrásfájlt a "dot" program kipróbálásához.
Hazsnálata: dot -Tpng -ofsm.png fsm.dot Mellékelek egy (elrettentő) példát Doxygen-hez is. A zip állományt kibontva találsz egy mycfg minta konfigurációt, amely a doxygen mycfg parancs hatására feldolgozza a mellékelt forrásfájlokat, létrehoz egy docs nevű mappát és abba generál HTML dokumentációt, hívásgráfokkal. Indításkor az a mappa legyen az aktuális, ahol a mycfg konfigurációs állomány van. (Én a C:/DemoDOCS helyen használtam, de ennek sok jelentősége nincs). Nálam a doxygen-1.5.9.windows.bin.zip állományból kibontott doxygen.exe van,ami nem igényel telepítést, odamásolható a konfigurációs állomány mellé. Ha a küldött konfigurációs állományt összehasonlítod egy "doxygen -g" paranccsal generált állománnyal, akkor kiderül, hogy mit kell beállítani. Sok sikert!
Hello,
lehet, hogy hülye kérdés lesz, bár nem hagy nyugodni, littlejoe korábbi hozzászólásában ( Bővebben: Link ) megnéztem a tut10_1.asm file -t, nos, itt a main függvényben van úgy 1 másodperc késleltetés, majd jön néhány utasítás, amivel inkrementálódik egy (kettő) változó, a TMR2 16ms -onként ad megszakítást. Lényeg a lényeg, azt nem értem, hogy mi a garancia arra, hogy a megszakítás pont akkor fog bekövetkezni, amikor eggyel nő a számláló, vagy mi van, ha pont akkor következik megszakítás, amikor még nem is teszteltem le, hogy a változó nagyobb-e xy -nál, de már a megszakítás rutinban meg akarom jeleníteni a kijelzőn? Mert eddigi olvasataim szerint semmi. Nem inkább a megszakítás rutinban lenne a helye az ilyen utasításoknak? Remélem érthető voltam, és nem túl nagy blődség a kérdés.
Az észrevétel jogos. Semmi garancia nincs arra, hogy pl. az "incf ones,f" után nem üt be az interrupt, még mielőtt megvizsgálnád, hogy nem kell-e nullázni a ones értékét. Ilyenkor bizony a hibás értéknek megfelelő alak fog megjelenni a kijelzőn.
De mivel ez csak egy kijelző, és kb 500-szor rajzolja újra másodpercenként a két digitet, nem fog feltűnni, ha időnként bevillan egy ezredmásodpercre egy hibás alak. Akkor persze gondot okozhatna, ha az alakok táblázata is csonka lenne, és csak a 0-9 számjegyekre lennének definiálva a táblázat elemei, de itt korrekt módon megvan mind a 16 lehetséges értékre (4 bitnél). A nem használt bitkombinációknál üres lesz a kijelző a táblázat szerint, így biztos nem lesz zavaró. Persze ha nagyon fontos lenne, hogy hibás érték ne kerülhessen a kijelzőre (mert pl. a kijelzőre kiírt mintát egy másik egység leolvassa és felhasználja), akkor a két folyamatot (interruptos multiplexelés és a főprogramban a másodpercenkénti növelgetés) szinkronizálni kellene. Ez történhetne jelzőbitekkel (flagek, szemaforok), vagy akár kicsit drasztikusabban is, azaz a növelgetés idejére le lehetne tiltani az interruptokat, a várakozás alatt meg engedélyezni.
16F887-est szerezz be szerintem es egy PICkit2-t. Vehetsz ilyet keszen, akkor javasolnam a Debug Express-t avagy valamelyik Starter Kit-et amik mar tartalmazzak a PICkit2 mellett a demo board-ot is a 887-essel (avagy mas debuggolhato PIC-kel). Csinalhatsz PICkit2 klont (pl Watt vagy Szilva fele klon). Demo boardot is konnyu elkesziteni hazilag...
Watt oldala Szilva klonja MicroChip PICkit2 Idézet: „Lényeg a lényeg, azt nem értem, hogy mi a garancia arra, hogy a megszakítás pont akkor fog bekövetkezni, amikor eggyel nő a számláló, vagy mi van, ha pont akkor következik megszakítás, amikor még nem is teszteltem le, hogy a változó nagyobb-e xy -nál, de már a megszakítás rutinban meg akarom jeleníteni a kijelzőn?” Az ilyenekre valok a kritikus szekciok ill a szemaforok. Kritikus szekciot interrupt vezerelt (RTOS nelkuli) kornyezetben tipikusan interrupt tiltassal szoktak megvalositani. Ekkor persze a tiltas ideje alatt beerkezo esetleges interrupt keresek elveszhetnek, de pl a timer eseteben nem fog elveszni ha nincs kozben a TMR2IF nullazva... Ilyenkor mikor az interruptot ujra engedelyezed azonnal bekovetkezik a megszakitas... Szemafort pedig nyilvan valtozoval ill annak egy jelzo bitjevel lehet megvalositani: Tehat a modositas elott a szemafort 1-be allitod, az int vezerlo pedig megnezi, hogy 0-e, ha nem kilep a megszakitasbol, nem foglalkozik a kiirassal.., Mikor befejezted a valtozod kiertekeleset, a szemafort 0-zod, igy a kovetkezo interruptkor megteheted a kiirast... Idézet: „A MikroElektronika LV18FJMCUcard3 kártyája kellene neked ($4,90 az ára). Sajnos, jó felbontású fényképet nem találok róla.” Miután ma kb. 8 kisérletet tettem, hogy a saját tervemet rávasaljam egy nyákra, megrendeltem az átalakítót. Majd máskor ügyetlenkedek vele, ez most fizetős meló, nem érek rá kisérletezni. Országhatáron belüli cég, remélem, hogy nem fog sokáig tartani, mire postára adják. Amúgy ahogy láttam, nekem is az kellene, ahogy watt csinálja a nyákot, hogy a nyák alkatrészoldala felől melegíteni, a forrasztási oldalról meg valami kis gumihengerrel ráhengerelni a rajzolatot. Idézet: „Csatoltam.” Milyen szélességűre rajzolod a TQFP toknál a lábak vezetősávját? Én 0,25mm-re (10mil) rajzoltam, és az egyik kisérletnél az volt a gond, hogy túl sok volt a festék, nagyon szétlapult, és összeértek a csíkok. A te nyákodon viszont mintha a vezetékek keskenyebbek lennének, mint a vezetékek közötti sáv.
Ha kicsit változtatsz az utasításokon, akkor lehet olyat csinálni, hogy az ones értékét nem növeled meg direktben az incf utasítással, hanem pl. incf ones, w formában növeled, és a w-ben tesztelsz. Ha elért 10-re, akkor nullázod, ha nem, akkor meg valóban megnöveled incf ones, f utasítással.
Egyszer sikerült olyat csinálnom, hogy a hétszegmensű kijelzők multiplexelését timer megszakításból csináltam, viszont a tartalmat a főprogramból pakoltam a változókba. Valami ilyen volt:
Namost mivel a főprogram amúgy elég hosszú volt, így néha megesett, hogy az RRF utasítások között jött be a megszakítás, és ilyenkor halványan más is volt a kijelzőn, mint aminek lennie kellett volna. Az érdekes az volt benne, hogy a nyolc kijelzőnél mindig pontosan ugyanazon a két számjegyen jelent meg, ezért nem értettem egy ideig, hogy mi lehet ez, mivel minden számjegyet ugyanaz (legalábbis ugyanolyan) rutin határozott meg. Azután kicseréltem
utasításokra, így akármikor jön a megszakítás, a valtozo tartalma vagy az új, vagy a régi érték, de sohasem valami köztes állapot (tmp értékét azért nem lehetett RRF-elni, mert kellett másra is még utána).
Nekem is 0,25-ös. Azért lesz vékonyabb, mert kicsit alámar a széleknek.
|
Bejelentkezés
Hirdetés |