Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   179 / 1320
(#) menyus hozzászólása Ápr 1, 2008 /
 
Sziasztok!

Kérdezni szeretném hogy komparátor esetében a hol állítható hogy a kimenet mely állapot változására következzen be az interrupt? Beállítható ez valahol? Vagy bármilyen állapotváltozásra (H - L / L - H ) bekövetkezik a megszakítás?
(#) menyus válasza watt hozzászólására (») Ápr 1, 2008 /
 
Hű, ez komolyan hangzik..Nem fizettek ki egy projectedet? Jártam már én is így csak nekem könnyebb dolgom volt. A 2,4 gigás ISM sáv egy részét kellett sweepelnem 5 mhz szélesen 100 mW al, és mindjárt sírva könyörögtek a megoldásért...
(#) watt válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Francokat! Egyszerűen csak le szeretném próbálni megismételhető hibákkal a hálózatomat!
(#) watt válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Ezt nekem is meg kéne néznem az adatlapban, de ha jól emlékszem bármelyik változás megszakítást okoz.
(#) menyus válasza watt hozzászólására (») Ápr 1, 2008 /
 
Ja, már azt hittem belefutottál valamibe..
(#) menyus válasza watt hozzászólására (») Ápr 1, 2008 /
 
Szerintem is így lehet, mert a bemeneteket tudom állítgatni, a kimenetet tudom invertálni...stb. És bárhogyan állítom egy L - H / H - L (vagy az inverzére) átmenetre 2X fut le a megszakítás...Ezen még agyalnom kell hogyan oldjam meg. vagy még az is jó lenne ha a két interrupt közé be lehetne préselni egy 0,5 sec es várakoztatást.
(#) trudnai válasza menyus hozzászólására (») Ápr 1, 2008 /
 
OFF: Szemely szerint nem szeretem mikor valaki direkt hibat csinal ilyen esetben. Eddig a legjobb amit ki nem fizetett munkara hallottam: Az egyik ismerosom mar nem tudom hany levelen, telefnon stb tul volt, ceg meg mindig nem fizetett, hat beallt a ceg parkolojaba a vezerigazgato kocsijat elallta a sajatjaval es ugy hallgatta a zenet. Jon a vezer, mondja neki "Uram, elallna a kocsijaval, szeretnek kiallni", mire o lazan, "Persze"... de tovabbra is ott ul es hallgatja a zenet. Vezer kicsit idegesebben "Ne haragudjon de sietek, elallna az utbol?!" Mire o megint: "Persze". Harmadszorra az urge mar igencsak mergesen orditott, hogy "Azt igerte elall az utbol, miert nem all el?!?!?", mire o: "Hat maga is igerte, hogy kifizeti a munkam..." Na, 10 perc mulva mar utalodott a penz a szamlajara... :ON
(#) menyus válasza trudnai hozzászólására (») Ápr 1, 2008 /
 
OFF

Hát esete válogatja a megoldást. Az én esetemben az adós egy (mint utóbb kiderült ) "elúszott" kis Bt volt, vezérigazgató nélkül. Én sem vagyok híve az ilyen megoldásoknak, de még előleget sem kaptam és az anyagköltségben is az én pénzem állt. Elszakadt a cérna...De ez is bejött!

ON
(#) potyo válasza menyus hozzászólására (») Ápr 1, 2008 /
 
OFF

Ha már előre van némi gyanú arra vonatkozóan, hogy nem lesz kifizetve, akkor eleve be kell tenni valami időzítést, hogy mikor álljon le a cucc. Pl. három hónap múlva. Kontrollernél nem egy nagy dolog egy számlálót növelni, és időnként elmentenni az eepromba a kikapcsolás esetére. Ha megtörtént a kifizetés, akkor 1-2 hét múlva elmenni, és az időzítést kivenni egy "csak leellenőrzök valamit" szöveggel. Ha meg nem fizettek, akkor majd fognak...

ON
(#) potyo válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Mindkettőre megtörténik a megszakítás, de a rutinod elején le tudod ellenőrizni, hogy most épp milyen a komparátor kimenete, ebből pedig következik az, hogy milyen irányú volt a változás.
(#) menyus válasza potyo hozzászólására (») Ápr 1, 2008 /
 
nem rossz..
(#) menyus válasza potyo hozzászólására (») Ápr 1, 2008 /
 
Nem az a gondom hogy nem tudom melyik állapot adja a megszakítást, ez az adott alkalmazásban mindegy, nomeg a komparátor kimenetét is tudom invertálni ha akarom. A gond az hogy nekem csak az egyik állapot bekövetkezésekor kéne lefusson az interrupt, a másiknál nem. Ennek megoldásaként arra gondoltam hogy figyelni kellene a komparátor kimenetet és ha átmegy mondjuk H ba akkor letiltani a komparátor interruptot, mikor visszabillen akkor engedélyezni.

Régebben írtad hogy egy megszakításba nem szerencsés várakozást rakni. Mi is volt ennek az oka? Kerestem, de nem találom az erre vonatkozó hozzászólásokat...

(#) watt hozzászólása Ápr 1, 2008 /
 
Látom a ki nem fizetést már tök jól megoldottátok, de mi van a hibagenerálással!?
(#) watt válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Ember, ha az egyik állapotot érzékeled, akkor egyszerűen kilépsz a megszakításból az olyan, mint ha meg se történt volna!
(#) kobold válasza watt hozzászólására (») Ápr 1, 2008 /
 
Esetleg ha half-duplex módban az éppen küldő Master mellett egy másik egység is küldene, vagy egyszerűen csak "ráül" a két vezetékre adott ideig...
Átviteli hibát szeretnél, vagy valami mást?
(#) szilva válasza watt hozzászólására (») Ápr 1, 2008 /
 
Nem igazán látom, milyen hibagenerálásra van szükséged.

Mintha azt írtad volna, hogy ugyanazt a hibát kellene előállítani megismételhetően, erre csak egy elég bonyolult, de biztosan működő ötletem lenne: a hibát tartalmazó jelsorozat jelváltásai közti időket eltárolni, és ennek segítségével később ugyanezt vissza lehet játszani bármikor. Egy megfelelő RS485 illesztőre kell vezetni a visszajátszott jelet. Vagy nem valami ilyesmire gondoltál?
(#) menyus válasza watt hozzászólására (») Ápr 1, 2008 /
 
igaz... Akkor nincs erre megoldás? Valaminek biztosan lennie kell, csak megint nem látom a fától az erdőt.
(#) szilva válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Mire kellene megoldás? Miért lenne Neked annyira fontos, hogy fizikailag ne következzen be a megszakítás?
(#) kobold válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Az nem jó, ha úgymond kettővel osztod az interrupt-ok számát? Feltételezem, hogy tudod, melyik szintváltás következik be legelőször, ez alapján egy bitet beírsz-kitörölsz minden megszakításnál, és csak akkor hajtod végre a teljes ISR-t, ha épp a kívánt szintet azonosítja az a bit (egyébként meg bit negálása, és RETFIE).
(#) menyus válasza szilva hozzászólására (») Ápr 1, 2008 /
 
Mert így a megszakításban lévő program 2 X fut le amikor át/viszza billen a komparátor. A komparátor referenciája "X" V ra állítva a N+ bemeneten. A N- bemenetre érkezik egy folyamatosan és esetlegesen változó DC fesz. Amikor ez a fesz. eléri a N+ értékét akkor átbillen a komparátor és lefut a megszakításprogram. idáig rendben. De mikor a fesz. vissza esik az N+ értéke alá akkor is lefut a megszakításprogram, és ez a baj.
(#) menyus válasza watt hozzászólására (») Ápr 1, 2008 /
 
Ezt most nem nagyon értem...egy éppen futó megszakításból ki lehet lépni? Én azt hittem ha egyszer bekövetkezett akkor az már mindenképpen lefut teljesen. A megszakításba is rakhatok ezek szerint pl. egy bemenet pollozást és mondjuk adott esetben GOTO val kiléphetek belőle? Mert akkor ez egészen más megvilágításba helyezi a dolgokat és nekiállok egy új programnak.
(#) kobold válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Hülyeséget írtam, nem is kell plusz bitet állítgatni, ott a COUT. Ha nem a megfelelő szintet jelzi, visszatérsz a megszakításból, és nem hajtod végre a rutint.
(#) watt válasza szilva hozzászólására (») Ápr 1, 2008 /
 
Tehát arra gondolsz, hogy egy PIC-ben kéne írni egy soros jelet előállító progit, ami egy RS485 illesztővel rádumálna a portra, szoftveresen generálva a kívánt jelsorozatot, ill. szándékosan elrontva azt, akkor amikor kell?

Ha igen, ez egész jó ötlet, most már csak a programot kéne megírni. Kérdés milyen jellegű hibákat kéne generálni.
pl.
1. jelfolyam megszakad(végleg, vagy részlegesen)
2. bit sérülés
3...

Itt azért akadtam el, mert a többi hiba e kettőből levezethető. Vagy tévednék?
(#) menyus válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Lehet hogy hülyeségeket kérdezek, de a mondás szerint "egy csecsemőnek minden új"...
(#) kobold válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Nem GOTO-val, hanem RETFIE-vel kell kilépned, különben túlcsordul a verem. A GOTO-t csak a megszakítási rutinon belüli ugrásra használd, így elugorhatsz oda, ahol a regiszterek visszaállítása, és a visszatérés a normál ISR alatt egyébként is történne, és úgy hajtod végre, hogy átlépted az összes többit.
(#) potyo válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Most az tényleg baj, hogy lefut kb. 15 utasítás? Mert a rutin elején beteszed, hogy
  1. BTFSS CMCON, COUT
  2. GOTO ISR_VEGE ; épp lefutó él volt, tehát ugrunk a rutin végére
  3. ; ide pedig azt, amit el kell végezni, ha felfutó él volt
(#) kobold válasza watt hozzászólására (») Ápr 1, 2008 /
 
Esetleg vártnál hosszabb adatcsomag. Az LG frekiváltónk egyszer produkált ilyet valamiért, egy válaszban 1 byte pluszt is küldött, meg is akadt tőle az adatfeldolgozó progi...
(#) watt válasza menyus hozzászólására (») Ápr 1, 2008 /
 
Hú nagyon nagyok a hiányosságok!
Azt gondoltad, hogy csak egy dolgot lehet megszakításban elvégezni? Aztán azt hiszed, hogy a megszakításban folyó program más mint egy szubrutin?
Tévedsz!
Bármit meglehet csinálni, de nyílván nem goto-val kell kiszánkázni a megszakításból, hanem egy goto-val kell a kilépési pontra ugrani, ahol visszatöltöd a fontos regisztereket, majd RETFIE-vel kilépsz.
A megszakításkor el kell tudni dönteni mi okozta(BTFSS, stb). Ekkor azt is el lehet dönteni, hogy a komparátor okozta-e. Ha igen, akkor azt is el lehet dönteni, hogy a komparátor bemenete éppen L, vagy H. Ha felfutó él érdekel csak, akkor csak a H esetén végzed el a műveletet, L esetén nem, mert L esetén nyílván lefutó él okozott INT-et!

potyo beelőzött, rövid volt és zseniális, mint mindig!
(#) watt válasza kobold hozzászólására (») Ápr 1, 2008 /
 
Ezzel a más is küld a Master mellé, az a gond, hogy félek, hogy amikor egymásra ugatnak a driverek, akkor megsérülhet a kimenetük. Igazából az adatlapból nem derül ki(vagy én nem értem), hogy beszélhetnek-e egyszerre a vonalak. Ja igen az SN75176BP a vonaldriver. Aztán az is gond lehet, hogy így nagyon nehéz lenne a hibát megismételni, mivel szinkronizálni kéne a fő adatfolyammal. Persze lehetne figyelni a vonalat, és úgy beleugatni. Ez egyébként nem is rossz, csak a fő kérdés fennál, hogy sérülne e a kimenet?
(#) watt válasza kobold hozzászólására (») Ápr 1, 2008 /
 
Ez jó, meg lehet rövidebb is! Köszi!

1. jelfolyam megszakad(végleg, vagy részlegesen)
2. bit sérülés
3. várnál hosszabb csomag
4. vártnál rövidebb csomag
5... ?
Következő: »»   179 / 1320
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