Fórum témák
» Több friss téma |
A bocsánat a step intoval csináltam. A tmr0 az miért nem resetel le ha leresetelem a debug-ot? Valamikor nem is számol.
Hali!
Ezek az értékek jönnek, közbe rájöttem hogy egyszerűbb eszközzel kellene próbálkoznom (ez biztos valami extra kódolással van) Majd keresek valami más eszközt. Idézet: „13413424812813413413413413424812813413413413400000000000 13424812813413413413413424812813413413413413424812813413413413400000000000 13424812813413413413413424812813413413413413424812813413413413400000000000 13424812813413413413413424812813413413413413424812813413413413400000000000 13424812813413413413413424812813413413413413424812813413413413400000000000” Üdv.
Szia!
A RESET-nél a PIC-nél nullázódik a TMR ( adatlap!, TMR regiszter POR, BOR, RESET értékekre nézz rá!) ? A számolás az osztástól függ , nem ez a problémád ( ha pl. 256-ot állítottál, akkor igen ritkán fog számolni kézi léptetésnél ! )?! Steve
Nem. Egyszerűen ha az option_reg-et átugratom, akkor el sem indul a tmr0 a szimulátorban. De egy érdekes kérdésem lenne. Ha intelligens megszakításban az rb0, mondjuk felfutó élre állítom, akkor ha én a megszakításban elvégzem a dolgom és a jelem még mindig 1 akkor visszalép újra a megszakításba?
Ha a megszakításkezelő rutinban nem törlöd a megszakítási állapotjelző bitet, akkor a rutinból való kilépés után újra belép abba. Mégcsak az sem kell hozzá, hogy a jeled még mindig magas legyen. Ha viszont törölted az állapotjelződ, és a jel még mindíg magas, akkor nem lesz újabb megszakítás.
Ha élt figyelsz, akkor a szint nem számít ! A többit leírta Zsora kolléga!
Idézet: „Nem. Egyszerűen ha az option_reg-et átugratom, akkor el sem indul a tmr0 a szimulátorban.” Két kérdésem lenne: 1. Milyen processzorról beszélünk most? 2. Megnézted, amit az előbb írtam ( pl. mi az OPTION_REG RESET utáni állapota és az milyen léptetési sebességet jelent ) ? Steve
Megnéztem,de én az inicalizálásnál beállítom előosztás nélkülire. Ezzel nincsen gond. Ami érdekelne, hogy capture módban jön az 1 bit a tmr1 leméri azt elmentem egy segédváltozóba, aztán jön a 2. bit azt ismét elmentem. És ha mondjuk van 32 bitem mindet külön segédregiszterbe mentem? Mert ez egy kicsit furának tűnik.
Idézet: „Ha intelligens megszakításban az rb0, mondjuk felfutó élre állítom, akkor ha én a megszakításban elvégzem a dolgom és a jelem még mindig 1 akkor visszalép újra a megszakításba?” Rovid valasz: Ha mindent jol csinalsz a megszakitasban, akkor nem, hisz ez csak a feluto elre generalja a megszakitast... Azonban: Ha ez egy nyomogomb, vagy mechanikus jelfogo / erintkezo, akkor elkepzelheto, hogy a perges meg nem csendesedett le mikor kilepsz a megszakitasbol, es igy a perges miatt ujabb felfuto eled lesz. Pl egy szamlalo akar tobb szazat is lephet mire a nyomogombod magahoz ter... Magyaran azt mindenkeppen le kell kezelned...
Miért tűnik furának? Ha 32 időpontra van szükséged, akkor 32-szer kell menteni ( vagy már eleve számolsz, ha van időd és reagálsz!) .
Remélem jól értettem, a "jön az 1 bit" az egy esemény bekövetkeztét jelzi Neked ?! Steve
Nem gomb adja, hanem az adó oldalon egy 16F716 egy 433Mhz-es modulon keresztül. A vevő oldalon egy 16F887 és a párja az adónak. De ez a gond megoldódott, ismét a megszakítás rutinban volt egy fatális hiba. Most átjönnek a bitek, egyelőre nyolc. A start kóddal van a bajom, mert a bitminta az amit látok a vevő oldalon, csak csúszkál. Nincsen a sebesség az rf modulok felett, de a hatótáv szerintem ezekhez az eszközökhöz képest elégtelen, kb 3-4 méter. Azután nemcsak bizonytalan, hanem teljes a zavar. Van egy router és 2 gép a szobában,lehet ezek zavarják be? Vagy a kód a hibás? Egyébként ha ugyanezzel a modul párossal dolgoznék, vagy akármelyik 433Mhz-es modullal, hogyan lehetne egymás zavarása nélkül alkalmazni őket? Ezekkel a párosokkal a chipcad-ben beszerzett adó rt14 és a vevő rr3-as típusokkal, aztán alkalmasak-e arra, hogy egy 24 bitben kommunikáljanak, lehetőleg olyan gyorsan, hogy a lassúság ne lehessen az irányítás fogyatéka, aztán ne szakadozzon meg lehetőleg és a hatótáv minnél nagyobb legyen.
Csak ugy halkan megkerdem, hogy Te a soros vonal TX-et viszed ra az adora? Nem nagyon jo otlet. Manchester kódolást lenne celszerubb alkalmazni, vagy FM TX/RX parost. A manchester kódolás celszeru minden ilyen jellegu atvitelnel, mert nincs DC komponense. A soros vonali jelalak meghulyiti a vevot, es nem lesz soha normalis jelalakod, csak a 0x55 es 0xAA atvitel eseten.
Sziasztok!
Lenne valaki olyan jo hogy ezt a folyamatot leröviditi? Az ismétlésekböl több (összesen 30x) van csak nem másoltam be. Müködik rendesen csak hülyén néz ki. Ha lehet kommentel, szeretnék ebböl is tanulni.
Pedig bemásoltam.
BTFSS IN1 GOTO KI CALL TIMER_0MP BTFSS IN1 GOTO KI BCF LED CALL TIMER_1MP CLRWDT BTFSC IN1 BSF LED BTFSS IN1 GOTO KI CALL TIMER_0MP BTFSS IN1 GOTO KI BCF LED CALL TIMER_1MP CLRWDT BTFSC IN1 BSF LED BTFSS IN1 GOTO KI CALL TIMER_0MP BTFSS IN1 GOTO KI BCF LED CALL TIMER_1MP CLRWDT BTFSC IN1 BSF LED RETURN
Nem a Tx lábat használat, csak egy szimpla i/o port-ot. Nem egészen ide kapcsolódik ezért csak a topik címet adom: Infra távirányítás. Köszi!
Lehet, hogy a probléma leírásával egyszerűbb lenne. Nagyon amatőr vagyok, de szerintem a programozási stílusban nem igen hathatós, a problémák megoldására nyitott fórumban. Ez egy lassan magától kialakuló, folyamat, megváltozik a programozási felfogással.
Úgylátom folyton ugyanazt ismétled.
Nem erted. Ez a TX/RX paros nem szereti az asszimetrikus jelsorozatot, vagyis a sima UART kimeno jelet, mert a vevo nem tudja kovetni az ado jelet. Erre talaltak ki a Manchester kodolast. Esetleg egy 4 kHz vivot modulalani az UART jelevel, de akkor le kell menned 300 Baud sebessegig. Sokat jatszottam ezekkel az ado-vevo parossal (nem ugyanez, de a felepites altalaban hasonlo) es igen gyengen muzsikalnak.
Sajnálom ha fárasztó vagyok, nem vagyok programozo, még nagyon kezdö vagyok benne.
A lényeg az hogy a BTFSS IN1 indit egy timert -led világit -timer lejár - led kialszik a másik timer idejére- és igy tovább 30-szor. Eddig tulajdonképp egy villogó lenne. Viszont ha BTFSC IN1 bárhol az elözö 30 ismétlésen belül akkor megszakitja azt, és ugrik GOTO KI . Tulajdonképp ennyi lenne. Mint irtam ebben a sorrendben teljesen jol müködik, csak kicsit hosszú lenne igy, és biztos van rá rövidebb megoldás.
Tapasztaltam a gyengeségét és bizonytalanságát. Egyelőre aszinkronban megy az 1es dupla hosszú mint a 0. De mindenképpen Manchaster-rel is kipróbálom. Szerinted egy kissebb rc-nek az irányítása job bal kitérés 0-256-ig és a sebesség (8bit PWM ) ami eddig 16bit meg lenne eszköz még 8 bit. Milyen idegkárosodásokat okoz mondjuk ha legfeljebb 20-30 méter a cél? Vagy hagyjam ezeket a modulokat?
A következő projektemben, melynek főszereplője egy PIC16F877 lesz, szeretnék pár I/O lábat megspórolni, ezért arra gondoltam, a szükséges gombok kezelését az A/D konverterre bíznám. Erre léteznek rajzok a neten, de amikbe eddig belebotlottam, azok az ellenállások sorbakapcsolásával állították elő az osztási arányt. Ezen megoldás hátránya, hogy több gomb egyidejű lenyomását nem tudja megfelelően kezelni. Ezért én úgy döntöttem, hogy (részben) párhuzamos kapcsolással fogok dolgozni (lásd mellékelt ábra). Az eredő ellenállások alapján kiszámoltam az A/D bemenetére jutó lehetséges feszültségeket, és úgy tűnik, hogy kb. 80mV a legkisebb különbség két lehetséges érték között. Vagyis az említett PIC 10-bites felbontása jónak tűnik, hiszen az egy nagyságrenddel nagyobb (~5mV).
Ti mit gondoltok erről a megoldásról? Be fog válni a gyakorlatban?
Akkor ha jól értem egy gombnyomásra megáll?
Igy van.
Igy már egy kicsit tisztábban látom köszönöm. Tehát akkor a btfcs swl csak azon az egy helyen szakit meg? A 2 idözités kb. 2mp, tehát akkor elképzelhetö hogy 2mp. nél hosszabb ideig is kell a swl-t nyomni. A 30 led on és a 30 led off-ot hova tudom betenni? A végtelenhez?
Ha azonnali kilépés kell akkor csinálj portb megszakítást, vagy tedd a gombvizsgálatot a késleltető rutinba. Milyen pic-cel foglalkozol?
Portb megszakitást hogy képzeljem el?
PIC18f14k22
Ha nem fontos a megszakítás, akkor szerintem jó lesz. Bár a főprogramban futtatnod kell a gombfigyelést (A/D olvasás).
Szia!
Nekem pont ilyen klónom van, mint ami a linkeden szerepel, viszont más eladótól (sure electronics) vettem. Nem bántam meg, működik rendesen. Szerintem annyit megért, 13e-t nem szívesen adnék ki az eredetiért. A döntés persze a tiéd. |
Bejelentkezés
Hirdetés |