Fórum témák
» Több friss téma |
Azért lehet, mert nem tudod egszerre módosítani a két adatot.
Iktass be a módosítás idejére egy olyan fázist, amikor a RD1 és a RD0 is 0, így a villanás nem fog látszani. A másik megoldás, hogy a módosítást átmeneti változókon hajtod végre, és jelzed a megszakítási rutinnak, hogy a kijelzendő adat változott. A megszakítási rutin a kijelző frissítése után átvesz az új adatot. A harmadik megoldás, hogy a kijelzendő adatok módosítását un. kritikus szakaszként kezeled, azaz a kijelzés megszakítás kérését tiltod addig, amíg a változtatás le nem fut. Idézet: Ha a forgatás miatt ottmaradt karaktereket szóköz kiírásával törlöd, akkor nem lesz villogás. „Próbáltam úgy hogy csináltam egy char text[] = {'H','ő','m','é','r','s','é','k','l','e','t'} és ezt tologattam de ehez mindig törölni kell a kijelzőt amitől csúnya vibrálás látszik.”
Ezt most nem nagyon fogom.
A kijelzést nem a megszakítás kezeli. A kijelzés folyamatos, a megszakítás rutin 4 ms-onként frissíti a számlálókat, és állítja a jelző biteket. Ezeket a jelzőket vizsgálom, hogy letelt-e már a kijelölt időszak (1 sec, 1perc stb.), amikor léptetem az aktuális ledet. A multiplex miatt akkor is végig kell rohannom a ledek kigyújtásával, ha nem 1 a jelzőbit. Az adatok mindig átmeneti változón keresztül jutnak az S_kiir rutinhoz, ami végülis a portokra tölti. A legelső variációdat még vizsgálom, hogy hogyan tudom megoldani.
Pedig egyértelmű. Ha a megszakítás kezdete bele esik egy megjelenítés folyamatba(megszakítja azt), akkor hibás értékeket fogsz látni a menet közben módosítot regiszterek miatt.
Biztosítanod kell, hogy a megjelenítés alatt ne változzon meg a megjelenítendő érték. Ezt egy árnyék regiszterrel lehet a legegyszerűbben megoldani, amit csak akkor frissítesz, ha kész az előző adat megjelenítése. A fő érték változhat minden megszakításkor, de az árnyék csak akkor, ha a megjelenítés kész.
Szia! Rosszul értetted . Ha az áramkört jpg képformátumban is felteszed, azt bárki megnézheti anélkül hogy bármilyen programot telepítenie kéne. A Sprintlayout nagyon jó kis program, de szerintem nem igazán kezdőknek való, mert nagyon könnyen el lehet tévedni a lábak rengetegében, nagy odafigyelést kíván! A Protel minden kiválósága mellett inkább profiknak való, majdhogynem pilótavizsgás. Az Eagle kezdőktől a haladókig elég korrekt megoldás, az ingyenes változatban csak panelméret korlátozás van. Ami a PIC-ek szempontjából nagyon lényeges: pl. egy 44 lábas jószágot akarsz kezelni, a Sprintben könnyen eltévedhetsz, az Eagléban ez képtelenség, mert a boardon gumikötéllel vannak a kivezetések összekötve. Nem tudsz rossz helyre kötni, nem marad ki bekötetlen láb. Ez a PIC-eknél roppant fontos, mert egy rossz kötéssel, vagy a kötés hiányával csak füst lesz a végeredmény. Ez bizony az előbb említett 44 lábas beforrasztott smd-nél már nagy szívás!
Értem.
Be is helyeztem egy tiltást, a villogatós rész elejére, ebben a formában: BCF INTCON,GIE A kijelzés végén pedig bekapcsolom. Ez a tiltás csak az órákra vonatkozik, mert csak abban villogtatom. A helyzet annyiban változott, hogy a felvillanás áthelyeződött másik ledhez. Most már több helyen is. De legalább tudom, hogy nem a sorváltás okozza. Ez is valami.
Tudom én azt, csináltam már. A DPI -it is be lehet ott állítani.. Kép még most azért nincs a KÉSZ panelről, mert pont most fogyott ki az elem. Majd este..
Üdv ! Janikukac
Kipróbáltam az első változatot is. Az átmeneti változó kiírása előtt mindkét portot törlöm. A felvillanások ugyanúgy jelen vannak. Ezt már végképp nem értem. Csökkentettem a várakozási ciklust is a bekapcsolás után1 ms-ra, de ez sem hoz változást.
Jelzőkkel kell megoldanod és egy segéd regiszterrel(nevezzük temp nek). A kijelzés akkor indul, ha a megszakításban betöltöd a temp-be a legutóbbi értéket ha törölt a jelző, és a jelzőt beállítod utána. Ezt a jelzőt figyeled és ha be van állítva, akkor kijelzed. Eközben a megszakításban vizsgálod a jelzőt, hogy kész van-e a megjelenítés. A megjelenítés végén törlöd a jelzőt, erre a megszakításban látod, hogy újra lehet tölteni az értéket. És így tovább... A jelző egy bit, temp pedig ugyanakkora és ugyanannyi regiszter, mint amin most számlálod az időt. Remélem jól értem a problémát, mert ha ez nem segít, akkor mást is rosszul csinálsz.
Például amikor megszakítod a kijelzést, mennyi idő telik el a megszakításban? Hogyan biztosítod, hogy a multiplexelés mindig kellő időt kapjon?
Lehet, hogy az lesz a legjobb, ha beteszem ide az egészet. Talán hamarabb rátalálunk a megoldásra.
Felmerült egy másik kérdés is, amiben segítséget szeretnék kérni. Az AD átalakítót is elkezdtem kivesézni. A Bővebben: Link oldalt nézegettem, és van némi kérdésem a kapcsolással, és a programmal kapcsolatban is.
-A kapcsolásban szerepelő potik értékére van-e valamilyen megkötés, vagy hogyan számíthatom ki? -Ha a referencia értékét fixre választom, akkor hogyan tudom a mért értékeket viszonyítani hozzá? A felhasználás módja az lenne például, hogy egy kapcsoló állását szeretném megállapítani az alapján, hogy minden állására különböző ellenállás értéket kapcsolok. Itt milyen szerepe a mintavételi frekvenciának, és a referencia feszültség beállításának?
A potik értéke legyen akkora, hogy ne terheld feleslegesen a tápot, de határozott legyen a feszültségváltozás a bemeneten. 10k-tól 100k-ig jó. Viszont a bemeneti impedanciát biztosítani kell, ami 1kohm szokott lenni(adatlap). Ezt egy 100nF-os kondival a bemeneten meg lehet oldani. (Bővebben az elektronikai kezdő topicban kérdezz erről, mert innen nem PIC téma)
A referencia feszültséghez hasonlítja a bemenetet az A/D, 10bit esetén 1024 részben. Ha az A/D értéke 1, akkor az 1/1024-ed feszültség van a bemeneten a referencia feszültséghez képest. Az ellenállásaid ellenállás osztót képeznek a bemeneten, ami egy adott feszültséget okoz(mint a poti). Azt ne itt kérdezd meg, hogy mekkorát, mert ezt általános iskolában tanítják, úgy nevezik Ohm törvénye!
Ötletek az alacsony lábszámú kontrollerek felhasználásához...
Köszönöm, teljesen érthető.
A tippeket is.
Sziasztok,
szeretnék megismerkedni a PIC mikrovezérlőkkel és ezzel kapcsolatban lenne pár nagyon amatőr kérdésem. Az eszközt windows alól szeretném programozni. (programozásban van bőven tapasztalatom [részben ebből is élek], viszont mikrokontrollerekkel még nem dolgoztam) 1, igaz, hogy a PIC-hez nincs teljes értékű ingyenes fejlesztőkörnyezet? Mit érdemes használni? (Főleg C-ben gondolkodom, de basic vagy pascal környezet is érdekelne) 2, az első project-em egy futófény lenne, melyik tipust ajánljátok (8db digitális kimenetének kell lennie) 3, Program égető. Ez nagyon fontos kérdés. Láttam olyat, hogy pickit2, pickit3 de nem tudom mi köztük a különbség. Az ebay-en vannak fent igen elfogadható áron 3rd party programozók is (például) Ezzel kapcsolatban is szivesen fogadnék tanácsokat. 4, Az IC in-circuit programozása gondolom megoldható, a kérdés az, hogy mennyire bonyolult/egyszerű ehhez tervezni az áramkört. 5, úgy általában PIC-es dolgokat szoktatok vásárolni az ebay-en? Mert ahogy nézem "bagóért" vannak fent mindenféle IC-k, meg egyéb áramkörök is. 6, Ahogy olvastam általában 20MHz-es kristállyal mennek. Van esetleg model amibe be van építve? Ha nagy hülyeséget kérdeztem akkor már előre hamut szórok a fejemre. Előre is köszönöm a segítséget.
Hülyeséget nem kérdeztél, de javasolnám ennek a témának a végigolvasását az elejétől a végéig, illetve vannak itt még további PIC-es témák, cikkek, azokat is elolvasni. Mert lesznek még kérdéseid menet közben, és inkább szánj rá most néhány hetet az olvasásra, mint hogy bevásárolsz valami használhatatlan cuccból, meg menet közben jönnek majd elő alapvető problémák.
1. Ingyenes az MpLab integrált feljlesztő rendszer és a benne levő assembler. A C fordítók ingyenes válotatai letölthetők (10F.. 16F memória korlátos, a 18F fordítóban nem lesz optimalizálás).
2. 8 digitális kimenete már a 14 lábú 16F684 -nek is van... Midrange: 18 láb: 16F628A, 16F648A, 16F87, 16F88, 20 láb: 16F690, 28: láb 16F886, 40: láb 16F887 18F: 18 láb: 18F1220, 18F2320, 18F13330, 28: láb 18F2520, 18F2620, 18F2550 usb -vel, 40: láb 18F4520, 4620, 4550 usb -vel. Van 64, 80 stb. lábú típus is... 3. PICKit2 vagy PICKit3 vásárolva vagy klón építve. 4. Csak ICSP -vel lehet programozni, nincs más felület. Programozni lehet adapterben vagy magában az áramkörben. 5. Magyarországi forgalamzó a ChipCad , ott érdemes vásárolni vagy rendelni, de több más elektronikai boltban is kapható... 6. 20MHz órajelgenerátor nincs bennük, de 4 vagy 8 MHz -es van néhány típusban. A gyártó honlapja.
Sziasztok, lenne egy kérdésem a 18f4550 configuration bits a cpudiv-el mit lehet beállítani vagyis mit jelent ez egyáltalán?
Idézet: Mikrovezérlőt nem, mert a hazai dusztribútornál olcsóbb (ChipCAD Kft). Fejlesztői kártyát már vettem (lásd PICula projekt). PIC18F4520-ra keresve könnyű megtalálni az ebay.com-on. Egy PICkit2 vagy PICkit3 kell az első felprogramozáshoz, utána bootloaderrel is lehet dolgozni. „5, úgy általában PIC-es dolgokat szoktatok vásárolni az ebay-en?”
Sziasztok !
Ezt vajon miért írja Pickit2 ? Hátha vágja valaki .... Köszönöm !
Bocs ,rossz képet linkeltem !
Köszönöm a választ mindkettőtöknek. Azt írtad, hogy az MpLab assembler ingyenes, a C memóriakorlátos. Ez a memóriakorlát azt jelenti, hogy nem tudom kihasználni teljesen az eszköz x kB memóriáját? Assembler-be semmiképpen nem lesz időm elmélyülni ezért mindenképpen a C felé szeretnék mozdulni.
A "korlát" mennyiben akadályoz a fejlesztésben? Elnéztem a gyártó honlapjára, mikor az Mplab oldalon a "Buy It Now"-ra kattintottam közölte, hogy nincs ilyen termék Mennyibe kerül az IDE? köszönöm.
Ha lejjebb görgetsz, akkor találsz egy olyan részt, hogy Downloads.
De azt jobb, ha előre tudod, hogy ne számíts jelentős eredményre, ha nem akarsz elmélyülni egy kicsit a kontroller működésében, illetve elektronikai ismeret nélkül neki se állj a dolognak, mert abból csak szopás lesz. Gondolatok a PIC kezdésről
Szerintem csak annyi, hogy nem üres az EEPROM-od ( nem 0xFF a 0-s címtől kezdve ), Neked kell tudni, hogy ez gond-e!?
Steve
Vagy a Vdd alacsony a teljes törléshez...
Nem a letöltéssel van a gond, az árára lettem volna kiváncsi, bár valószínűleg kerül annyiba, hogy már ne tudjam megvenni. Ezért is érdekelne, hogy ténylegesen mennyire korlátoz az ingyenes verzió.
Nem vagyok egy elektronikai guru, de a kitűzött céllal (8 ledes futófény), szerintem azért fogok boldogulni. Ez lenne első lépés a többi meg majd alakul (vagy nem) köszi a linket, át fogom olvasni. Idézet: Az MPLAB IDE ingyenes.„Mennyibe kerül az IDE?” Idézet: A HiTech C Lite a Microchip honlapja szerint NEM memóriakorlátos (Unlimited Memory Usage: Yes). Csak az optimalizálás limitált. Hasonló a helyzet a C18, C30 és C32 fordítókkal is.„Azt írtad, hogy az MpLab assembler ingyenes, a C memóriakorlátos.” Idézet: Ez esetben csak PIC18-ban vagy afölötti kategóriában érdemes gondolkodni, ugyanis ezek hardvere jobban támogatja a C programozást. A honlapomon találsz tananyagot PIC18-hoz, USB-s PIC18-hoz, és PIC24-hez. „Assembler-be semmiképpen nem lesz időm elmélyülni ezért mindenképpen a C felé szeretnék mozdulni.”
Köszönöm, nagyon hasznos volt a válaszod!
|
Bejelentkezés
Hirdetés |