Fórum témák

» Több friss téma
Fórum » PIC programozás assemblyben
 
Témaindító: sonajkniz, idő: Máj 30, 2015
Témakörök:
Lapozás: OK   19 / 32
(#) Hp41C válasza silent15 hozzászólására (») Okt 27, 2017 /
 
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:
  1. ...
  2. movf SHIFT_ADAT,w
  3. xorwf GPIO,w
  4. andlw 0x01
  5. xorwf GPIO,f
  6. RRF SHIFT_ADAT, F
  7. ...

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
(#) silent15 válasza Hp41C hozzászólására (») Okt 27, 2017 /
 
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
(#) Pali79 hozzászólása Feb 27, 2019 /
 
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?
(#) usane válasza Pali79 hozzászólására (») Feb 27, 2019 /
 
Miért nem hardveren teszteled? A szimulátor nem kezeli rendesen vagy sehogysem a kommunikációs csatornákat.
(#) sonajkniz válasza Pali79 hozzászólására (») Feb 27, 2019 /
 
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?
(#) Pali79 válasza usane hozzászólására (») Feb 27, 2019 /
 
Úgy is megpróbáltam, akkor is ugyan az a helyzet.
(#) Pali79 válasza sonajkniz hozzászólására (») Feb 27, 2019 /
 
Hát ha nem lesz meg a megoldás, akkor kénytelen leszek megkerülni.
(#) Hp41C válasza Pali79 hozzászólására (») Feb 27, 2019 /
 
Az Errata -t olvastad más?
(#) Pali79 válasza Hp41C hozzászólására (») Feb 27, 2019 /
 
Most belenéztem, de nem találtam ilyen hibára utaló leírást.
(#) usane válasza Pali79 hozzászólására (») Feb 28, 2019 /
 
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
(#) Pali79 válasza usane hozzászólására (») 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.
(#) Moderátor hozzászólása TheZ95 hozzászólására (») Ápr 25, 2019
 
Egy kérdést csak egy helyre, hirdetést az Apróhirdetés rovatba teszünk fel!
(#) jpocok hozzászólása Szept 24, 2019 /
 
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
(#) Pali79 válasza jpocok hozzászólására (») Szept 24, 2019 /
 
(#) jpocok válasza Pali79 hozzászólására (») 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).
(#) Hp41C válasza jpocok hozzászólására (») Szept 24, 2019 /
 
Hogyan működik a 74HC595
DS1302 adatlap 8. oldalát ajánlom figyelmedbe.
(#) lóri válasza jpocok hozzászólására (») Szept 24, 2019 /
 
Szia!
Nekem ez van, lehet,hogy megfelel neked is.
(#) jpocok válasza Hp41C hozzászólására (») Szept 25, 2019 /
 
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.
(#) jpocok válasza lóri hozzászólására (») Szept 25, 2019 /
 
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.
(#) Pali79 válasza jpocok hozzászólására (») Szept 25, 2019 /
 
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?
(#) lóri válasza jpocok hozzászólására (») Szept 25, 2019 /
 
Olyan úgyse lesz, hogy találsz pár includ-ot, macro-t és azt összeollózod egy asm-be. Bele kell mélyedni.
(#) jpocok válasza Pali79 hozzászólására (») Szept 26, 2019 /
 
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
(#) Pali79 válasza jpocok hozzászólására (») 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.
(#) lóri válasza jpocok hozzászólására (») Szept 26, 2019 /
 
Azért csak kellett szerkeszteni. A pdf-ben volt minta a shift-regiszterhez.
(#) jpocok válasza Pali79 hozzászólására (») Szept 26, 2019 /
 
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!
(#) Kera13 hozzászólása Nov 25, 2019 /
 
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.
(#) Pali79 válasza Kera13 hozzászólására (») Nov 25, 2019 /
 
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.‬
(#) Hp41C válasza Pali79 hozzászólására (») Nov 25, 2019 /
 
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
(#) sonajkniz válasza Hp41C hozzászólására (») Nov 25, 2019 /
 
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".”
(#) lóri válasza sonajkniz hozzászólására (») Nov 25, 2019 /
 
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ó.
Következő: »»   19 / 32
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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