Fórum témák
» Több friss téma |
Ja én azt hittem most PIC18-ra írogatsz, ha tudom, hogy PIC16-al akkor az első a bankváltás lett volna amire gondolok... De a lényeg az, hogy működik.
Én 18f14k22 doksiát néztem az SSPSTAT-ra ott azt írják róla, hogy: Idézet: „BF: Buffer Full Status bit (Receive mode only) 1 = Receive complete, SSPBUF is full 0 = Receive not complete, SSPBUF is empty” Lehet a te PIC-edben használható küldésre is, de eddig nem találkoztam ilyennel te milyen PIC-et használsz ?
Pedig azzal kezdtem a mondókámat.
Ennek is azt írja, meg azt, hogy: Idézet: „SSPSTAT: MSSP STATUS REGISTER (SPI MODE)” MCP42100-as digipotit használok, így találtam ezt: Bővebben: Link Ebben vannak példák 16F876-ra, így jöttem rá a hibára.
Pl. a PIC24-nél egyaránt van adó és vevő buffer, és ezekhez külön "Buffer Full" bit is. Azoknál a modelleknél ahol a bufferek többszintűek - 8-elemű FIFO tárak - ez elengedhetetlen.
Csináltam egy ilyet,a pergésmentesítésre.Minden 3. de néha második gomblenyomásra ír ki a kijelzőre egy nullát.Ha már kiírta,akkor utána jól működik.Miért csinálja ezt?
Szerintem a megszakításba ne tegyél pergésmentesítést.
A megszakítást úgy írd meg, hogy rögtön le tudjon akadály nélkül futni és ki tudjon lépni. A megszakíts mindig probléma és akadály mentesen fusson le a while() ciklusba kezeld a gombnyomást és az összes többit. RABIF regisztert meg a rutin végén független a megszakítás kiváltó feltételtől töröld. Ehhez a feladathoz nem is kell megszakítást használni. De a gond biztosan a megszakításban van mivel a while(RB6) paranccsal beragasztod az egészet.. Ráadásul a megszakítást elég lenne figyelned nem muszáj még a gombot is.. A hozzászólás módosítva: Júl 7, 2015
Bár a C nyelvet nem ismerem, de én fordítva gondolkodnék! Gombfigyelés > pergésmentesítés > megszakítás.
Átírtam,de nem pergésmentesít.
Nem lehet, hogy nem a pergéssel van gond, hanem mindíg ismétlődik? Úgy csináld meg, hogy amíg nem engeded el a gombot, addig ne léphessen be újra a gombnyomásra ez amúgy is kéne..
Csak néhányszor pergett,ezért megnöveltem a delay-t,így már nem prellez.
Már a 4 másodperc is nagyon sok. Az a baj, hogy ha már megnyomtad a gombot, nincs letiltva a megszakítás. Én ilyesmivel próbálkoznék:
4 másodperc prellezés???
Dobverővel kapcsolod? Ha ennyire szar a gomb, amit használsz, akassz a lábaira egy 0,47qF kondit! Amúgy fix idejű időzitővel pergésmentesíteni elég rossz megoldás. A C-hez ugyan nem értek, de asm.-ben én ezt így oldom meg: NEM_PEREG BTFSC PORTB,6 ;Amíg nyomva van rálép a következő sorra. CLRF szamlalo INCFSZ szamlalo GOTO NEM_PEREG Ha el tudott számolni 256-ig, tovább megy. amíg a gomb nyomva van, vagy pereg, folyton nullázza szamlalo-t.
Sosem értettem, hogy miért is szívatják magukat olyan sokan azzal, hogy a sima nyomógombokat portlábváltozás megszakítással dolgozzák fel. Ez arra van kitalálva, ha valami bemeneti jelváltozásra nagyon gyorsan kellene reagálni. A nyomógomb az nem ilyen, ráadásul a pergés nemkívánatos mellékhatásai miatt még jól el is szokták bonyolítani. Sokkal egyszerűbb időzítő megszakításból másodpercenként 30-50-szer lekérdezni a gombokat, és egy globális változóba berakni a lenyomott gomb kódját (mellékesen én még ugyanazzal az időzítővel szoktam a stoppert is megcsinálni). Így nem kell foglalkozni a pergésmentesítéssel, ráadásul nem túl bonyolult megoldani, hogy a rövid/hosszú gombnyomás is megkülönböztethető legyen.
Egyetértek, ez főleg akkor nagyon hasznos ha sok gombot kell viszonylag gyors reagálással lekezelni egymástól függetlenül (pl. mikor egyszerre több gomb lenyomása/nyomva tartása/egyik-másik felengedése szükséges valamilyen menürendszerben), várakozó ciklusokkal igen csak elbonyolítaná a feladatot vagy éppen hogy megoldhatatlanná tenné
Tökéletesen működik,és még a delay is nagyon kicsi.Köszönöm.
Sziasztok!
MPLABX nem látja pickit2-met. Attól tartok tönkrement. Nincs valakinek véletlenül egy eladó darab? Vagy hol tudnék beszerezni egyet? 3-as is jó, ha az van. Köszönöm
Probald inkabb a pickit2 saját programjával ne az MPLAB-al (pláne az X-el).
Lehet csak egy tranzisztor ment ki benne...
Ne add fel. lehet, hogy csak firmware-t kell benne frissíteni ... !
Sajnos úgy tűnik rövidre zártam. Valami valóban tönkrement benne, mert az MPLABX, amivel eddig tökéletesen működött, már nem iseri fel.
Vaterán találtam egy klónt. Remélem az jó lesz. Azért kösz. ML.
Érdekes lehet, hogy ki hogyan szokott kezelni egy nyomógombot, de ha visszaolvastok, itt egy konkrét, tanulás céljából készített kis program kijavításáról van szó.
Így igaz, mellesleg a legegyszerűbb egy középérték eltolásos kód lehet. Nem kell hozzá timer sem.
Sziasztok,
LED szalag fényerejét szeretném szabályozni a ledszalagra adott négyszögjel kitöltési tényezőjének módosításával. Odáig eljutottam, hogy a PIC egy lábára kötött egyetlen led fényerejét a PIC egy másik lábára kötött potméterrel tudom szabályozni. Abban szeretnék segítséget kérni, hogy a PIC egy lábán lévő 5 voltos 200Hz-s négyszögjelet szeretném 12 voltosra módosítani. (A PIC már most is a LED szalag 12 voltos tápjára kapcsolt 7805-ről kapja az áramot.) Gondolom valamilyen tranzisztor bázisára kellene a PIC lábát kapcsolnom, a kollektorára a 12v-ot, az emitterre meg a LED szalagot. De milyen tranzisztort kéne használni, milyen ellenállások kellenek és hova, ha kellenek...stb. Köszönöm.
Szia!
Nézd meg Topi nulláról a robotokig című cikkének a FET-ekkel foglalkozó részét! Teljesen érthetően le van írva minden. Bővebben: Link A hozzászólás módosítva: Júl 12, 2015
Segítségként ajánlom még tavir oldalán az Egyszerű elektronika c. cikksorozat tranzisztorokkal és MOSFET-ekkel foglalkozó részeit: >> Bővebben: Link <<
A hozzászólás módosítva: Júl 12, 2015
Az alábbi kódrészlettel szeretnék nyomógombos ki-be kapcsolást megvalósítani. Picit finomítani kellene rajta, mert ha nem elég határozottan nyomom a gombot, nem mindig kapcsol. Van valakinek ötlete esetleg?
Hardveres pergésmentesítést használsz?
Én ettől függetlenül azért bizotsan beraknék egy pár ms-os (pl. 100) késletetést. Továbbá, véleményem szerint a "goto $-1" használata kerülendő. Szerk.: amugy valószínűleg kapcsol az, csak párosra jön ki a pergés miatt. A hozzászólás módosítva: Júl 12, 2015
A késleltetésre én is gondoltam. Hova tegyem Szerinted?
Mi baj van a goto $-1 -el? Ezt a páros dolgot sem igazán értem. Idézet: „Mi baj van a goto $-1 -el? Ezt a páros dolgot sem igazán értem.” Attól függ milyen kontrollert használsz. Baseline és Mid-Range családnál nem okoz gondot szerintem.
Ez most épp egy PIC16F877A.
A hozzászólás módosítva: Júl 12, 2015
Az egymás utáni lekérdezéseknél adott számú igaz eredményt vizsgálj meg.
Ennek az az előnye, hogy nem fix késleltetés, hanem adaptív. Remélem nem rontottam el...
Sziasztok!
Remélem jó helyre írok. Talán ismeritek a John Becker féle LCD Scope projektet. Ezzel küzdök már egy ideje. Innen is letölthető Bővebben: Link , az LCD szkóp alatt. Az a gond, hogy nem égethető a program a PIC-be, a programozó hibát jelez, az MPLAB nem tudja lefordítani az OBJ és ASM fileokat sem, rengeteg hibát jelez. Valakinek van ötlete? |
Bejelentkezés
Hirdetés |