Fórum témák
» Több friss téma |
Idézet: „A carry-vel igazatok van, fals adatot fog visszadobálni a kivonás miatt, bár mivel minden egyes függvényhívás előtt frissítem az adatbytot ennek nem kéne bezavarnia.” Mivel a léptetés után a C két értéket vehet fel, és mindkét értékre van beállítás a GPIO 0 bitje mindig átveszi a C értékét. Esetleg a léptetés előtt elvégezni:
Egyáltalán nem kell a kivonás. - Fordítsd meg a ciklusszámlálást. 8 -tól számoljon lefele. A decfsz egy utasításban csökkent és vizsgál. - Ha mégis növeled, a 8 eléréséhez elég a COUNTER 3. bitjét nézni. btfss COUNTER,3
Szerintem akkor át fogom írni az egészet DECFSZ utasítással, egyszerűbb is talán, most egyenlőre hagyom a kevésbé hatékony kódot, megírom a maradékot, aztán mehet a szépítés
Kicsit leült a téma, de hátha...
PIC18F14K22-vel próbálok összehozni UART ébresztést. Az adatlap azt írja, hogy a BAUDCON, WUE bit beállításával egy felfutó élre az RX lábon ébred a PIC. De nem akar összejönni sehogy sem. Ha beállítom a megszakításokat nem alszik el a PIC. A szimulátor szerint az történik, hogy a sleep utasítás után az RCIF egyből 1-re vált ha a WUE be volt állítva. Ha a WUE nincs beállítva, atomvillanásra sem ébred. Külföldi oldalt is böngésztem, de nem találtam értelmes tanácsot. Valaki tudja mi erre a megoldás?
Miért nem hardveren teszteled? A szimulátor nem kezeli rendesen vagy sehogysem a kommunikációs csatornákat.
Csak egy kósza ötlet.
Mivel az RX TX lábakat direktben is lehet megszakításból figyeltetni, mi lenne, ha az ébresztést nem uart figyelésre, hanem konkrétan a láb figyelésére bíznád?
Úgy is megpróbáltam, akkor is ugyan az a helyzet.
Hát ha nem lesz meg a megoldás, akkor kénytelen leszek megkerülni.
Most belenéztem, de nem találtam ilyen hibára utaló leírást.
Idézet: „egy felfutó élre” Én lefutót olvasok. Idézet: „Awake-up event consists of a high-to-low transition on theRX/DT line.” Továbbnézve látom mire gondoltál. Az ezt követő felfutó él törli a WUE bitet. A hozzászólás módosítva: Feb 28, 2019
Igen szkóppal vizsgálva a PICKIT uart tool-ban kiadott jelét, látható, hogy alapban magasan tartja a jelet és egy nulla kiküldésére először lehúzza majd vissza magasra.
Egy kérdést csak egy helyre, hirdetést az Apróhirdetés rovatba teszünk fel!
Sziasztok!
Rengeteget kerestem, sok cikket olvastam, de csak nem találok megoldást. Talán itt lesz valakinek ötlete. A lényeg, hogy szeretnék egy 7-szegmenses órát építeni RTC-vel és DCF77 szinkronizálással. Esetleg hőmérővel, de ez lényegtelen, viszont ilyen kapcsolásokat találtam. Az RTC azért kell, hogy áramszünet esetén is emlékezzen, a DCF77 pedig azért, hogy amikor elegendő a jel, akkor atom-pontos legyen. Továbbá az is fontos, hogy NE multiplex legyen a kijelzés. Erre jó megoldás mondjuk a 74HC595. Mutatok egy példát, kb. ez az elképzelésem az óráról. A 16F628A szerintem tökéletesen megfelelne, ne bonyolítsuk fölöslegesen az életet. De ehhez két részlet hiányzik: egy ASM forrás, amit tanulmányozhatnék és szerkeszthetnék, illetve hogyan kellene megírni és beilleszteni a DCF kezelését, mert olyat még nem csináltam. A segítséget előre is köszönöm! A hozzászólás módosítva: Szept 24, 2019
Köszönöm ötletedet! Igen, Uwe Nagel óráját évekkel ezelőtt már megépítettem és szépen működött. Igazad van, ez a válasz a DCF77-re. Viszont továbbra is hiányzik egy olyan alap-program, amely shift-regisztert használ és kezeli az RTC-t is (ahogy az általam linkelt órában, amihez sajnos csak HEX van).
Szia!
Nekem ez van, lehet,hogy megfelel neked is.
Köszönöm válaszodat! Sajnos én képtelen vagyok önállóan megírni egy programot. Ha látom a működő változatot (és megértem!), akkor esetleg sikerül 2-3 helyről összeollózni azokat a részeket, amelyeket én szeretnék. Ezért említettem ASM fájlt és a 16F628-at, mert azzal már többször foglalkoztam. De például az Arduino és a C számomra teljesen ismeretlen, pedig ahhoz találtam a legtöbb anyagot keresgélés közben.
Köszönöm az ötletet! Neked is azt válaszolhatom, amit Hp41C-nek: sajnos ez még kevés az én szintemen.
Közben találtam egy másik leírást, ami megfelelne kiindulási alapnak (a 6., vagy 7. áramkör tetszik). Ezekhez van ASM kód is, de nem nagyon értem. Ugyanis ezt a fájlt a PICBasic fordító generálta. Nem túl beszédesek a nevek és a kommentek.
Itt valami nagyon nem kerek. Szeretnél egy egyedi órát, de magad nem tudod megcsinálni. Olyan megoldást keresel amiben már minden benne van amit szeretnél, akkor meg nem egyedi hanem utánépített. Akkor most mit is szeretnél?
Olyan úgyse lesz, hogy találsz pár includ-ot, macro-t és azt összeollózod egy asm-be. Bele kell mélyedni.
Pali79 és lóri!
Ha megengeditek, egy picit akadékoskodni fogok! Ezt a Numitron órát kb. 8-9 évvel ezelőtt hoztam létre. Alapját egy bináris óra programja adta, ami talán 16F84-re készült. Ezt írtam át 16F877-re úgy, hogy minden szegmens külön kivezetésre csatlakozzon. Továbbá sikeresen beillesztettem a programba Roman Black algoritmusát is, amely precíz 1 Hz-es jelet állít elő a 4 MHz-es kristály jeléből. Nevetni fogtok: erre a bonyolult megoldásra azért volt szükség, mert nem tudtam átírni az eredeti programot úgy, hogy 4 MHz helyett 3,2768 MHz-es kristályt használjon. Mégis, kb. 15 darab óra a mai napig hibátlanul és pontosan működik rokonoknál, barátoknál. Van még belőle nekem is, meg tudom mutatni. Szóval mutassatok nekem egy szépen működő shift-regiszteres óra-programot és én hozzá szerkesztem a DCF vezérlést is. De külön-külön egyiket sem tudom megírni. A hozzászólás módosítva: Szept 26, 2019
Idézet: „Szóval mutassatok nekem egy szépen működő shift-regiszteres óra-programot és én hozzá szerkesztem a DCF vezérlést is.” Hát így már sokkal tisztább a kép, hogy mit is szeretnél. Megmondom őszintén én még nem láttam olyan órát ahol shift-regisztert alkalmaznak. Szerintem sokkal jobb megoldás lenne - ha már minden áron kerülni akarod a multiplex kijezést - nagyobb lábszámú PIC-et alkalmazni. Ha jól számolom egy 32 kimenetre van szükséged. Egy régebbi PIC16F szériás 40 lábú 33 ki-be menettel rendelkezik. Egy 16F877A-t programozni nem sokban tér el a 16F628A-tól.
Azért csak kellett szerkeszteni. A pdf-ben volt minta a shift-regiszterhez.
Idézet: „Egy régebbi PIC16F szériás 40 lábú 33 ki-be menettel rendelkezik.” 4 digit esetén nem is kellene semmit keresni, mert ott van a Numitron programom, az tökéletes volna erre is. Abban ULN2003 IC-k hajtják a szegmenseket. Viszont az új órát 6 digitesre szeretném építeni, ahhoz kevés a kimenet. lóri! Igazad van, ott a példa a pdf-ben. Ezt az anyagot már ismertem, magam is lementettem évekkel ezelőtt. Sajnos ez csak azt mutatja meg, hogyan kell 8 db LED-et kezelni egyetlen IC-vel. De az én tudományom itt megáll, nem tudom átírni 6 db, láncba fűzött IC-re. Mindkettőtöknek köszönöm a segítséget! Itt most lezárjuk ezt a témát, mert döntöttem: megépítem a 320volt.com óráját, amit korábban linkeltem. Hardver szempontjából az pontosan olyan, amilyet én szeretnék. A programot pedig később is lehet benne cserélni, ha találok megfelelő anyagot hozzá. Köszi, sziasztok!
Sziasztok
Segítséget szeretnék kérni, assemblyben kell PIC16F887-et programozni. A kérdésem az lenne hogy lehetséges-e a demo board-on lévő ledeket random villogtatni,úgy hogy ha a nyolc led egyszerre világít akkor álljon meg és mérjen időt addig míg a nyomógombot le nem nyomom, és ezt az időt jelezze ki binárissan a ledsoron mikrosecundumban. Bármilyen segítséget előre is köszönök.
Nem lehet. Mit értünk random alatt? A PIC azt csinálja amire utasítjuk. Olyan (elvileg) nincs, hogy random. Valamitől függnie kell az éppen világító vagy nem világító LED-eknek. Ehhez jellemzően valamilyen számlálót szokás használni és olyan gyorsra csinálni, hogy emberi szemmel nézve véletszerűnek tűnik. Ebből kell jó sok variációt összerakni, akkor tűnik megincsak véletlenszerűnek.
A másik, hogy mennyi az az idő amit ki kell jelezni? Ugyebár a usec nem nagy idő, egy teljes port 255 usec kijelzésére képes kettő pedig 65 535 usecre. Ez még mindig csak 0,066 másodperc ami emberi szemmel nézve elég kevés.
Használj Pseudo Random Number Generatort, valósítsd meg léptetésekkel (léptető utasításokkal: rlc vagy rrc). Egy - két példa
A véletlen szám generátorról egy Wikipédia idézet Google által fordítva:
Idézet: „John von Neumann figyelmeztette a PRNG, mint valóban véletlenszerű generátor téves értelmezését, és azt mondta, hogy "bárki, aki véletlenszerű számjegyek számtani módszerével foglalkozik, természetesen bűn állapotban van".”
A bűn, az régi íjász szakkifejezés, jelentése: céltévesztett. De gondolom itt hibás megközelítésről van szó.
|
Bejelentkezés
Hirdetés |