- HAVE_DOT = YES
- CALL_GRAPH = YES
- CALLER_GRAPH = YES
Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Sziasztok!
Kezdőként kérnék segítséget. Nem tudom helyes működésre bírni az LCD kijelzőmet busy-bit lekérdezéses módszerrel, márpedig én ilyen működést követelnék tőle, de hiába. (Egyszerű időzítéssel működik, de az nem érdekel, most már csak azért sem.) Elsőre összekötöttem a 16f887-esemet a 44780-kompatibilis 4x20-as kijelzővel,megírtam a programot assemby-ben (feltételes ciklus, amíg busy (7. bit) 1, addig újra lekérdezés,). Működött, de úgy mint ha egy ember gépelte volna a szöveget. Miután hozzáértem a kijelző forrpontjai egy részéhez, nagy hajrába kezdett. Erre reagálva, (kínomba) a kijelző adat és vezérlő bitjeit először 4,7 k ellenállásokkal az LCD oldalán, a Vss-re raktam, mire megfelelő (láthatatlan) sebességgel, de a betűket és mindent összekeverve, kihagyva... működött. Később, miután rámértem az LCD felőli jelek alakjára, láttam, hogy lassan hullanak 1-ről 0-ra. Hogy jobban nézzenek ki lecseréltem az ellenállásokat 0,5-ösökre, jobban is néznek ki de, így is hülyeséget ír ki. Csak rengeteg NOP-al tudom jobb belátásra bírni, de a lekérdezés miatt, nem kellene késleltetéshez nyúlni. Ismétlem, kezdő vagyok és csak MPLAB assemblY-ében tudok. (elektronikai ismereteim is hiányosak) Ha esetleg segítenétek, előre is köszi.
Szerintem felfele kellene huzni inkabb es ha van belso felhuzo ellenallas akkor inkabb azt hasznaldd. Ha nincs 20k-val probalkozz, a 4.7k lehet tul eros felhuzas lenne.
Köszi, hogy foglalkozol a problémával! A 4,7 k-nál lassan ment nullára a jel, 0,5-nél szemlátomást (sokkal) szebb lett.
Ha meg +ra helyezem az ellenállásokat, akkor nem küld "kész vagyok"-ot. De amúgy aggódom, mert lehet hogy ezek nem is kellenének. Nem lehet, hogy a szalagkábel a ludas (számítógépből kivett, kb. 15-cm)?
Mar talalkoztam jopar olyan kijelzovel, amiben NEM VOLT busy bit egyaltalan, habar hd44xxx-kompatibilisnek hirdettek. Ha le akartam kerdezni, akkor ott vegtelen ciklusba zuhant...
Siman hasznald idozitovel, nekem eddig igy mindegyik mukodott.
Rendben lehet, hogy az időzített vezérlést választom, de engem akkor is izgat a kérdés, hogy ezen ellenállások nélkül miért működik ilyen nevetségesen lassan, mikor a portd határozottan vezérel.(a 0 az 0,az 1 az1)
Ez nem bemenet, nem kellene felhúzóellenállás. Ezek nélkül, pedig egy gyors és gépírónő simán lehagyná. Összevissza ütemben írja ki a szöveget, de legalább helyesen (karakter és karaktercÍm szempontjából). Ezekkel pedig begyorsul, de fix-en hülyeséget ír ki. (legalább fix, tehát biztos, hogy jelek összefolyásáról lehet szó, vagy nem? DE mivel néhány (jónéhány) NOP-al már jó, de akkor mi a francnak a lekérdezés?És ráadásul a belső órajel csak kb. 1 Mhz)) No hát akkor legyen mondjuk 1600 mikrosec-es időzítés, az elég mindennek, vagy legyen tán 2 ms?
Mit szolnal egy masik gyarto masik kijelzojehez?
Akkor rogton kiderulne, hogy ki a hunyo. Szerintem a gyartok kihagytak ezt a feature-t a kijelzokbol, mert ha belegondolsz, a lekerdezes sebessege osszevetheto a sima kiiras (idozites nelkuli) sebessegevel, max egy NOP-ot odadob az ember. (4 MHz-s pic eseten)
Hát ez az, hogy az én estemben is a lekérdezés az elküldött karakter után azonnal megtörténik várva a történést, mégis úgy fest, hogy a lekérdezés használata ellenére
is jó néhány NOP-ot használnom kell a megfelelő működés érdekében, de hát akkor inkább mehet a sutba a b..i busy bit. Köszi!
Sziasztok!
Tudtok ajánlani valami értelmes programot c18 kódból való call graph kinyerésre? (pl. html formátumban) Doxygen-nel próbálkoztam, de ő mintha csak c++ kódból tudná kinyerni ezeket... Köszi előre is! Üdv, Péter
A Doxygen C-ből is kinyeri (lásd melléklet), bár én nem szoktam használni.
Most kipróbáltam: ilyen beállításokat aktiváltam benne Természetesen kell hozzá a DOT segédprogram (GraphWizard csomag). U.I.: annyi "csalás" van benne, hogy én C30-hoz használom, nem C18-hoz, de remélem, ez nem okoz lényegi eltérést.
Ha a Pickit-et debuggerként használva programoztad fel a PIC-et akkor nem is fog működni a Pickit nélkül. Programmer menüben Pickit2-t kiválasztva programozd fel a PIC-et.
Hello mindenki!
Szerintetek mennyi annak az esélye, hogy kinyírtam a PIC16F877A-mat? :S Mert nagyon úgy néz ki, hogy sikerült. :S Eddig gond nélkül tudtam programozni, JDM programozóval de most egyszerűen nem reagál semmire. Többször leteszteltem a feszültségeket és az egyes vonalakat. Az adat és óra jel vonal működik, az MCLR-ről 12,27 V-ot mértem a VDD-n pedig 4,51 V-ot. A táp nem tudom, hogy mennyire sikerült szűrtre de eddig tökéletesen ment, már majdnem egy hónapja! Nincs valami módszer amivel biztosra meg lehet mondani, hogy a PIC megsült e? Volt még egy billentyűzet is a PIC-re kötve ami színtén úgy néz ki, hogy megsült. De nem tudom, hogy hogyan lehetséges mert nem kapott túláramot amennyire tudom. Ráadásul ugyan erre az áramkörre volt kötve egy LED és egy LCD is ami pedig még szerencsére működik! Köszi a válaszokat előre is! Bye!
Hát szerintem ne JDM programozót használj! Ezek nem valami megbízhatóak.
Próbáld ki inkább ezt: Bővebben: Link Én is ezt használom. Ha ezzel sem működik, akkor tényleg elromolhatott a pic, de hogy hogyan azt tőlem ne kérdezd üdv: mate_x
Köszi, de közbe rájöttem, hogy hülyeséget mondtam. :S
Bocsi. Ezt használom: picproghard.png http://oshonsoft.com/picprog Mondjuk nem tudom, hogy ez segít e valamit. :S
Sziasztok,
A tegnapi .asm to .hex kérdésemmel kapcsolatban írok ismét. Sikerült átkonvertálni, viszont mikor az IC-be akarom írni, leáll az alábbi hibaüzenettel. Nem tudom van-e köze ahhoz, hogy pickit2-ben csak 12f509-et találtam, de én 12c509A-ra szeretném rátölteni. Tud valaki tanácsot adni, hogy merre induljak el? Kösz! Üdv, Szabi
Ha jol tudom az mindegy -- bar bevallom most nem nezegettem a programming specifikaciot. Viszont azt tudnod kell, hogy a "C" az egyetlen egyszer irhato es nem torolheto, mig az "F" a Flash-es ami tobbszor. Tehat ha egyszer probalkozol es nem sikerul akkor kuka es johet a kovetkezo chip probalkozni -- ezt a C-s valtozatot nem prototipusra vagy fejlesztesre talaltak ki, hanem gyartasra...
Nekem akkor dobott ilyen üzit, amikor nem volt bekötve a 2 pozitív(egyszer majd megtanulom, melyik a vdd, meg vcc, vss) lábból az egyik, meg az MCLR láb nem volt felhúzva. Persze ezen az IC-n lehet csak 1 van...
Mellesleg köszönet mindenkinek a segítségért, tegnap elindult a DS1307. A pic-re megírtam a gombokhoz szükséges ciklusokat, és jók lettek. Csináltam egy DS1307 reset gombot, ami a mp-et nullázza le, és mindig beírja a 0-t a ch bitre. Így mindegy, hogy volt gombelem, vagy nem, a progi elején nem kell beírni mindig egy időt. Ha ch bit 1, akkor villognak 0-k, majd reset gombra mp nullázódik, és indul. Pont, mint a sima ébresztősórák. Belső óráról 8Mhz-en i2c-s írás-olvasással, meg gombkezeléssel ~300-szor fut le egy mp alatt. Az nekem elég. Mp-t nem írok ki, egyszerre pedig 2 számot küldök ki, tehát 150 "villanás" jut külön-külön az órára és a percre.
Esetleg a DEBUG bit a configban ha engedélyezve maradt, akkor nem fog önállóan működni. Fordíts egy "release" hex-et az önálló, PICkit2 nélküli működéshez!
Az EN szélességére vonatkozó előírásokat akkor is be kell tartanod, ha a busy bitet használod. Nekem nem világos, hova kellett NOP-okat tenned, de vannak helyek az LCD kezelésében, ahol muszáj időzítésekkel kivárni a megfelelő időt, mert nem használható a busy bit. Ilyen pl. az inicializálás menete, ez benne is van a HD44780 doksijában. Azt sem írtad, ha jól emlékszem, hogy 4 vagy 8 bites módban használnád-e a kijelzőt.
Az elmúlt majdnem 3 hétben én egy kicsit nagyobb "hardvert" építettem A PIC-esítése még csak most kezdődik majd.
Bővebben: Link
Így tényleg elindult a PIC önállóan Köszi szépen És a többienek is az 5leteket, nem volt haszontalan.
Szép munka, a Ki mit épített topikban is nagy sikere volna! Az I/O portja egy kicsit magas szinten van. Egy szint-konverter még kellene a bemenetre.
[off]Hogyan oldottad meg a szintillesztest?
1-2 méter kábellel összekötött pic-ek között hogyan lehetne kommunikálni? I2C ott már felejtős, nem?
Már nem tudom módosítani...
Lenne 1 vezérpic, meg 4-5, ami fogadja a jeleket. I2C-t használtam csak eddig.
Ok, köszi.
RS485 olcsóbb. Gondolom olyan nincs, amihez nem kell plusz IC kívülre(mint pl I2C-nél). Több helyen csak a lehetőséget hagynám meg a rácsatlakozásra, és úgy egyszerűbb lenne. De ok, elfér még ott egy smd ic...
Hello mindenki!
Tegnapi, valószínűleg kiégett PIC-es kérdésemmel kapcsolatban írnék ismét. Nem tudja valaki, hogy hogyan lehetne megállapítani 100%-ra, hogy a PIC a rossz és nem a programozó? Vagy az szerintetek lehetséges, hogy ha mondjuk véletlenül 12V ment két lábra (a PORTD-sek közül) akkor megölje az egész PIC-et? Meg még az szeretném megkérdezi, hogy nem tudjátok, hogy az miért van, hogy színte az összes PORTB-s lábon jön ki feszültség egyfolytában? Meg ha gyorsan ki és be kapcsolom az áramot akkor az RC0-n lévő LED világít egyébként meg nem. Bocsi a sok kérdésért. :S Köszi a válaszokat előre is! Bye!
Szerintem a PIC-ek nehezen halnak meg, szivos joszagok azok De persze nincs kizarva.
Miert nem programozod LVP modban? Annyira kell az a plusz lab egy ilyen szazlabu IC-nel? De a port vagy a portbit siman elszallhatott. Masik programozot kell ugyis csinalni vagy venni, szoval probald ki azzal vagy kolcsoncuccal (illetoleg ilyen elozmenyek utan inkabb vidd el valaki hozzaertobbhoz). A portb-s labon lehet belso felhuzo vagy lehet akar sima bemenet is, a configbitektol fuggoen. Nezd meg az adatlapban a default-ot. Terheld le picit mondjuk 1.2K-val foldre, mit csinal? Ha tartja, akkor kimenet, ha meg leesik erosen, akkor meg bemenet. A LED-et nem tudom, 'belefagyhatott' valami progi. Vagy az elobb emlitett configbit hatasa. Idézet: „Nem tudja valaki, hogy hogyan lehetne megállapítani 100%-ra, hogy a PIC a rossz és nem a programozó?” Fogsz egy "etalon" PIC programozot es megprobalod vele a teljes torlest majd ujra programozast -- ha nem sikerul akkor nagy valoszinuseggel a PIC a ludas (feltetelezve hogy nem aramkorben programozod ahol nyilvan mas aramkori elemek mint a PIC is kozre jatszhatnak...) Ha felprogramozni mar lehet akkor kulonbozo teszt firmware-eket erdemes irkalni amikkel ki lehet probalni a portokat / modulokat... Idézet: „Vagy az szerintetek lehetséges, hogy ha mondjuk véletlenül 12V ment két lábra (a PORTD-sek közül) akkor megölje az egész PIC-et?” Minden lehetseges -- a port clamp diodain keresztul atjut a fesz a Vdd-re! Idézet: „Meg még az szeretném megkérdezi, hogy nem tudjátok, hogy az miért van, hogy színte az összes PORTB-s lábon jön ki feszültség egyfolytában?” Ez sokmindentol lehet, pl hogy olyan firmware van benne ami az oeeszes port labat kimenetre kapcsolja es magas allpotba teszi, vagy bemenet belso felhuzo ellenallasokkal... Idézet: „Meg ha gyorsan ki és be kapcsolom az áramot akkor az RC0-n lévő LED világít egyébként meg nem.” Nem ismerem a firmware-t es a kapcsolast amit hasznalsz, igy nehez lenne megmondani... Mondjuk lehet akar firmware hiba is, mint pl a WDT nincs bekapcsolva, vagy BOR rosszul van beallitva, vagy szoftveresen nincs jol megirva a firmware stb stb stb
Hello!
Nagyon köszönöm a válaszokat bbalazs_ és trudnai! Tudnál nekem ajánlani egy "etalon" programozót? Nem sokra haladtam sajnos. Szerintem a programozóm nem akar rendesen működni csak azt nem tudom, hogy mi lehet a baja. Bye! |
Bejelentkezés
Hirdetés |