Fórum témák
» Több friss téma |
Jaja Csak Te irtad a 5.12 tapot. Erre kontraztam.
Hello!
A Pasic nem tudja kezelni a külső referenciát, így újabb "problémák keletkeznek". (persze nem nálam) De ezért írtam inkább a tápot. üdv! proli007
A 16F87x(A) adatlapjában nincs benne, de a 16F88x -éban benne van: ld. TABLE 17-10 @ DS41291F-page 263
Ahhoz, hogy az A/D átalakító felbontása biztosan megmaradjon 1 LSB, a referencia feszültségének minimum 2.7V -nak kell lennie...
Benne van az : DS39582B.PDF page 208. De ennek itt ebben a topikban nincs jelentosege mert 1. nem lehet kulso Vref-et beprogramozni, 2. nem ismer AD-s PIC-et csak a 16F87x, es a 16F87xA tipusokat. A hiba azert nem olyan nagy 2.56 voltnal, viszont sokkal egyszerubb a kalkulacio, mint 5 voltnal, es a felbontas is nagyobb. Egy homeros kapcsolasnal ennek nem sok jelentosege van. Igaz a kollegak szeretnek a szoba homersekletet 0.1 C pontossaggal megmerni (minek?), de ehhez ugyis mas utat kell valasztani.
Ja es a 16F684-690 tipusoknal ez az ertek 2.5 V, mig a 16F1823-nal 1.8 V.
Sziasztok!
Olyan kérdésem lenne, hogy MUX/DEMUX áramkört mikrokontroller és Parsic segítségével meg tudnék-e valósítani. Jelenleg 28db állapotjel átvitelét valósítom meg 4 csatornás rádiós átjelzőkkel. Sajnos a környezet leárnyékoltsága és a jelek bővülése miatt ez a megoldás már nem megfelelő. 2db CAT5 UTP kábel van a jelek forrása és a kijelzési pontok között melyeket használhatnék. Ezért gondoltam a MUX áramköri megoldásra. Csak digitális állapotjelek, nem analóg amiket megjeleníteni szeretnék. Végső megoldásként kb 60-70 jelet kellene majd átjeleznem. Jelenleg az instabilan működő rendszert szeretném kiváltani, bővíthetően. Gondoltam már RS485 jelátvitelre is. Ötleteket és tanácsot várnék, merre induljak el. Igazán úgy tanulnám meg jól, ha egyedül boldogulnék vele, de még igencsak kezdő vagyok a témában. Köszönöm.
Otlet gyanant esetleg a 74HC595 hasznalata. 8 bites, kaszkadba kotheto, 3 szalon vezerelheto, viszont zajos kornyezetbe a soros atvitel miatt serulekeny az adatatvitel.
Itt egy pelda a '595 hasznalatara, es a MPLAB projekt ASM kezelessel.
Sziasztok. Elkezdtem bűvészkedni a parsic-al. Csináltam egy kütyüt több mindent csinál, először LCD-re, mert az könnyebb itt. Az megy is szépen. Viszont ahol használnám, ott az LCD nem látszik. (Kicsi is és fénye sincs elég) Ezért próbálom LED kijelzősre átgyúrni. Mivel óra is van benne, ezért 6 db kijelzőt kéne multiplex hajtani. Egy csomót szenvedtem vele, talán az összes itt található, meg még a német helpben lévőt is próbáltam, de egy se jó. Mind villog, és a nem használt szegmensek halványabban ugyan, de égnek. ("parázslik") Próbáltam többet átalakítani, ez lett a legjobb, de még ez is vibrál picit. (elég zavaró).
Segítsetek! És miért nem tudok 2 ms-nál gyorsabb timert beállítani?? (A kvarccal nem akarnék bűvészkedni, pont az óra miatt, az jó lenne, ha maradna 4MHz) Ezt a parázslást úgy tudtam kiiktatni, hogy szüneteket tettem a digitek kiírása közé. Ezt asm-ben gondolom hatékonyabban is meg lehetne oldani, és akkor lehet, hogy már a 2 ms is jó lenne.
Hétszegmenses kijelzőt így lehet vezérelni: Bővebben: Link
A hétszegmenses kijelző kezelésére én is tettem fel működő kipróbált programot régebben , talán az 50. oldal körül lehet
Igen, azokról beszéltem: egyik sem jó sajnos. Amint átírtam 6 kijelzőre, de volt, ami 4-el sem. Mondjuk nálam is eléggé tele van a proci, lehet, hogy azért.
Valami nyűgje van, azzal a kisebbikkel, amit az end of init-be kell tenni:
KIJELZO_.INC 6 : Register in operand not in bank 0. Ensure that bank bits are correct. KIJELZO_.INC 9 : Register in operand not in bank 0. Ensure that bank bits are correct.
Szerintem azt csak figyelmeztetésként írja, nem? Ugye a kimeneteket meg a portokat átírtad a te kapcsolásodnak megfelelően? Milyen PIC-et használsz?
Amit linkeltél (kijelzo_.inc), ott a kimeneteknél kell 0-át írni.
A saját gépemen le se fordította. Most egy másik gépen küzdök, itt már csak figyelmeztetésnek írja és lefordul.
Viszont ha csak magában van a kijelző meghajtás, akkor szépen megy. De amint hozzáteszem a főprogramomhoz, nem csinál semmit. Még akkor sem, ha egészben, változtatás nélkül átmásolom bele. (a 4. oldalon van a kijelzős rész)
Hello, az lehet a hiba, hogy amikor létrehoztad parsicban az egy, kettő három, négy, öt, hat, temp bájtokat, azt a parsic Bank1-be tette, mert ott volt hely. Ezért a kijelzo.inc-ben is bankot kell váltani.
A másik dolog, hogy program szerint a kijelző akkor világít, ha a szegmens kimenet és a kijelző kimenet is 1-es. Neked is így van a hardver? Ha nem, akkor módosítani kell ezt is programban. A Bank és Pageváltásos figyelmeztetéseket ki tudod kapcsolni, (a parsic az include fájloknál direkt bekapcsolja) ha beírod az Include fájlok elejére ezt: ERRORLEVEL -302 ERRORLEVEL -306 Idézet: „az lehet a hiba, hogy amikor létrehoztad parsicban az egy, kettő három, négy, öt, hat, temp bájtokat, azt a parsic Bank1-be tette” Akkor ezért nincs kijelzés? Mert ha csak ez a kijelzős rész van, és semmi más, akkor is pampog, de működik. A hardver ilyen, azért van így vezérelve. Hogyan kell az inc-ba a bankváltást beleírni? És kell mindkettőbe? Egyáltalán jól értettem, kell mind a két inc ? Az jó, hogy a figyelmeztetést ki lehet kapcsolni, de az gáz, ha a miatt nem működik, amire figyelmeztet. Köszi, hogy bajlódsz velem
Azért működik csak a kijelzős rész önállóan, mert ott kevés változó van és minden Bank0-ban van. Csináld úgy, hogy a kijelző.inc-be minden változó elé írd be a banksel utasítást, és utána a változó nevét.
Így: Idézet: „ -----------második kijelző---------------------- MASODIK BANKSEL TEMP BSF TEMP,1 BANKSEL PORTC BCF PORTC,0 BANKSEL KETTO MOVFW KETTO BANKSEL PORTB MOVWF PORTB BANKSEL PORTB BCF PORTB,7 BANKSEL PORTC BSF PORTC,1 GOTO VEGE ” Ez annyit csinál, hogy a fordító majd tudni fogja, hogy bankot kell váltani és vált is automatikusan. Vagy lehet a bankkiválasztó bitekkel is váltani, de akkor neked kell megnézni, hogy mi hol található. (pic adatlapja, és a parsic által generált asm eleje) Azt sem árt még megnézni, hogy a parsic hol hívja az include fájlt, és hogy ott melyik bank van kiválasztva, mert úgy is kell visszatérni a főprogramba.
Az egyik szemem sír a másik nevet:
működik az inc. betoldás, de még jobban vibrál a kijelzés, mint amit én tákoltam csak parsic-al. Önállóan, csak a kijelzős rész jól ment, nem villogott, de így együtt az egész borzalmas. Úgyhogy, most, x nap után ugyan ott tartok: nem jó a kijelző vezérlés. Ötlet?
Hát igen, ennél számít a pontos ciklusidő. Ha vibrál, akkor az a sok Timer megszakítás miatt van. Azokat minnél jobban kerülni kell ennél. Ki kellene próbálni, hogy ezt az kijelzö.inc-t nem mainprogramként hívogatni, hanem szubrutinként meghívni timer0 megszakítással. Akkor elvileg mindig ugyanakkor hívódna meg, és nem villogna.
Ez így totál kínai. Magyarul is el tudod mondani? Vagy inkább konkrétan, mint az első esetben.
Visszatérve a legelső kérdésemre, még nem jött válasz: miért nem tudok 2ms-nál gyorsabb timert beállítani? És hogyan lehet esetleg mégis?
Igen, ki fogom, köszi. Esetleg erre: miért nem tudok 2 ms-nál gyorsabb timert beállítani?
Igen, jól mondja kaqkk, ennyit tud. Mint ahogy kijelzőt sem tud kezelni.
Azt lehetne csinálni, hogy a főprogram megszakítási területéről hívni a kijelző.inc-t. (A megszakítási területre ha jól számoltam kb:500 mikroszekundumonként fut a program 1:256-os timer0 előosztás esetén, 4Mhz kvarcal. Ezt a parsic így állította be a programodban.) Majd kipróbálom mert nem vagyok biztos benne, hogy jó lenne így. Végül is csak egy sort kell áthelyezni a főprogramban máshova.
Kipróbáltam. Önállóan hibátlan, de beillesztve a progimba nem vibrál, vagy villog, hanem inkább csak futófény
Panhard : az inc dobozkát átraktam main-ról subrutinra, de azt a timer0 megszakítást nem tudom hol kéne megadni. Így megint nincs kijelzés.
Ehhez a parsic már kevés, Ezt úgy kell, hogy a Parsic által generált asm-et és a két inc fájlt megnyitni MPLAB-al, és ott módosítani, és MPLAB-al újra lefordítani.
A másik megoldás, hogy nem használsz a programban Timereket (TRx) és Monoflop, Delay-t (MFx). Akkor nincs endedélyezve megszakítás.
Próbáld ki, hogy ezeket kitörlöd, akkor milyen lesz a kijelzés. |
Bejelentkezés
Hirdetés |