A privát üzenet rendszerben karbantartásokat végzünk. Lassulások előfordulhatnak!
Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A timer2-höz tartozik egy periódusregiszter, a timer2 így önmagában is képes rendszeres megszakítást generálni a beállított időközönként. A timer1-nél mindig kézzel kell a timer regisztereket feltölteni a megszakításban, hogy a következő megszakítás is a kívánt idő műlva következzen be. Úgy gondolom, hogy ebből a szempontból a timer2 jobb választás egy periódikus esemény megszakításainak előállítására.
Helló szilva.
Ez már valami, megerősítettél, hogy jó irányba tapogatózók. Már csak meg kell csinálni. (hidd el elsőre nem is olyan egyszerű) De próbálkozom, és ha végképp elakadok, akkor írok. Eddig 1/32 osztást használtam. A végső osztás, az a elő és utóosztás szorzata? Köszönettel.
Ha abban az alkalazásban véletlenül a Timer0 olyan gyakorisággal okoz megszakítást, ami jó a multiplexeléshez is, akkor simán mehet a multiplex is a Timer0-ról. Multiplexet és szoftveres soros portot csináltam már egy Timerről meghajtva.
Idézet: „A végső osztás, az elő és utóosztás szorzata?” Az. De próbáld végigkövetni a Timer blokksémáján is.
Helló potyo
Köszönöm, hogy ennyien rá (rám) mozdultatok. "Abban" a kapcsolásba (ez egy kapacitásmérő) a kondenzátor feltöltődési idejét méri. Tehát erősen változó és több másodperc is lehet. Tehát szerintem nem használható multiplexelésre. Persze hogy követem a blokksémát, és a leírást. Ezért jutottam erre a következtetésre. Csak kell néha egy megerősítés, hogy nem tévedtem el. Köszönettel
Szia Sendi,
Tulajdonkeppen igen, igy is lehet hasznalni. Ha ugy vesszuk 3 oszto van, a prescaler, a postscaler, es van a PR2 ami vel finomhangolni is lehet ezt az egeszet. a TIMER2 folyamatosan osszehasonlitja a TMR2 regiszter erteket a PR2-ben talalhatoval, es ha egyezik akkor noveli a postscaler erteket, amit ha 1:1-en hagysz akkor minden egyezes eseten, ha 1:2 akkor minden masodik egyezes eseten, ha 1:4 akkor minden negyedik stb eseten megszakitast general. Rogton eszreveheted, hogy ezzel sokkal finomabb beallitast lehet kieszkozolni, ugyanis ha a PR2-be 52-t teszek es mindket scaler 1:1 akkor az olyan, mintha a TIMER0-ba mindig -52 -t pakolnek be 1:1 prescalerrel - de ezt ugye minden megszakitas alkalmaval el kellene jatszani a TIMER0-val mig a TIMER2-nek egyszer ezt megadom es az folyamatosan onnantol kezdve csinalja a megszakitasokat 52-nkent. A postscalerrel meg olyanokat lehet akkor jatszani pl, hogy pl 260-ankent szeretned ugyanezt a megszakitast - ez ugye mar tobb mint 255 tehat az elobb emlitett modszerrel ez lehetetlenseg, szoval beallitasz a PR2-be 130-at, es a postscalert meg 2x-re. Nyilvan ha prescalert is atallitod 2x, akkor a TMR2 2x lassabban szamlal plusz a megszakitas is csak minden masodik esetben tortnik, azaz megszakitas csak 2x2=4 jon (nagyjabol az ahogy azt gondoltad), bar ettol meg a timer nem fog 4x lasabban szamlalni, az minden alkalommal mikor eleri a 130-at lenullazodik, csak ilyenkor meg ugye nem biztos interrupt is generalodni fog. Remelem nagyjabol sikerult tiszta kepet felvazolnom.
Helló trudnai.
Köszönöm a részletes leírást. Ebböl a finomhangolásból én is éreztem valamit, ezért írtam, hogy az osztás a kettő szorzata VAGY MÉGSEM? Köszi az elméletet, most nekiállok a gyakorlatnak. Köszönettel
„Gondolatébresztőnek: sima telefonvezetéken 10Mbit/s több km hosszan.”
De az szimmetrikus jelvezeték és csavart érpár. Hello mindenki! Csak most jutottam egy kis levegőhöz. Szerintem a telefonvezeték, amin internetezünk, némi jóidulattal szimmetrikusnak nevezhető, de csavartnak még véletlenül sem. Persze hibajavitó kódokkal, visszakérdezésekkel stb tarkitva. Ezzel csak azt akartam jelezni, hogy hosszu vezetékeken is lehetséges kis elektromos teljesitményü, nagysebességü adatátvitel. Idézet: „Ebböl a finomhangolásból én is éreztem valamit, ezért írtam, hogy az osztás a kettő szorzata VAGY MÉGSEM?” MEGSEM: Osszegezve amit irtam meg Szilva meg masok is, hogy a prescaler, az a TMR2 regiszter inkrementalgatasat "lassitja le". A postscaler ezzel szemben csak annyit mond meg, hogy minden X-edik esemeny bekovetkeztekor tortenjen csak megszakitas, de ettol a TMR2 regiszter prescalertol fuggoen lepdel elore, nullazodik stb. A periodus regeszter (PR2) pedig azt mondja meg meddig szamlaljon el a szamlalo, azaz az esemeny mikor kovetkezzen be amikor a TMR2 nullazodik ill mikor a postcalert inkrementalja. A scalereket ugy kell elkepzelni min egy szamlalot. A timer elkezdi novelgetni a scaler regiszteret (amihez amugy nincs hozzaferesunk), es mikor az a beallitott erteket eleri, akkor keletkezik egy overflow jel ami pl lepteti az altalunk hozzaferheto szamlalot (TMR2 ez esetben), ill ha a scaler nem szamlalohoz van kotve akkor pl az interrupt flaget billenti be. Ezt azert fontos ilyen reszletesseggel tudni, mert a Microchip adatlapja a prescalert hol ugy erti, mint az altalunk beallithato "osztot", hol pedig ugy, mint a szamlalo regiszter amihez nicns hozza feresunk. Pl mikor a timer regiszterebe (az altalunk hozza ferhetobe, pl a TMR2-be) bele teszunk valamit, akkor a prescalert torli - de ilyen esetben nem ugy erti, hogy azt az 1:8 vagy 1:16 amit beallitottunk neki azt vissza allitja 1:1-re, hanem ugy, hogy ezt a belso szamlalot lenullaza. Pl 1:16 az osztas, elkezd szamlalni belul, mi 16 ciklusideig 0-t olvasunk a TMR2-bol, majd mikor a belso szamlalo eleri a 16-ot akkor TMR2 novekszik 1-re, es a belso szamlalo nullazodik. Namost ha kozben pl 10-nel a TMR2-be bele teszunk 5-ot mondjuk, akkor ez a belso szamlalo, a prescaler lenullazodik es uja el kell telnie 16 ciklusidonek mire az tulcsordul es noveli a TMR2-t immar 5-rol 6-ra.
...PicKit2 nem találja a PIC-et. A kontaktok jók, akkor meghalt a PIC?...lehet ilyen?
Kicsit tobb info jo lenne Mi a hiba uzenet? Milyen PIC ez? Hogy van bekotve? Fekete v. Piros gombos PicKit2? Mekkora feszultsegeklet mersz a Vpp, Vdd vonalakon?
Helló trudnai.
Ilyen szépen leírva sehol sem láttam még. (még én is értem) Láss csodát, TIMER2-vel is elindult a multiplexelésem. De akár hogy állítottam az elő és utóosztót, nem láttam "villogni" a kijelzőket. Majd leellenőriztem, és rájöttem, hogy a PR2-nek nem volt kezdeti értéke. Telenyomtam 1-sekkel, most úgy villóg mint egy index. Ha most változtatom a PR2 értékét, vagy az elő vagy utó osztót, látom hogy változik a multiplexelő frekvenciája. Az ilyen jó leírásokat elmentem, és bármikor elővehetem, és újra átrághatom magamat rajta. Mindenkinek köszönöm a segítséget, és szemtelenül számítva a legközelebbi alkalommal is rá. Köszönettel
Üzenet: No Device Detected
a típus: 18F2320 Vss-Vdd: 4,7V (mint mindig) Demo panelt felismeri, csak ezt a PIC-et nem, már használtam ezt az alkatrészt többször is (akkor ment) - halálra próbálgattam? (ja piros rajt a gomb)
Sajnos nekem is előfordult már egyszer, hogy egy 8520 halálát lelte programozás közben. Így el tudom képzelni, hogy ez veled is előfordulhatott. Írtam is erről a PICKit2 topicban nemrég. Betettem egy 12V-os zenert a Vpp ágba, mert azt gyanítottam, hogy a firmware esetleg nincs mindig a toppon, azaz elszalad a Vpp. Ilyenkor kisüti a kondit a zener, és nem öli meg a PIC-et. Persze lehet, hogy nem ettől halódott el, de ha azt nézem, hogy évek alatt a WPB_F18-al egyetlen PIC-et sem öltem meg, és erre most Te is így jártál egy 18F-el, nos nekem ez erősen gyanús a PK2-re nézve. Gyári darabod van, vagy klón?
Érdekes, mert máshonnan nem hallottam ilyesmit, és én sem tapasztaltam soha. Amikor Neked elszállt, akkor a saját programjával vagy MPLAB-bal használtad a PK2-t?
Én szinte mindig a saját progiját használom, csak 1-2 esetben MPLAB-oztam vele, amikor debugolnom kellett. Sőt, a fejlesztés alatt lévő cuccok rajta szoktak lógni napokon-heteken keresztül, miközben a gép éjszajkára pl. elalszik. Lehet, hogy ez sem egészséges ám, mert észrevettem, hogy felébredéskor időnként újra beleírja a firmware-t a PK2 progi a céláramkörbe, de még sosem rontott el PIC-et.
Gyári, pont azért, mert úgy gondoltam, hogy így elkerülhetem az ilyen eseteket.
Erdekes, es a Vdd agba nem lenne erdemes egy 5v1-et belerakni akkor mar?
Sziasztok!
A belső USART-os cuccokat használom az mcc18-ban rs232-es adatátvitelre. Amikor a PC adatot küld, megszakít és kiolvasom, illetve küldök. Azonban néha, számomra érthetetlenül, hibásan ír, illetve olvas és néha lefagy a progi. Miért lehet ez? (9600 baudon megy) Van valami bevállt módszer, hogy szokás a kommunikációt lebonyolítani, illetve a hibázást elkerülni? Az adatátvitel végén a picről küldök egy 1-est a pc-nek, de van olyan, hogy megkapja a pc, de a pic mégis meghal. Van valami ötletetek? Mit csinálhatok rosszul? Köszi
Helló
Lenne egy kérdésem. Van ugye ebben a hsz-emben a kapcsolás. Namost evvel egy picit megkavarodtam... Van ugye a 6 lábas csati rajta, ha jól nézem az az ICSP. Eddig oké, de van egy "Target power" és egy "prog" is. A kérdésem az lenne hogy meg tudná valaki mondani hogy mire valók ezek a csatik, és az a 6 lábas csati tényleg az ICSP lenne? Köszi szépen
Hello
Meg tudnátok mondani hogy hogyan kell a belső oszcillátorral üzemeltetni egy 16f628A-t? Idézet: „Van valami bevállt módszer, hogy szokás a kommunikációt lebonyolítani, illetve a hibázást elkerülni?” Epits fel egy adatatviteli protokollt. Ebben minden csomaghoz tartozzon egy csomag szam es egy ellenorzo szam. Ha jol vette le a PIC, akkor adjon vissza egy hajbokolast, hogy koszike, ha nem akkor meg ujjmutogatast, hogy mi a fene ez keremszepen Kuldo oldalon meg varni a visszajelzest es ismetelni vagy menni tovabb. Csomagszam azert kell, hogy a PIC tudja, hogy most ujrakuldes volt-e vagy ujabb csomag - hisz a visszajelzes is serulhet! Hogy mit csinaltal rosszul: Hol a kod?
Adatlapban szepen le van irva, de amugy config-ba INTOSC-ot kell beallitani.
Meg mindig a Brenneren torod az agyad? Tenyleg ICSP amugy. A "prog" az a programozoban levo PIC felprogramozasara valo... ebbol a kapcsolasbol most hirtelen nem is latom ilyenkor honnan kapja a Vdd-t, de biztosan azt nem a programozo szolgaltatja, mindenesetre fura, hogy ehhez pedig ezt a speci 3-as prog csatit terveztek be egy ICSP helyett...
"Brenneren"???
A target power akkor mire kellhet? Vagy az S4 / 1-re kössek VCC-t és kész?
Igen, azt megteheted, de csak es kizarolag 5V-os PIC-eket tegyel igy ra nyilvanvaloan.
Nem némi jóindulattal nevezhető szimmetrikusnak, hanem szimmetrikus. Attól szimmetrikus, hogy a két vezeték közötti feszültségkülönbség hordozza az információt.
Ne azt a néhányméter vezetéket nézd, ami a modem és a telefonkonnektor között van, hanem azt, ami a központtól a lakásodig megy. Nem olyan sűrű a csavarás rajta, mint az UTP kábelen, de nemis megy át rajta 100 megabit. Sokszor azért nem megy rendes sebességen vagy rosszabb esetben szakadozik az ADSL, mert az épületben nem rendes csavart érpárat húztak, hanem ezt a lapos vackot. Telefonhoz jó, de nem a nagyobb sebességhez. Csinálhatsz kisérletet, fogj 10 méter lapos telefonkábelt, és préselj a végére utp csatlakozót, és köss össze két gépet vele. Hiába kötötted be jól, akkor sem lesz stabil az átviteli sebesség. Azután fogj ugyanennyi rendes telefonkábelt, azzal szépen menni fog a LAN. Egyébként érdekes jelenség, hogy érdemesebb UTP kábelből csinálni a telefonhálózatot a házban, ha már két párat akarunk húzni, mert az UTP métere kb. kétszerannyi, mint a telefonkábel métere, és négyszerannyi vezeték van benne. Aztán ha valamire kell, akkor ott van két érpár tartalékban.
A Vdd-t teljesen más módon állítja elő, oda nem kell.
Emellett az a tapasztalatom, hogy a Vdd emelkedését egész jól viselik a PIC-ek. Volt, hogy 8V körüli fesz ment rá és kibírta. Viszont a Vpp-n már 14V-tól tönkrement egy PIC-em amikor a PICKit2 klónt fejlesztettem. Úgy láttam ezen az egy ponton nagyon sérülékenyek.
A saját szoftverével használom, és az én esetemen kívül eddig ez az első ami beesik a képbe. Én egyáltalán nem tartom kizártnak a Vpp feltevésem, az előző hsz-emben kifejtettek miatt. Mástól nem mehet tönkre egy PIC szerintem, és eddig évek alatt egyet sem sikerült tönkretenni a PK2 előtt. Egyébként azóta bennt van a zener és minden rendben. Remélem így is marad, mert most egy 8720-as látná kárát, amit már nagyon sajnálnék!
Nem tudjátok, hogy a CRC számításakor miért invertálják az adat és a CRC biteket? Ez talán jobb hibafelismerést okoz?
Van két oldal, ahol online lehet CRC-t számoltatni. Minkét oldalon a reverse beállítás az alap, sőt az egyiken nem is lehet azt megváltoztatni. Ez egyébként jól meg is szívatott mire rájöttem, hogy én jól számolok, csak nem invertálom a biteket. Itt a két oldal: Itt lehet az invertálást beállítani, változtatni Itt pedig ki lehet választani az ASCII ill. HEX bevitelt, de nem le...solni. Minden normál CRC-t magyarázó irodalom reverse nélkül számol, meg sem említik ennek jelentőségét és lehetőségét. Ezért érdekelne, hogy ha tudnátok erről mélyebben valamit! Köszi!
Azt hiszem félreértettem a inverz és a reverz dolgot. Mindenesetre még nem sikerült reverz módban dűlőre jutnom.
A CRC reverz már tiszta, de az adat reverz nem akar kijönni!
Kösz a válaszodat, megnéztem az adatlapban de nem jutottam közelebb a probléma megoldásához. Bocs de rosszul tettem fel a kérdést, CCS-C-ben szeretnék programozni nem assemblyben.
|
Bejelentkezés
Hirdetés |