Fórum témák
» Több friss téma |
Idézet: „Szeretnék egy próbapanelt építeni PicKit2-höz, lenne rajta karakteres LCD, GLCD, nyomógombok, LED-ek, stb.” Nézz körül a kereskedelemben kapható panelok között, s azok alapján döntsd el, hogy mi tetszik belőlük! Waveshare Electronics Mikroelektronika Olimex 100MHz.com - Túl bonyolult kártyával nehéz dolgozni, túl sok idő megy el a "mi hol van" silabizálásával. - Olyan grafikus kártyát nem érdemes a PIC-re kötni, amelyikhez nincs elég RAM egy kép összeállítására. - Érdemes az USB kapcsolat lehetőségére gondolni (pl. PIC18F4550), akkor is, ha a kezdéshez nincs tervbevéve. - Kezdésre/nyúzásra érdemesebb cserélhető kivitelben (DIP 40 tokozás) gondolkodni, ha csak nem vagy profi a felületszerelt IC-k cseréjében.
Hát igen, a csak az nem elég. Assembly is kell, és nem árt azzal kezdeni. Viszont kelleni kell a c, főleg ha MC-s könyvtárat használsz valamihez. Azok meg XC8-ban vanak 8 bitesre, na az aztán tud kódot generálni ingyenes verzióban. 120k+fa meg nem kevés a regisztrációért.
A hozzászólás módosítva: Szept 16, 2014
60 napig az ingyenes is optimalizás. Az XCLM lecserélhető...
Sziasztok!
Hogy működik az MCLR? Folyamatosan 5V-ot ad ki? Csak annyit tudok, hogy az ICSP1-es lábára van kötve.Mi van ha a PIC egy portjának egyik lábára közvetlen rákötöm, akkor rövidzárat csinálhatok?
1. Némely típusoknál letiltható a MCLR funkció és digitális bemenetnek használható. Ha alacsony feszültségű programozást is használnak, akkor csak MCLR funkciójú lehet.
2. Felhúzó ellenállással a Vdd lábra. A legjobb megoldás. 3. Egy másik bemenettel kötöd össze és a MCLR funkció engedélyezett, akkor míg a bemenet magas szinten van, fut a program, amikor alacsony szintre vált, jön a reset. 4. Egy kimeneti lábbal kötöd össze, míg a kimenet magasszinten van, fut a program, amikor alacsony szintre vált, jön a reset. De erre van reset utasítás is.... A kontroller MCLR lába nem lehet kimenet. Az utóbbival küzdőttem jó pár órát, pedig az összekötés nem volt szándékos.... A hozzászólás módosítva: Szept 16, 2014
Köszi, azt találtam ki, hogy a gyárilag összekötött MCLR(ICSP1)-t,a PIC RA3 lábával és az LCD csatlakozóját elvágom, és átkötöm egy másik lábra, mondjuk az RC6-ra.
Ha az ICSP csatlakozó MCLR vezetékét elvágod a PIC MCLR lábától akkor azt a PIC-et többet nem tudot programozni, csak ha kiveszed és másképp programozod...
Az ICSP1(MCLR)-et hagyd rajta a PIC lábán, viszont az LCD-től jövő vezetéket kösd máshová!
Sziasztok!
Segítségre lenne szükségem, kérem aki tud segítsen! Pár éve hozzájutottam bontott Sagem GSM terminálokhoz (GSM- ből csinált vonalas telefont és internetet) kipróbálásukkor jöttem rá, hogy a készülékekben „auto pin” funkció van ezért nem lehet őket használni csak az „eredeti” SIM kártyával. Későbbiekben a bolhapiacon hozzájutottam egy ugyanilyen készülékhez de abban nincs bekapcsolva az „auto PIN” funkció ezért az hibátlanul működik. Akkoriban egy elektromérnök barátom ígérte, hogy megoldja a problémámat úgy, hogy a működő készülék epromját (azt hiszem epromot mondott de én ebben már nem vagyok teljesen biztos) kiforrasztja a készülékből, egy olvasóval kiolvassa a tartalmát majd a kinyert adatokat beírja a nem működő készülékek epromjába ezzel azok is működőképesek lesznek. De a kivitelezésig már nem jutottunk mert közben tragédia történt és a barátom elhunyt. Azóta a terminálok is a műhelyemben porosodtak…. Viszont nemrég lakásriasztót szereltem a lakásomba és most a távfelügyelethez szükségem lenne egy ilyen működő terminálra így azok ismét előkerültek a műhelyből. Most arra gondoltam megpróbálom itt a fórumon, hátha tud valaki segíteni abban, hogy ismét használhatók legyenek. Vagy az „auto pin” funkciót kellene kikapcsolni (ha jól tudom valamilyen kód kellene hozzá) vagy a barátom által javasolt eprom égetést kellene kivitelezni. Eprom égető és az ehhez szükséges tudás híján én ezt nem tudom kivitelezni ezért nem tanácsra lenne szükségem hanem olyas valakit szeretnék találni a fórumtársak közt aki rendelkezik megfelelő eszközzel és tudással és kivitelezné nekem a dolgot. Természetesen nem ingyen gondoltam, ha valakinek volna kedve kísérletezni egy ilyen terminállal vagy szüksége lenne egy ilyen eszközre (vonalas telefon, fax, internet, riasztó távfelügyelet) akkor a melóért cserébe egyet nekiadnék.
Igen, értem, hogy kell a PIC-nek az MCLR.Van egy 14 pólusú csatlakozó a panelen.Azt hittem ezt azért csinálta a gyártó, mert egy LCD-nek pont jó.Azért vágtam el két vezetéket is, mert először az ICSP1(MCLR)-ről annak a csatlakozóknak a 12. lábára kötötték - ami megfelel az LCD DB5-jének -, majd onnan a PIC RA3-as lábára.Hogy ezt miért csinálták? Hogy könnyebben lehessen mérni az MCLR-t? Az a 14 pólusú csatlakozó nem is egy LCD-nek lett kitalálva?A franc sem gondolta volna, hogy 14-ből 13-mat jól kötnek be, egyet viszont nem.Ezzel egy csomó fejtörést okoztak.
Állíts vissza minden összeköttetést, az LCD -t használd 4 bites módban, a azokkal a mostani potbitekkel, amik at LCD DB3 ..DB0 -ra vannak kötve - persze át kell őket kötni az LCD DB7 .. 4 -re. A programban két E pulzussal kell kiadni a kétszer 4 bitet, előbb a felső 4 bitet, aztán az alsó 4 bitet...
Uraim...
Van egy kis problémám. Van egy programmemóriába létrehozott tömböm és ebből szeretnék kiíratni. A következő képen néz ki:
Az i természetesen növekszik. Ha nem a rom-ba teszem hanem simán a memóriába akkor működik, de akkor meg ügye a hely kevés a nagy tömb méret miatt. Azért van szükség erre a tömbre mert szeretnék helyet spórolni... Előtte switch() elágazással csináltam a szöveg kiíratást, de az zabálja a memóriát. Előre is köszi...
Microchip fórum topikjában dawekw7x hozzászólását nézd meg.
Talan tedd at egy valtozoba a kiirando karaktert, es hivd meg azzal a printf-et.
Igen ez járható út lenne csak az a baj, hogy program memóriában nem spórolnék sokat vagy lehet semmit és ez lenne a lényeg..
Hp41C: köszönöm. Mplab és C18-ban nem hozott eredményt...sajnos.
Maga a printf nem egy memoriakimelo fveny. Talan mas megoldassal kellene memoriakimelo kiiratast csinalni.
Jaja ezt sajnos én is észre vettem
Mindegy most maradok switch()-es elágazásnál mert csak kevéssel több mint az if-es szerkezet. (Néhány byte-tal csak..) Majd ha lesz időm tovább molyolok vele, meg persze akkor, amikor nem lesz elengedő a most felszabadított memória terület.. ez utóbbi lehet hamarabb be fog következni.. Ti mit szoktatok használni szövegek tárolására mondjuk a menürendszerekhez kijelzőre kiküldött szövegekre gondolok. A hozzászólás módosítva: Szept 18, 2014
Gooooogle beír: "microchip c18 printf rom string"
Az első találat...
Meg a C18 könyvtár leírásában is benne van: DS51297F-page 150.
Köszi ez segített.
Minden jó volt amit csináltam kivéve ez a szemérmetlen: "%S" Kicsi s-el adtam meg és ezért nem működött. Köszi nálad a pont.
PIC18F2550 5VDC helyett 10VAC-ot kapott. Semmi baja.
Na egy egyszeru string kiiratas:
Na ezt holnap ellenőrzöm.
Ha ez hatékonyabb és kevésbé memória zabáló akkor írom is át az összes kódomat Köszi addig is...
A PICCOLO projektben is találkozhattál már az outString() függvénnyel, ami hasonló célt szolgál, s a stingre mutató pointerrel kell meghívni (lásd a piccolo_usb.c állományban). A meghívott putc() függvény dönti el, hogy hova írjon. Nálam ez az USB CDC kimenet, de más függvényre lecserélve a soros portra vagy az LCD-re is írhatsz vele.
LCD esetén természetesen nincs értelme az "új sor" és a "kocsivissza" karakterek kiírásának, és így elhagyhatók a megjelölt sorok. Idézet: „LCD esetén természetesen nincs értelme az "új sor" és a "kocsivissza" karakterek kiírásának, és így elhagyhatók a megjelölt sorok.” Már hogyne lenne értelme egy többsoros kijelzőnél. A sorok helyett a megfelelő parancskód kiküldését kell megoldani.
A Péter által megvalósítani kívánt menüvezérlésnél föltehetőleg nincsenek többsoros szövegek letárolva (bonyolítaná is a menü adminisztrálását). Egy szöveges terminálként használt többsoros kijelzőnél nyilván más volna a helyzet...
Köszönöm srácok..
Több soros kijelzőt használok így érdekesek a sortörések. Végül kombinálva ezt a kódot használom most és szépen kiváltogatom az összes printf()-et. Már most spóroltam 200bájt-ot.
A hozzászólás módosítva: Szept 19, 2014
Srácok szeretném kiszámolni a 18F4550 periódus idejét. (20MHz kristály)
Ezen elven haladok: 1(/Fosc/4) Csak azt nem tudom, hogy ilyenkor a kristály méretét vagy a PLL miatt a már felszorzott értéket kell néznem. Tehát: 1/(20000000/4) = 2ms vagy 1/(48000000/4) = 83ns És még egy kérdés: Befolyásolhatja a timer0 megszakítás vagy általánosban a megszakítások befolyásolhatják a fő program ciklusidejét? (negatív irányba) ui: ja és a feljebbi kódommal már majd nem 1kb-ot spóroltam A hozzászólás módosítva: Szept 19, 2014
Azzal a frekvenciával kell számolni, amit az adatlap Figure 2-1 ábráján a CPU kimenetre jutatt a beállított konfiguráció.
Akkor esetemben a 48MHz-vel..
Köszi.. |
Bejelentkezés
Hirdetés |