Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   70 / 179
(#) qvasz2 válasza kaqkk hozzászólására (») Aug 13, 2011
Sajnos órát nem lehet leosztással csinálni, legalább is amikor ezt kipróbáltam, 1-2 perc alatt is elmászott 1-2 másodpercet, ami azért vicc egy óránál.
Ha jobban megnézed két db timert használok: van egy 1000 ms az órának, és egy másik minden máshoz.
(#) kaqkk válasza qvasz2 hozzászólására (») Aug 13, 2011
Amint Panhard is írta ki kéne gyomlálni a programból az időzítéseket még 4000ms es monostabilt is láttam benne
csinálj egy időalapot 2ms es idővel és azt osztogasd le a megfelelő időzítésekhez
(#) qvasz2 válasza Panhard hozzászólására (») Aug 13, 2011
Azt nem hiszem, hogy meg lehet oldani, hogy timer nélkülire átírjam: szinte mindenhez kell valami órajel, főleg az óra funkcióhoz. Jobb lenne az a megszakításos megoldás, de ahhoz én kicsi vagyok. Sem az MPLAB sem az ASM nem az erősségem (finoman szólva). Ha tudsz benne segíteni, azt nagyon megköszönöm.
Viszont amit ide feltettem, az majdnem tökéletes. Csak egy picit kellene gyorsítani a 2ms-os időalapon (pl 0,2 ms-ra), és mást nem kéne akkor átvariálni.Bővebben: Link
Ezt nem lehet valahogy ASM-ben felgyorsítani? Persze úgy, hogy az óra 1000 ms-ja ne sérüljön.
(#) qvasz2 válasza kaqkk hozzászólására (») Aug 13, 2011
Már megvolt:
Bővebben: Link
(#) kaqkk válasza Panhard hozzászólására (») Aug 13, 2011
Én azon gondolkodtam , hogy nem 6 digit lenne a kijelzés hanem 2*3
(#) Panhard válasza kaqkk hozzászólására (») Aug 12, 2011
Nem az a baj, hogy lefogja valami a programfutást, egyszerűen kijelző vezérlést nem így kell csinálni. Ugye 6db kijelző van, minden kijelzőnek 16.6%-ot kell világítani. Az én programomban (de a tiédben is hasonlóan) ciklusonként vált kijelzőt. Addig nincs baj, amíg minden ciklus egyforma ideig tart, mert ilyenkor egyforma ideig világítanak a kijelzők. Lásd: ha más program nincs a pic-ben akkor jó volt.
A gond ott kezdődik, hogy ha az egyik ciklusban jön egy megszakítás (Timer0), akkor azt fel kell dolgozni a picnek, addig a főprogram nem folytatódik, ezért az a ciklus hosszabb lesz, és a kijelző is tovább fog világítani, ezért nagyobb lesz a fényereje. Ettől van a villogás.
Két megoldás van: Vagy nem használ megszakításokat, viszont iyenkor számít a program hossza is, ha túl hosszú, akkor megintcsak villoghat a kijelző, (a parsic szereti pazarolni a memóriát) vagy a kijelző vezérlést kell megszakítással hívogatni. Én az utóbbit tartom jó megoldásnak. Viszont ehhez már kell az MPLAB is.
Szerintetek?
(#) kaqkk válasza qvasz2 hozzászólására (») Aug 12, 2011
tedd fel a progidat lássuk mi "fogja le" a programfutást
(#) Panhard válasza Panhard hozzászólására (») Aug 12, 2011
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.
(#) Panhard válasza qvasz2 hozzászólására (») Aug 12, 2011
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.
(#) qvasz2 válasza kaqkk hozzászólására (») Aug 12, 2011
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.
(#) Panhard válasza qvasz2 hozzászólására (») Aug 11, 2011
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.
(#) kaqkk válasza qvasz2 hozzászólására (») Aug 11, 2011
Ennyit tud a parsic
(#) qvasz2 válasza kaqkk hozzászólására (») Aug 11, 2011
Igen, ki fogom, köszi. Esetleg erre: miért nem tudok 2 ms-nál gyorsabb timert beállítani?
(#) kaqkk válasza qvasz2 hozzászólására (») Aug 11, 2011
Ezt most "írtam " kipróbálod ?

6dig7.PIC
    
(#) qvasz2 válasza Panhard hozzászólására (») Aug 11, 2011
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?
(#) Panhard válasza qvasz2 hozzászólására (») Aug 11, 2011
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.
(#) qvasz2 válasza Panhard hozzászólására (») Aug 11, 2011
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?
(#) Panhard válasza qvasz2 hozzászólására (») Aug 11, 2011
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.
(#) qvasz2 válasza Panhard hozzászólására (») Aug 11, 2011
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
(#) Panhard válasza qvasz2 hozzászólására (») Aug 11, 2011
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
(#) qvasz2 válasza Panhard hozzászólására (») Aug 11, 2011
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)
(#) Panhard válasza qvasz2 hozzászólására (») Aug 8, 2011
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.
(#) qvasz2 válasza Panhard hozzászólására (») Aug 8, 2011
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.

kijelzo_.INC
    
(#) qvasz2 válasza kaqkk hozzászólására (») Aug 8, 2011
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.
(#) kaqkk válasza qvasz2 hozzászólására (») Aug 7, 2011
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
(#) qvasz2 válasza Panhard hozzászólására (») Aug 7, 2011
Köszi, próbálom megérteni . . .
(#) Panhard válasza qvasz2 hozzászólására (») Aug 7, 2011
Hétszegmenses kijelzőt így lehet vezérelni: Bővebben: Link
(#) qvasz2 hozzászólása Aug 7, 2011
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.

kij-uj.PIC
    
(#) vilmosd válasza vilmosd hozzászólására (») Aug 7, 2011
Itt egy pelda a '595 hasznalatara, es a MPLAB projekt ASM kezelessel.
(#) vilmosd válasza Johnycorp hozzászólására (») Aug 7, 2011
Otlet gyanant esetleg a 74HC595 hasznalata. 8 bites, kaszkadba kotheto, 3 szalon vezerelheto, viszont zajos kornyezetbe a soros atvitel miatt serulekeny az adatatvitel.
Következő: »»   70 / 179
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem