Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Megjegyzem nem ismerem sem a grafikus kijelzot sem a Mikrobasicet, de felmerult bennem valami:
1024 byte-ot var a GLCD_image fuggveny, tehat az 1024x8/64 = 128 --> magyaran epp egy teljes kepernyonyi adatot var megjelenitesre? Tehat ha kiraksz egy kepet akkor felul fogja irni a teljes kepernyo tartalmat az en logikam szerint, amibol az kovetkezik, hogy mielott kirakod a kepet neked kell elo allitanod a PIC memoriajaban majd azt kitenni. Nem kell mindig kiolvasgatni a kijelzobol, csak tarts egy shadow kepernyo memoriat fent.
A leírás szerint működnie kell a kiolvasásnak, de előtte beállítandó az oldal, az X koordináta és a lap (Glcd_Set_Side, Glcd_Set_X függvényekkel).
Bővebben: Link
Ez jó gondolat, csak azért 1KB shadow memóriát fenntartani külső harver (pl: 24fc eeprom) nélkül elég nehéz
Működnie kell ennek a read-modify-write eljárásnak , amúgy nem kell 1KB adatot egyszerre kezelni, a kijelző hajlamos byteonként is adatot megjeleníteni, és természetesen byteonként is ki lehet olvasni a képernyő tartalmat.
Köszönöm az utána járást a dolognak, és a linket is.
A Mikrobasic helpje is ugyanezt tartalmazza, és megsem jó a dolog. Mellékeltem screenshotot a programról,amelyen látható, hogy egy szöveg kiiratása után (page 0-ra) egy ciklusban byteról bytera szeretném lemásolni page 4-re, úgy hogy a szöveg közepén egy egyenes vonal legyen. A végeredmény az,hogy csak az egyenes vonal jelenik meg, tehát az érkező adatok értéke rendre 0x00. Már kínomban az adatportot is manuálisan beállítottam bemenetre a beolvasás előtt, majd újra kimenetre kiirás előtt, de ez sem segített.
Igen, én is gondoltam már rá, hogy lehet, hogy a mikrobasic fordítója a ludas, ezért alaposan átrágtam a mikroe.com oldalon a support fórumot, hátha már más is járt így,és jelezték a gyártó (mikroe) felé a dolgot, de ilyen hibát még senki nem írt le... Ezért is gondoltam, hogy itt is megkérdezem, hátha már valaki járt így.
Olvasva a többi válaszodat is, nem lehet, hogy valami belerondít az átmeneti memóriaterületre, amin a kiírás előtti műveleteket végzi a Basic rutin?
Egyébként ide egy olyan PIC kéne, aminek legalább 2K SRAM-ja van. Abból 1k-t lefoglalnék a célra, a maradék elég lenne bármire... Idézet: Meg kell nézni a (de)generált kódot (hogy mire fordult a programod)! Feltételezem, hogy a TRIS biteket a függvényhívás váltja automatikusan. „Igen, én is gondoltam már rá, hogy lehet, hogy a mikrobasic fordítója a ludas” Másrészt annak is nézz utána, hogy az adat kiküldésére/beolvasásra használt porton nem felejtettél-e bekapcsolva analóg funkciót az inicializálásnál? Mert akkor a függvény hiába váltja az adatáramlás irányát, nullát fog olvasni a legnagyobb jóindulattal is...
Én 3.3V-hoz PIC-ek mellé a Microchip MCP1702-3300 stabilizátorát használom. Ezt arra találták ki, hogy telepes táplálású cuccokban a digitális rész tápellátását stabilizálja az ember, a saját nyugalmi árama tipikusan 2uA! Ráadásul low-drop típus, a 3.3V-oson 250mA terhelésnél 525mV a minimális feszültségtöbblet-igénye.
Ebben az esetben sajnos tényleg nincs más megoldás, mint visszaolvasni a szükséges byte-okat, és elvégezni a logikai műveletet.
Ehhez ugye kell tudnod olvasni az LCD-t. Én első körben, mint ahogy előttem írták, a címet állítanám be, majd beállítanám a TRIS biteket. Aztán rápróbáznék, egyelőre csak annyival, hogy negálnám a beolvasott biteket, újra cím állítás (mivel írás/olvasás szépen rááll mindig a következő címre), és visszaírnám. Ha ez megy, lehet továbblépni.
Ha a feszültségesés kritikus (telepes táplálás), akkor az MCP1700 még jobb (178 mV dropout). Arra viszont ügyelni kell, hogy ennél az IC-nél kisebb (max 6 V) a megengedett bemeneti feszültség. De arra nekem pont elég, hogy az USB 5 V-jából 3,3 V-ot csináljon...
Kedves Icserny !
Nagyon-nagyon köszönöm a gondolatébresztést !!! Teljesen igazad volt! Az adatport amit használtam Analógra volt állítva! A portD volt a kijelölt erre célra, és azért felejtettem ki az analóg funkció lekapcsolását, mert még nem vagyok felkészülve olyan kontrollerekre, ahol az összes port használható analógnak. Főként 16F87x sorozattal foglalkoztam, ha 28-40 lábú IC-re volt szükség, a 16F727 nekem teljesen új, csak most rendeltem egy mintadarabot belőle, és így fel sem tételeztem, hogy a PORTD is lehet analóg! Mégegyszer nagyon köszönöm a segítséget Neked, és mindenkinek aki vette a fáradtságot a problémámon elgondolkodni!
Elnézést, hogy ide írok, biztos hogy máshol már megvitatták csak nem tudom hol. Az a bajom, hogy a pickit2 felismeri a picet, de ha programozni akarom akkor kiírja, hogy "Programming failed at EE Data adress 0x0000". Kiolvasni is lehet. Létezhet, hogy valamit elrontott a programozó és amiatt nem lehet felprogramozni? Köszönöm. üdv!
Szia!
- Olvasd ki a pic-et. Nem jelent meg a konfigurációs biteknél egy piros "Data Protect" vagy "All Protect" szöveg. Ha a pic tartalma nem érdekes, vagy megvan: Töröld a tartalmát "Erase". Lépj ki a programból és lépj vissza. Olvasd ki a tartalmát (Read). Ekkor a piros felirat már nem lesz ott... -Mérd végig a PICKit2 kezelő programjának Tools / Toubleshoot menüpontjában levő össze mérést...
Hali! Nem jelent meg olyan szöveg, végig méregettem a pickit-et és mindenhol megvolt a szükséges fesz, ráadásul másik picet tudok programozni vele. A törlős, kilépős módszer pedig sajnos nem vált be Attól tartok ez a pic eltávozott az örök szilícium mezőkre... Csak sajnálom mert drága volt ahhoz hogy tönkre menjen mert még nem is volt igazán használva... Azért köszönöm. üdv.
Sziasztok!
Megépítettem a mellékelt kapcsolást. Rákötöttem gépre és IC Prog-gal próbáltam, beállítottam ez alapján de nem működik. Méghozzá ezt az üzenetet kapom:Verify Error at 0000H . Viszont az elején is kiír valami Oszcillátoros kérdést. Mindedj hogy Igen-t vagy Nemet nyomok mindig ezt a hibát irja ki. Kérem hogy akinek van valami ötlete az írjon! Előre is köszi!
Szia!
Még mindig a forrasztásokkal küzködsz ?.?. Nézd át a panelt: - Van-e 100nF kerámia kondenzátor az U3 7. és 14. lába között... Ne kapcsold rá a PC-re, ne legyen PIC sem hozzá csatlakoztatva, de legyen tápja. [74(LS)07 esetén] Mérd meg a következőket: U1 1. lábán a feszültséget a földhöz képest : minimum +16.5 - 17V -nak kell lennie, U1 3. lábán és U2 1. lábán a feszültség a földhöz képest: +13.2V közelében. U2 3. valamint U3 14. lábán a feszültség a földhöz képest: +5.0V közelében. U2 7. lábát az U2 3. lábához képest : -5.0 V, J2 3. lábát az U2 3. lábához képest : -5.0 V, Vizsgáld meg: R10 - hez kapcsolódó led nem világít. Ha a printer csatlakozó 6. vagy 5. lábát a földre húzod, az R10 - hez kapcsolódó lednek világítani kell. Mérd meg a Q1 kollektorán és a J2 5. pontján ekkor a feszültséget: kb.13V. Ha a földre húzást megszünteted, akkor a lednek ki kell aludia. Hasondóan: R9 - hez kapcsolódó led nem világít. Ha a printer csatlakozó 4. lábát a földre húzod, az R9 - hez kapcsolódó lednek világítani kell. Mérd meg a Q2 kollektorán és a J2 4. pontján ekkor a feszültséget: kb. 4.8-5.0V. Ha a földre húzást megszünteted, akkor a lednek ki kell aludia. Legyen továbra is földre húzva a printer csatlakozó 4. pontja: Az U3 8. lábán és a J2 1. lábán ekkor +5.0V mérhető. Ha a printer csatlakozó 3. lábát földre húzod, akkor az U3 8. lábán és a J2 1. lábán 0 - 0.5V körüli feszültséget kell mérned. Az U3 10., 13., 12. lábán és a J2 2. lábán ekkor +5.0V mérhető. Ha a printer csatlakozó 2. lábát földre húzod, akkor a z U3 10., 13., 12. lábán és a J2 2. lábán 0 - 0.5V körüli feszültséget kell mérned. Ne legyen a printer csatlakozó 2. földre húzva. A J2 2. lábát húzd földre, ekkor az U3 10., 13., 12. lábán 0 - 0.5V körüli feszültséget kell mérned. A J2 csatlakozó számozása eltér (a fordítottja, ha az AUX -ot nem nézem) a PICKit2 ICSP csatlakozójának kiosztásától. Ezt vedd figyelembe, ha a PICKit2-höz készült programozó kártyát használsz vagy olyan panelen programozol, amit a PICKit2 -höz terveztek.
Szia!
- Nem írtad, milyen pic volt.... - Vannak olyan pic-ek, amikben belső stabilizátor van, amit a programozáskor is be kell kötni. Ld. a programozási leírásukat. - Vannal olyan pic-ek is, melyek kétféle módon is programozhatók HVP illetve LVP módon. A konfigurációs bitekkel az LVP mód tiltható. A HVP ilyenkor megoldás lehet. - HVP programozást megzavarhatja a PGM lábon megjelenő szintváltás. - Ha belső oszcillátoros konfigurációt programoztál be - vagy az a default - és a PGC és PGD -nek megfelelő portokat kimenetnek (T1 oszcillátornak, stb ) állítod be a program legelején, akkor is sikertelen lehet a programozás. A Vpp First módszer segíthet - ekkor a programozónak kell a tápot adnia a kontrollernek. Elkerülhető a programozási hiba, ha a kimenetté (stb) állítás elé egy kis (néhány ms) várakozást teszel. - ICSP programozásnál a Vdd vagy a Vpp vonalon túl nagy kapacitás, a PGC vagy PGD vonalon túlterhelés vagy túl alacsony kimeneti impedanciájú meghajtó (ha a pic bemenetként kezelte).
Van egy pár TDA 7563B jelű 4X50W-os végfok IC-m.
Egy baj van vele, hogy I2C-buszos engedélyezése van. Ez azt jelenti,hogy bekapcsoláskor leellenőrzi az összes kimenetet nincs- e szakadás, vagy zárlat. Ha nincs engedélyezi a jelet a kimenetre. Kellene egy 8 lábú PIC-be egy kis program ami lefuttatná az ellenőrzést (utána már nincs szerepe) és működne az IC. Adatlapján minden megtalálható amit le kell kérdezni a PIC-nek. Lehetne 2 LED rajta ha OK, vagy nem OK. Várom az ötleteket, tanácsokat, véleményeket.
Hp41C! Jár neked egy hatalmas nagy pirospont Sikerült életre keltenem a picet! Nagyon hálás vagyok neked! Ezért szeretjük a hobbielektronika.hu-t. És ha már ittvagyok kérdeznék valamit. Egy pic16F876-ban szeretnék az eepromba írni adatokat, de ami adatlapban volt példaprogram nekem valamiért nem működött. Címnek milyen számokat kell beírni neki? És adatnak d'255' lehet a max. ugye? köszönöm. üdv!
Szia!
Köszönöm... Azért áruld el, mi okozta a problémát!
Hát nem tudom, hogy eláruljam-e mert elég kezdő hiba... Az történt, hogy másik picnek nem kellett bekötni a PGM-et én meg naívan azt hittem ennél sem kell és amikor megemlítetted, hogy a PGM-el is lehetnek problémák rávilágítottál hogy azt nem is kötöttem be...
Egy PIC12f683-ra íródott assembly kódban találtam ilyet:
Megmagyarázná ezt valaki?
Ha letiltod az LVP bitet, akkor a PGM-et is tudod használni, ill. ha kimenetnek állítod, nem kell bekötni...
Szia!
A "<<" művelet a balra léptetés (1 << CM2 tehét az a szám, amit úgy kapunk, hogy a 1 -et CM2 -ször léptetjük balra). A "|" a logikai vagy művelet jele. Valami el van írva a harmadik tagnál, és javaslom a zárójelek használatát:
Idézet: „Valami el van írva a harmadik tagnál” Ez az amikor két hiba működő eredményt ad 1<< CM0 értéke ugye 1, mert 1-et nullaszor léptetjük. Viszont 1< CM2 értéke is 1, mert 1 valóban kisebb, mint CM2 (CM2 értéke 2, a header fájlban van megadva). Tehát mindkét esetben a logikai vagy művelet jobboldali operandusa 1 lesz. Ha 1<< CM2 vagy 1< CM0 szerepelne, akkor hibás lenne, de a két hibával épp jó eredményt ad.>
Üdv!
Tudom márt volt téma itt a több PIC egy kristályról való üzemeltetése. Viszont most az volna a kérdésem, hogy mégis mennyit lehet egyszerre üzemeltetni? 4-7db-ot bírna-e. A válaszokat köszönöm!
Nem. Én még kettőt sem tennék egy kristályra. Ilyenkor inkább közös oszcit kell használni és megfelelően elosztani.
Szia!
A műveletre koncentráltam, nem is figyeltem az operandusokra. A komparátort kikapcsolni a következő sorral lehetne :
Üdv.
Az lenne a problémám, hogy megvan a kapcsolásom. Nem bonyolult. Egy PIC12F675 és egy 4017-es IC. A PIC-en van egy nyomógomb amit ha megnyomod ad egy jelet a 4017-re és léptet egyet. A kapcsolást egy 7805-ös feszültség stabilizátor IC hajtaná, de a rákötött 16V-os 1A-es egyenirányított trafó után, ha rámérek a 7805 common és out lábaira csak 4.6V jön ki. Másik trafóval csak 4.0 volt, emiatt a PIC el se indult. Ez a 4.6V pedig a továbbiakban nem jó, mert később a PIC ADC konverterét is használni akarom és ahhoz 5V referencia kellene. Mit kellene tennem? Ha egy nagy kondenzátort teszek elé az megoldja a gondot? Mi lenne a megoldás? Köszi. |
Bejelentkezés
Hirdetés |