Fórum témák
» Több friss téma |
Ehhez nem kell PIC. Egy 555-tel kivitelezett hiányzó impulzus detektort kell építs.
Bővebben: Link
Én PICkel szeretném megoldani, de köszönöm a linket, nagyon hasznos.
Néztem, amit linkeltél, meg ezt is hozzá:
Bővebben: Link Nem találom azt a részt, amivel "beolvassa" a tekercset. Tudnál ebben segíteni? CLKIN-re és CLKOUT-ra kötöttem demoboardon. Gyakorlás képpen ráraktam a régi led villogtató progit belső oszcillátorral. Jó rég programoztam PIC-et, most újra meg kell barátkoznom az ASM kódokkal... Most hirtelen nem is tudom, hogy hogyan csináltam feltételes elágazást meg összehasonlítást, áttúrom a korábbi kódjaimat.
Ha jól látom, kivonás után a Z és C státuszregiszterekből tudom megállapítani, hogy kisebb/nagyobb/egyenlő -e két szám.
A tekercshez az jó, ha felveszek egy határértéket, amin belül mozoghat a vizsgálat? Vagyis ha csak egy picit változik az induktivitás, az lehet hogy csak attól van, hogy hozzáért valami. Gondolom a PIC-es vizsgálat jóval érzékenyebb, mint egy analóg áramkör.
A mozgás figyelése sem egy mágia : egy mágnes az egyik küllőn egy reed cső a villán
a reed kapcsol elindít egy számlást (időzítést ) ha a következő impulzus beérkezik újraindítja , tehát ha elég lassú a számlálás akkor lassúmenetnél sem kapcsolgat ki be a lámpa .
CAN-busszal próbálkozom, egy elm327-et próbálok rávenni, hogy az autóval beszélgessen (Citroen C4 Picasso). Ez az elm egy PIC18F2580 kódvédett programmal + egy MCP2551 a CAN illesztéséhez. Bármilyen parancsot adok ki, CAN ERROR jelenik meg. Összekötöttem egy másik PIC-kel + MCP2551-gyel, hogy megnézzem, mit küld. Tehát most így néz ki a dolog PIC18F2580-MCP2551------MCP2551-PIC18F2480. Megnéztem szkóppal, és úgy tűnik, amikor az elm-nek adok egy ODB2-parancsot (pl. 0101), akkor az meg is érkezik az én PIC-emhez, tehát elvileg harverhiba nincs. A programomban beállítom a CAN-modult, és várom, hogy az RXB0CONbits.RXFUL értéke 1 legyen. Ekkor elvileg érkezett egy érvényes CAN-üzenet. Ekkor viszont az összes CAN-regiszter értéke 0, kivéve az RXB0SIDH, ami 0x38. Mi a fene lehet ez?
Elvileg a protokoll 29 bites ID és 250 kbps sebesség. 10 megás kvarcot használok 4-szeres PLL-lel. Így állítom be a CAN-modult:
Szerintem a végére a maszk nem is kell, csak olyan biztos, ami biztos alapon tettem be. Kell még ehhez valami?
Hali!
Kaptál már valamilyen segítséget?
Hali!
Olyat tudok elképzelni, hogy illesztenénk 12 gombot a PIC-hez 0-9 szám és egy stop és egy hangerő A program 3 gombnyomást vár (0-199) dallam és a (hangerő+0-7) gombokat a hangerő állításához..
Megszakítással kapcsoltos kérdésem lenne:
A
használatakor az árnyékregiszterbe elmentett W, STATUS és a BSR visszaírodnak. Mivel a shadow regiszter csak 1 szintű, ezért a fenti utasítással csak a magas prioritású megszakításból lehet visszatérni, és az alacsonynál nem használható? (Mert azt is megszakíthatja egy magas?) Elvileg az is bekövetkezhet, hogy egy magas prioritású megszakítás kiszolgálása közben kapunk egy másik magas prioritású megszakítást. Ekkor el fogjuk veszteni a fenti értékeket, illetve felülítódik. Hogyan őrizzük meg az eredetit? Fel kell készülni programban a mentésére? A hozzászólás módosítva: Nov 27, 2012
Szia!
Megszakítást csak magasabb szintű megszakítás szakíthat meg --> magas szintű megszakítást nincs, ami megszakítson, tehát nem kell félned a felülírástól ( addig nem engedélyez megszakítás elfogadást, amíg a kiszolgálásban vagy, GIE bit automatikusan állítódik!). Az alacsony szintűnél jól láttad, ott azért nem jó, mert azt egy magasabb megszakíthatja és akkor tényleg oda a mentett érték ( ott neked kell gondoskodni mentésről plusz memória igénybevételével !). Steve!
Üdv, ez elméletileg egy midi vezérlő agya lenne:
Ez van benne, működő képes?
Igen ez eddig rendben van, de az az eset érdekes lehet, mikor a magas megszakítás kiszolgálás ideje alatt létrejön egy másik magas megszakítás igény is. (pl. Timer) Ez persze nem szakít meg, de az első lefutása után ismét visszatérünk azonnal a megszakítás vektorra, és kezdődik annak a kiszolgálása.
Egy retfie 1 után visszatölt, majd az ismételt megszakítással ujra betölt. Cáfolva a fenti hozzászólásomat tehát nem vesztünk W, STATUS és a BSR adatokat így sem, tehát magas prioritásnál hiba nélkül használhatjuk a retfie 1 uatasítást (mindig?). Jól gondolom?
Az elm327 ugye valamilyen protocollal tarsalog a PC-vel (talan soros).
Egy terminalprogival kellene eloszor ramenni, hogy az inicialast, bejelentkezest csinalja-e rendben. Rajta vannak a lezarok a CAN vegen, ahogy a doksi emliti?
Igen, jól gondolod, ezt írtam az előbb is...
Steve
Igen, soros. Ott tudok is beszélgetni az elm-mel, tudom olvasni a regisztereit, beállítani őket, utasításokat adni neki, és válaszolgat is szépen. De a soros portja csak a felhasználó felé történő kommunikációra van, ott nem látom, mi megy ki a CANRX-en és CANTX-en. Ezért akartam egy másik PIC-kel megnézni.
Ez nagyon kevés. Ez a deklaráció eleje, egy végrehajtható utasítást sem látok.
MPASM biztosan nem eszi meg. A hozzászólás módosítva: Nov 28, 2012
Igen megkerestek priviben, és úgy tűnik a dolog már sínen van.
A megoldás úgy fog működni, hogy a 32 nyomógomb bármelyikének megnyomásakor egy hangeffekt meg fog szólalni. Amire gondoltál azt valószínű magam is megoldottam volna bináris dekódolással, de itt a gomb-kombinációk nyomkodása nem megoldás sajnos. Köszönöm hogy reagáltál!. A hozzászólás módosítva: Nov 28, 2012
Szia
Idézet: „...tehát magas prioritásnál hiba nélkül használhatjuk a retfie 1 uatasítást (mindig?)” Ameddig a GIEH kezelését a retfie utasításra bízzuk. Ha a megszakítási rutinban 1 -re állítjuk más utasítással a GIEH -t, akkor az engedélyezés azonnal érvényre jut, még mielőtt visszatért volva a program. A beérkezett kérés kiszolgálása elkezdődik, ami felülírja a regiszterek mentett értékét.
Szia!
Idézet: „Ameddig a GIEH kezelését a retfie utasításra bízzuk. Ha a megszakítási rutinban 1 -re állítjuk más utasítással a GIEH -t, akkor az engedélyezés azonnal érvényre jut, még mielőtt visszatért volva a program.” Ennek mi lenne az értelme ?! Steve
Szia!
Elrettentés, attól, amit sok - sok programban lehet látni, hogy törlik és 1 -be állítják a GIE (12F, 16F) vagy GIEH, GIEL (18F) biteket a megszakítási rutonokban. Nem árt, ha pontosan tudjuk, milyen következménnyel jár.
Mérnem görgetsz lejjebb?
Hova görgessek, ha 108 sort mutat az a kód?
Lentebb is csak #define és EQU sorok láthatók.
Mi lesz ebből, csak nem valami dob vezérlés??? Az enyém már működik
Oké, ezek szeriint nem is az egészet rakta be:s amúgy működik, megkérdeztem valakit.
Idézet: Most már csak azt nem tudjuk, hogy mi működik, s vajon mitől működik... „s amúgy működik”
Sziasztok, egy 16F877A-s PIC-el szeretnék soros porton adatokat küldeni a számítógépnek, de valamiért nem működik szimulátoron kívül. Itt a rajz ami szerint dolgoztam. Ha a MAX232 chipnél összekötöm az RX-TX lábakat, visszaküldi amit kapott a számítógéptől, szóval az jó kell hogy legyen. Valami a PIC-el vagy a forráskóddal van és nem tudom, hogy mi. Már két PIC-el is megpróbáltam, de semmi változás sincs. Próbáltam olyan kódokkal is amit például a HI-TECH C-vel adtak, de az is csak szimulátorban működik. Azt is próbáltam, hogy a MAX232 chip és a PIC között felcseréltem az RX-TX-et, de az sem oldott meg semmit. Szerintetek mi lehet a gond?
Első ránézésre: nem állítottad be TX (RC6) lábat kimenetnek.
Szia!
Ha a szimulátorban megy, akkor lehet, hogy pl. a konfigurációs biteket nem jól állítottad be !? Steve
Midi vezérlő lenne, fel is töltöm akkor az asm-et
A hozzászólás módosítva: Nov 29, 2012
|
Bejelentkezés
Hirdetés |