Fórum témák
» Több friss téma |
Szerintem egész jól átlátod a feladatot! (Lehet, hogy már nem is a kezdők topicjában van a helyed! )
Gondolom nekiállsz majd... Ha elkadsz, kérdezz, igyekszem segíteni!
Egyelőre még nem.
- Nyisd meg a PIC adatlapját. - Nézegesd/tanulmányozd a B és C portokat. - Keresd meg az adatlapban az inicializálási mintapéldákat a B és C port esetében. - Milyen fő különbséget látsz és az mire vonatkozik?
Jani! Részemről okés, csak ha dróttal kötöd be, akkor ennyi erővel használhatnál gyári lyukraszteres panelt is...
Nálam a fejlesztő panel, egy modul rendszerű dolog (ahol a modulok akár rá is vannak építve az alaplapra) és a csatlakozóik egyfajta szabvány kiosztás szerint kompatibilisen csatlakoztathatok a pichez és/vagy egymáshoz. Vagy csak én bonyolítom túl...?
Szia! Én úgy látom, csak a PIC felépítését kell megértened, amit az adatlapokból megteheszt, a többi nem gond. Persze, a PIC-et Asseblerben könnyebb megismerni, de ha van már tapasztalatod mikrovezérlő témában, akkor lehet, hogy egyből C-vel kezdhetsz.
Igazad van, de ez már nálam így marad. Úgy is fog még több fejlesztő is épülni az idők során. Először a 12F683-at fogom megtanulni lekezelni, aztán jön 16F628 ,majd ha tényleg tudok PIC-ezni, akkor a 18F széria is..
Ha az AVR-hez értesz, akkor szerintem nem lesz probléma. Vannak dolgok, amiben más a PIC, de alapvetően mindkettő kontroller, mindkettőhöz az adatlap biztosítja a leírást, csak a PIC jobb :yes: . Szerintem megnézel néhány példaprogramot, hogy hogyan áll össze egy PIC-es projekt, mit hogyan állítasz be, gondolok itt a konfigurációs bitekre, megszakítást hogyan kezeled le, stb., és nem lenne szabad, hogy probléma legyen. Nekem legalábbis ez volt a tapasztalatom, amikor a PIC után a 8051, MSP430 vagy AVR-el volt dolgom - bár azért az MSP430 adatlapja elég vacaknak tűnik, a 8051 és az AVR adatlapok sokkal jobbak tőlük, de számomra a PIC adatlapok tűnnek eddig a legjobbnak (azokból is inkább a régebbiek, mert mintha az újabbak nem lennének olyan jók, pedig néhány MB nem hinném, hogy annyira kritikus lenne manapság...)
Rendben megnézem és megpróbálok rájönni.
Köszönöm szépen az elismerést, bár csak futtában dobtam össze a folyamatábrát, így hát hiányos egy kicsit.
Így van ez ha valaki hallgat a Haladókra! A folyamatábra és a folyamatos kommentezés segít megérteni a programozás menetét, és a hibák kiküszöbölését. Ezt mind tőletek tanultam. Átírtam a progit. Szimulátorban teszteltem (Proteus), 300Hz-ig mentem el és nem hagyott ki egyetlen lépést sem. Most berakom a PIC-be kipróbálom ott is.
Kipróbáltam a félkész programot próbapanelen. (csatolva)
Nagyon-nagyon köszönöm a tanácsot. Még 8MHz-is pontos, akárhogy pörgetem. Viszont valamit elronthattam a kezdésnél, mert ahogy a képen is látszik, az X Y helyett most valami Kínai jelet rak ki, meg ha visszafele tekerem nem áll meg nullánál.De ezeket majd kijavítom.
Lehet, hogy szinkronizálni kell a kijelzést. Előfordulhat, hogy kijelzés közben változik meg a számláló értéke, ami zöltséghez vezet. Próbáld meg, hogy készítesz egy Temp-et a számláló kijelzéséhez, amit csak akkor töltesz fel, ha kész a kijelzés.
A jelzővel engedélyezed a Temp feltöltését és megszakításkor csak akkor töltöd fel, ha ez a jelző él. A kijelzés megkezdésénél törlöd a jelzőt, a végén engedélyezed.
Nem ott van a probléma, mert a megszakítást addig nem indítom el amíg az "alap" kijelzés nem történik meg. Az "alap" az X Y a felső sorban és alatta a nullák. Ezekután a kijelző felső sorával már nem is foglalkozom, csak az alsó (0000.00) sort frissítem. Ezért nem értem, hogy mi lett vele, mert ehez a részhez nem nyúltam.
Jelentem, kész lett a nyák fele, már ki van marva, szép. Holnap birom ónozni, már leragad a szemem.
Vedd vissza az LCD vonal sebességeket. Néha zagyvaságot olvas ami hibás kijelzéshez vezet. Akár még a módokat, vagy a GRAM-ot is össze lehet így kutyulni.
Ennél egyszerübb volt a megoldás. (figyelmetlenség)
Mivel előröl kezdtem az egész programot, a már meglévő és jól kidolgozott programrészeket, csak bemásoltam az új programba, de pár dolgot újra beírtam.Így tettem ezzel a programrészel is:
de itt autómatikusan "return"-t írtam a "retlw 0x00" helyett, ezáltal az akuban benmaradt értéket olvasta ki a táblából, ami jelen esetben 1 volt, de a táblázatban csak a 0-ik értéken van adtat.
Mire rájöttem, símán visszaállítottam az órát.
Sziasztok, szeretnék egy text scrollt csinálni lcd-n balról jobbra. Mikroc Pro-ban tud valaki valamilyen szép megoldást? Tudom van az a függvény hogy Lcd_Cmd(_LCD_SHIFT_RIGHT); de ez mind a két sort shifteli nekem pedig csak a felső sor kellene. Mégpedig úgy hogy a szöveg utolsó betűje kerüljön az 1,1 pozícióba és utána pedig mindig eltolni eggyel.
Próbáltam úgy hogy csináltam egy char text[] = {'H','ő','m','é','r','s','é','k','l','e','t'} és ezt tologattam de ehez mindig törölni kell a kijelzőt amitől csúnya vibrálás látszik.
Szia! Ha a .lay mellé feltennél egy sima képet is, akkor talán többen megnéznék. Csak a te kedvedért nem fogja valaki a programot feltenni. Nekem pl annyi kacat van a gépemen, hogy eszem ágában sincs!
Aha, akkor ez most azt jelenti, hogy működik jól?
Már kijavítottuk. Pont most lett kész a nyák, mert most ónoztam, és sikerült ónozni is. Ma még méretre is lesz vágva, aztán meg majd valamikor fúrva.. Képek szerintem este lesznek ! Üdv !
Igen működik, hála az ötletednek, hogy megszakításból figyeljem a beérkező jeleket. Bár eddig csak az egyik tengely számlálását, és kiírását csinálja a program, de a mért adatokból számolva nem lesz gond mind a két tengely egyidejü számlálásával, amit épp most programozok.
Ennek örülök! Jól haladsz vele. Igen, simán ellát "akárhány" tengelyt! Nézd meg, mennyi idő alatt kezel le egy impulzust, természetesen a kijelzés itt nem számít, csak a megszakítás beérkezése, lekezelése, kilépése alatt eltelt idő. Ez meghatározza a maximális imulzus számot. Használd az MPLAB szimulátorát és a Stopwatch-t. Ez pontosan megmondja az időket, ha beállítod az órajelet a Debugger Settings... alatt.
A következőkre írtam! Ha több segítséget adsz ahhoz amihez segítséget kérsz, többen fognak vele foglalkozni. Pl. ha van egy program részleted és kíváncsi vagy arra hogy jó-e, akkor ne a hozzászólásba tedd be, mert a tabulátorok, egyebek gondot okozhatnak. Ellenben ha fájlmellékként teszed be, simán letölthető, nem kell másolgatni, ami fontos! megőrzi az eredeti formátumát.
Hidd el ezeken nagyon sok múlik! Elég egy rossz helyen lévő vagy hiányzó zárójel, a sor elején a tab vagy space hiánya, még sorolni lehetne. Egyébként a letölthető fájlmelléklet sokkal több információt ad, mintha a böngészőben kéne scrollozni! Elnézést az off-ért!
Az MPLAB-ot használom az elsődleges szimulációhoz, a Proteust csak az áramkör, és a program együttes működése, és egyes forráskódban elkövetett hibák (fölösleges lépések) miatt használom. (Meg persze jobb ha nem a PIC megy tönkre) Ha kész lesz a program lehet, hogy felteszem ide, hátha másnak is kell valami hasonló.
Mégegyszer köszi szépen!
[OFF] Köszönöm , igazad van ! Akkor ezen változtatok ! A képekkel meg remélem minél előbb tudok dicsekedni majd !
Csatlakozom dinokal-hoz, és még annyit tennék hozzá, hogy a sprintlayout 5 tud exportálni jpg-be, és nem kell fotóznod a kész panelt. Gondolom, erre gondolt, amikor azt írta, hogy a lay mellé tehetnél képet.
Aha, értem. A fotot meg úgy értettem, hogy lefotózom, a kimaratott , ónozott panelt, ami a kezem műve..
Idézet: „Van egy rs485-öm” Mid van? Idézet: „aminek sajnos 12mbps a sebessége.” Ez egy szeköz, amiből ilyen sebességgel jön ki az adat? Biztos, hogy RS485? Idézet: „Ezt kellene "levennem".” Mit akarsz? Ha lassítani, akkor ahhoz akkor a puffer kell, mint amekkorát a be és a kimeneti sebességből adódó adatfeltorlódás ad az átviteli idő alatt. A sebességből következően, itt hatalmas adatmennyiségek vannak. Erre a PIC nem alkalmas. Folyamatos átvitel esetén pedig nem lehet csökkenteni az átviteli sebességet.
Minden pic kontroller járatható elegendően kis frekvenciás órajellel, amiven a 12mbps (12 mili bit pro sec) teljesíthető... A 12Mbps már sok a pic kontrollereknek...
Sziasztok.
Van egy óraprogramom, ami mátrixban elhelyezett ledeken jelzi az órákat. Mivel 12 órát jelzek ki, 2 portot használok a kapcsolásra, az egyik az órákat kapcsolja, a másik pedig a két sorban elhelyezett ledek sorait kapcsolja. A program szépen működik. 12-nél kezdem, ami a második sorban van (1. bit kapcsolja) Aztán átváltom az első sorra, és onnan újra kezdi 1-8 ig. A cifrázás az a dologban, hogy a másodperceket az aktuális óra ki-bekapcsolásával jelzem. Ez a program fot az előtérben, és az órjel pedig megszakításból. A főproram figyeli, hogy történt-e változás a másodpercben...órában...stb. Ha igen, akkor lépteti a megfelelő bitet, ha nem akkor csak kijelzi az aktuális állapotot multiplex üzemben. Az oszcillátor úgy van beállítva, hogy 4 ms-onként generál megszakítást. Az a gondom, hogy amikor átvált az 1 sorra, akkor a multiplex miatt egy pillanatra felvillan az 1. órát jelző led, és ez elég csúnyán néz ki. Gondolom azért, mert az 1 másodpercen belüli változást nem kezelem le. Hogyan lehetne ezt kiküszöbölni? Mellékelem a program részleteit. Az egészet elég lenne átböngészni, ezért csak a szerepetjátszó részeket teszem ide. |
Bejelentkezés
Hirdetés |