Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   796 / 1319
(#) vicsys válasza Attila86 hozzászólására (») Szept 4, 2010 /
 
(#) trudnai válasza robotech hozzászólására (») Szept 4, 2010 /
 
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.
(#) icserny válasza robotech hozzászólására (») Szept 4, 2010 /
 
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
(#) robotech válasza trudnai hozzászólására (») Szept 4, 2010 /
 
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.
(#) robotech válasza icserny hozzászólására (») Szept 4, 2010 /
 
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.

glcd_hiba.JPG
    
(#) robotech válasza watt hozzászólására (») Szept 4, 2010 /
 
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.
(#) watt válasza robotech hozzászólására (») Szept 4, 2010 /
 
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...
(#) icserny válasza robotech hozzászólására (») Szept 4, 2010 /
 
Idézet:
„Igen, én is gondoltam már rá, hogy lehet, hogy a mikrobasic fordítója a ludas”
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.

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...
(#) szilva válasza Attila86 hozzászólására (») Szept 4, 2010 /
 
É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.
(#) pixels válasza robotech hozzászólására (») Szept 4, 2010 /
 
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.
(#) icserny válasza szilva hozzászólására (») Szept 4, 2010 /
 
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...
(#) robotech válasza icserny hozzászólására (») Szept 4, 2010 /
 
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!
(#) peti13 hozzászólása Szept 4, 2010 /
 
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!
(#) Hp41C válasza peti13 hozzászólására (») Szept 4, 2010 / 1
 
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...
(#) peti13 hozzászólása Szept 4, 2010 /
 
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.
(#) danci1995 hozzászólása Szept 5, 2010 /
 
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!

rajz.gif
    
(#) Hp41C válasza danci1995 hozzászólására (») Szept 5, 2010 / 1
 
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.
(#) Hp41C válasza peti13 hozzászólására (») Szept 5, 2010 / 2
 
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).
(#) Unfi hozzászólása Szept 7, 2010 /
 
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.

4_50W_I2.pdf
    
(#) peti13 válasza Hp41C hozzászólására (») Szept 7, 2010 /
 
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!
(#) Hp41C válasza peti13 hozzászólására (») Szept 7, 2010 /
 
Szia!

Köszönöm... Azért áruld el, mi okozta a problémát!
(#) peti13 válasza Hp41C hozzászólására (») Szept 7, 2010 /
 
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...
(#) Lozsa hozzászólása Szept 7, 2010 /
 
Egy PIC12f683-ra íródott assembly kódban találtam ilyet:
  1. movlw   (1<<CM2 | 1<<CM1 | 1<CM2)       ; turn of comparator


Megmagyarázná ezt valaki?
(#) watt válasza peti13 hozzászólására (») Szept 7, 2010 /
 
Ha letiltod az LVP bitet, akkor a PGM-et is tudod használni, ill. ha kimenetnek állítod, nem kell bekötni...
(#) Hp41C válasza Lozsa hozzászólására (») Szept 7, 2010 /
 
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:
  1. movlw  (1 << CM2) | (1 << CM1) | (1 << CM2)
(#) potyo válasza Hp41C hozzászólására (») Szept 7, 2010 /
 
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.>
(#) mammut hozzászólása Szept 7, 2010 /
 
Ü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!
(#) watt válasza mammut hozzászólására (») Szept 7, 2010 /
 
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.
(#) Hp41C válasza potyo hozzászólására (») Szept 7, 2010 /
 
Szia!

A műveletre koncentráltam, nem is figyeltem az operandusokra. A komparátort kikapcsolni a következő sorral lehetne :
  1. movlw  (1 << CM2) | (1 << CM1) | (1 << CM0)

(#) dolfin hozzászólása Szept 8, 2010 /
 
Ü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.
Következő: »»   796 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem