Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   465 / 1320
(#) Hp41C válasza Gabesz_01 hozzászólására (») Ápr 21, 2009 /
 
Szia!

Egy ötlet: A pic18 néhány utasítás végrehajtása után másként kezeli a STATUS regiszter bitjeit (decf, incf, a C bitet is állítja), kétféle shiftelő utasítás van (rrcf, rlcf, rrncf, rlncf, de ezek a Z bitet is állítják).
Szia.
(#) gulasoft válasza icserny hozzászólására (») Ápr 21, 2009 /
 
Igen de ahhoz nincs kapcsolási rajz, meg nyákterv, meg progi, amit meg én találtam az komplett, nyákkal együtt.
Egyébként ha meg többet rendel az ember a posta akkor is csak 15$
A 11 dollár nincs 3000Ft, ennyiért a nyákot nem csinálják meg itthon olyan minőségben mint ami a képen látható.
Ha oxigen furatgalvanizálós eljárása működőképes lesz, akkor a nyákot meg tudom csinálni én is, de az alkatrészek lehet hogy drágábbak összesen mint 3000Ft.
Nem nekem kell, egy ismerős kérdezte, de egyébiránt jó ötlet, és jól lehet tanulni belőle.
(#) icserny válasza gulasoft hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„A 11 dollár nincs 3000Ft,”

Az tényleg nincs, de lentebb az állt, hogy a kit ára 115$. Ez pedig valamivel több, mint 11$.

De mindegy, nem akartalak rábeszélni semmire, csak a lehetőségeket próbáltam vázolni.
(#) denisz válasza El_Pinyo hozzászólására (») Ápr 21, 2009 /
 
Köszönöm, a szoftveres MCLR kikapcsolás megoldotta a gondot, már billeg az összes láb, viszont a PORTA 3-as, 4-es lábán nem olyan jel jön ki, mint a többi láb esetében, sokkal gyengébb(oszcilloszkóppal ellenőrizve). Ezért inkább átkötöttem a kijelzőmet a PORTB-re(ott minden jel jó volt). Egy LCD-t szeretnék működtetni vele, de vmiért nem megy sajna még az inicializálása sem. Körüljártam a témát, de nem tudom mi lehet a baj. mindenhol késleltetek és kétszer ellenőriztem a kapcsolást is. Csatolva a programom, ha vki tudna rá egy pillantást vetni, megköszönném.

denisz

LCD.ASM
    
(#) watt válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„viszont a PORTA 3-as, 4-es lábán nem olyan jel jön ki, mint a többi láb esetében”

Javaslom nézd meg az adatlapban a portok rajzát, minden világos lesz.
(#) denisz válasza watt hozzászólására (») Ápr 21, 2009 /
 
Megmondom őszintén, megnéztem, de nem sokat mond. Nem is lényeges annyira, nélkülözni tudom azokat a lábakat. inkább az zavar, LCD miért nem kapcsol be. Annak az adatlapjából vagyis a HD44780U leírásából csináltam az inicializálást. BC1602a a kijelzőm típusa.

denisz
(#) watt válasza denisz hozzászólására (») Ápr 21, 2009 /
 
A csatolt képen lévő két megoldás nem mond neked semmit? (Bocs, a programodra most nincs időm.)

openD.GIF
    
(#) trudnai válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Miutan az utolso delay hivas utan vissza tersz hova szandekozol vissza terni? Szepen racsorogsz az enterre, ott megprobalkozik a return-nel es mivel nincs semmi sem a stack-en egy alulcsordulassal resetalodik a chip-ed -- vagy ha a stack under/over flow ki van kapcsolva akkor valami isten tudja milyen helyre fog elugrani a firmware...
(#) icserny válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„viszont a PORTA 3-as, 4-es lábán nem olyan jel jön ki”

Nem csoda, ha semmi sem húzza felfelé. Nem nyitott nyelőelektródás véletlenül?
(#) denisz válasza icserny hozzászólására (») Ápr 21, 2009 /
 
Köszönöm a válaszokat, de nem sokat mond se az a kép, se az hogy "nyelőelektróda". Sebtében választott szakdolgozattémámhoz kellene egy 16f628-as picet összekötnöm egy GPS vevővel meg egy kijelzővel. Ilyen irányú előismereteim nincsenek, csak amit most a hetekben szedtem össze, de látom, hogy ez igencsak kevés, már az inicializálás is kifog rajtam.

átírtam a progit, hogy a végén egy p karaktert írjon végtelen ciklusban, de ez sem segített. A kijelzőn maradtak a felső sorban a négyzetek. Azthiszem ez az alapállapota, ha tápot kap.

denisz

LCD.ASM
    
(#) trudnai válasza icserny hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„„viszont a PORTA 3-as, 4-es lábán nem olyan jel jön ki”
Nem csoda, ha semmi sem húzza felfelé. Nem nyitott nyelőelektródás véletlenül?”


Az RA4 igen, de hogy Te miket tudsz, igy meg eletemben nem hallottam az OD kimenetet - nyelo elektroda, szep
(#) trudnai válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Olvasd vegig az LCD temakort, de nagyjabol:

0. Ooopsz, most nezem: A delay ciklusnal csokkentgeted a T2-t, de minden ciklusban ujra inicializalod a T2-t 0xFF-el... Egyreszt nem kell inicializalni (0-tol ha vissza fele szamol akkor 256-ot szamlal, ha 0xFF-tol akkor "csak" 255-ot de kb ennyi lenne a kulonbseg...

0.b. Ugyanez a hiba a T1-el. Javasolnam, hogy a MOVLW az a call delay elott tortenjen meg es igy a MOVWF T1 parameterezheto lesz... Azonkivul a DECFSZ T1,f utani GOTO is a delay2-re menjen... Szimulald majd le, hogy jol mukodik-e a delay rutinod.

1. Inicializalas elott, az LCD bekapcsolasa utan kellene varni par ms-t - en varnek vagy 20-at, de most lusta vagyok elo venni az adatlapot, hogy pontosan megnezzem mennyit kellene varni.

2. 4 bites modban 3x egymas utan kell (erdemes?) inicializalni az LCD-t, hogy megbizhatoan mukodjon

3. Idoziteseket at kellene nezni, hogy mennyit kell varni az egyes parancsok es a karakterek kozott

4. Programozasi stiluson kellene kicsit meg finomitani, pl cimkevel egy sorba ne irj utasitast, emeldd ki az LCD parancs kuldest egy rutinba es igy egy MOVLW 8bit / CALL LCD parossal el lehetne intezni a parancsok es karakterek kikuldeset... Azonkivul a delay-nel erdemes lenne ertelmesebb nevet talalni, pl delay1ms ami reprezentalja mennyit is akarsz ott varakozni. Kommentek is kellenenek amik elmondjak mi az adott rutinnal vagy utasitas blokkal a celod, igy ellenorizni lehet a cel es a megvalositott program reszlet fedezi-e egymast... Azonkivul a NOP utasitasnal vannak ertelmesebb kenyszer varakozasok is, nezd meg a Help/Assembly/Tipps -t, hogy ott hogyan oldjak meg ezeket.
(#) szilva válasza icserny hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„nyitott nyelőelektródás”


Ezen én is mosolyogtam kicsit, még sosem láttam így emlegetni. Persze igaz, talán tényleg használják is magyarul, de akkor is mókás
(#) El_Pinyo válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Ha szakdolgozatot írsz, akkor gondolom, hogy felsőoktatási intézményben tanulsz villamosmérnöknek, vagy mérnök informatikusnak. Ebből azt sejtem, hogy tanultál digitális technikát, és kétlem, hogy nem hallottál még open collectoros (nyitott kollektoros- OC) kimenetről.
Az Open Drain ugyanaz a fogalom, csak az OC TTL IC-k bipoláris tranzisztoraira, míg az OD a CMOS IC-k MOS Fet-es kimenetére utal. Ahhoz, hogy logikai "1"- es feszültség szintet produkáljon a kimenet, szükségeltetik egy felhúzó ellenállás a kimenetre, amely egy ellenállást jelent, melynek egyik kivezetése a portlábra, másik meg a pozitív tápra van kötve.
(#) szilva válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Jó lenne tudni valamit a hardverről is, ha máshogy nem, érdemes a forráskódba betenni kommentbe, hogy melyik portlábra mit kötöttél. Ezen kívül pl. érdekes lenne, hogy az LCD kontrasztját hogyan kötötted be, be tudod-e állítani, hogy ne "fekete kockák" legyenek láthatók bekapcsolás után. Ha igen, akkor az a rész talán jó, és ha sikerül iniciálni az LCD-t, akkor látni is fogod rajta, amit kell.

Az LCD init-jét érdemes adatlap szerint csinálni, a HD44780-ra ráguglizva találsz pdf-et is, abban nagyon szépen, folyamatábrával illusztrálva le van írva az inicializálási folyamat mind 4, mind 8 bites üzemmódra. Az időzítéseket is be kell tartani!

A kódból úgy látom, hogy a PORTB bizonyos bitjeit használod az LCD vezérlésére, de pl. sehol nem látom, hogy foglalkoznál az RS jellel. Annak más állapotban kell lennie a parancsok és másban az adatok (karakterek) kiküldése közben. A bankválasztásokkor javaslom inkább a BANKSEL makró használatát a STATUS,RP bitek közvetlen állítgatása helyett (nemrég volt szó róla itt a topicban).
(#) gulasoft válasza icserny hozzászólására (») Ápr 21, 2009 /
 
Hinye, de benéztem! Igazad van, akkor ezt inkább itthon megcsinálom. Akár az átkötések kézi megoldásával. Ha jól láttam nincs olyan via ami alktrészlábhoz menne, tehát a házi két oldalon megforrasztott drótos módszer is megy.
Azt írtátok, hogy ezt a vs1011-et lehet kapni itthon is, a pic az 610Ft, a vs 1011 az 1042, az egyebekkel együtt kb. 3000Ft +a panel.
(#) icserny válasza trudnai hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„az OD kimenetet - nyelo elektroda, szep”

Nem a kisujjamból szoptam én sem, hanem az
angol-magyar informatikai szótár-ban olvastam. Egyébként roppant logikus, mivel a FET-nél a drain-t nyelőelektródának fordítják.
(#) denisz válasza El_Pinyo hozzászólására (») Ápr 21, 2009 /
 
OFF: számtech-technika szakon (talán) végzek. viszonylag keveset foglalkoztunk pic programozással. kb 2xmásfél órát, a szakdoga választásra is kb 10 percem volt, információ hiányában ennyi idő maradt a leadásra.

ON: szimulátorozom a progit és már az első kijelző műveletnél kevés az időzítésem, úgy látom. finomítgatok még rajta...

denisz
(#) El_Pinyo válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Nahát! Nem is gondoltam volna, hogy ilyen szakon is foglalkoznak mikrokontrollerekkel. Ha esetleg jársz könyvtárba, akkor kérdezz rá a Kónya László- féle PIC mikrovezérlők alkalmazástechnikája c. könyvre, nagyon hasznos tud lenni, sok példa kóddal.
Ha kérdésed van, nyugodtan tedd fel ide a fórumra, nagyon sok hozzáértőtől kaphatsz segítséget.
Sok sikert a programhoz!
Üdv.
(#) szilva válasza denisz hozzászólására (») Ápr 21, 2009 /
 
Érdemes írni egy olyan időzítést, ami egy ismert időt várakozik azon az órajelen futtatva, amit használsz a projektedben. Ez lehet pl. 100us, nem kell nagyon pontosnak sem lennie, de a szimulátor stopperével elég jól be is lehet lőni. Utána ezt lehet ciklusból hívogatni, ha hosszabb időzítésekre van szükség. Pl. a 100us-os időzítést egy 30-as ciklusba berakva lehet kb. 3ms-ot várakozni, ami (ha jól emlékszem) minden parancs végrehajtására elegendő az LCD-nek, a legrosszabb esetekben is.
(#) trudnai válasza icserny hozzászólására (») Ápr 21, 2009 /
 
Koszi a linket! Ha tudnad hanyszor volt ezzel gondom, hogy nem tudtam egy-egy kifejezest nem talaltam es csak nagy szenvedes aran jottem ra mit hogy hivnak Angolul - vagy eppen forditva, csak az Angolt ismertem, a Magyart nem -- pl az Open Drain is ilyen volt

Koszi megegyszer!
(#) icserny válasza trudnai hozzászólására (») Ápr 21, 2009 /
 
Meg tudom érteni, mert én is hasonló cipőben járok. Most például az Input Capture és az Output Compare lefordítása okoz számomra megoldhatatlan problémát.

De a Z bit "sticky" viselkedése sem könnyen magyarítható...
(#) menyus hozzászólása Ápr 21, 2009 /
 
Sziasztok!

Kis segítség kéne. Nem tudom hogy én értelmezek valamit rosszul vagy a 16F628A adatlapja hibás...Az EEPROM írásánál van egy példa a 92 oldalon: "EXAMPLE 13-4: DATA EEPROM REFRESH ROUTINE" Itt a 2. és 3. sorban van két bit állítás az "EECON1" regiszterben. A CFGS és a EEPGD bitet állítja "0" ba. No mármost én az EECON1 regiszterben nem látok ilyen biteket. Elvileg ezekkel a bitekkel lehet kiválasztani hogy az EEPROM ot akarom írni vagy a FLASH memóriát. Ha az EECON1 ben nincs ilyen, akkor a 16F628A esetében hol lehet ezt állítani? Én vagyok megint figyelmetlen vagy valóban hibás a példa..?

Köszi előre is.
(#) robing16 hozzászólása Ápr 21, 2009 /
 
Sziasztok!

Megvan az első égetőm, igaz vettem, mert a srác, aki eladta, kipróbálta, és garantálta, hogy működik!

És így is lett

Nah, viszon egy óóóriási feladatom lenne, de nem tudok hogy belevágni! Légyszi segítsetek!

Egy DMX jelet kellene lefordítani 4 BIT-es kimenetre! Ha feltolom a potit a DMX pulton, legalább a 128-as értékig, vagy teljesen fel, (ez most mind1) akkor a becímzett PIC segítségével pl a PORTA 1-es lábán H szint jelenik meg!

Ha a kettes potit tolom fel, akkor a PORTA 2-es lábán jelenjen meg H szint!
Én találtam egy DMX oldalt, amit összehoznak egy 16F84-essel, de az nem pont azt csinálja, amire én gondoltam.

Valaki HELP-eljen meg egy alapkapcsolással, és egy Forrásfáljal, vagy csak ötlet is elég, mert ki fogom
bogózni, hogy is megy!

Előre is köszi, MINDENKINEK!
(#) trudnai válasza menyus hozzászólására (») Ápr 21, 2009 /
 
Biztos, hogy jo adatlapot nezel? 16F628 tudtommal nem firkalhatja a sajat flash memoriajat.
(#) trudnai válasza robing16 hozzászólására (») Ápr 21, 2009 /
 
Idézet:
„Ha a kettes potit tolom fel, akkor a PORTA 2-es lábán jelenjen meg H szint!
Én találtam egy DMX oldalt, amit összehoznak egy 16F84-essel, de az nem pont azt csinálja, amire én gondoltam.”


...kesobb irod...

Idézet:
„Valaki HELP-eljen meg egy alapkapcsolással, és egy Forrásfáljal, vagy csak ötlet is elég, mert ki fogom
bogózni, hogy is megy!”


Nem egeszen ertem akkor mit varsz tolunk? Irjuk meg helyetted?
(#) potyo válasza trudnai hozzászólására (») Ápr 21, 2009 /
 
Megnéztem én is, 16F628A adatlapban tényleg írja az említett két bitet a refresh rutinnál, viszont ezek a bitek nem léteznek a chipben. Szerintem simán kihagyhatók.

Egyébként meg nem egy nagy cucc ez a frissítő rutin. Végig kell menni az összes cellán, és ami benne van, azt visszaírni bele. Az olvasás meg az írás rutinok egymás után, és egy ciklusban az egész, amíg végig nem érünk az eepromon.
(#) benjami válasza menyus hozzászólására (») Ápr 21, 2009 /
 
Fura, én nem látok az adatlapban ilyen biteket (DS40044D-page 92). Nem lehet hogy egy régebbi adatlapot nézel és abban még hibásan van benne ?
Megnéztem a legújabbat (DS40044F) és abban sem találtam ilyet.
(#) potyo válasza benjami hozzászólására (») Ápr 22, 2009 /
 
De igen, a régebbiben benne voltak. Nekem DS40044A volt, és abban benne vannak. Az újabbakban már úgytűnik, javították.
(#) trudnai válasza benjami hozzászólására (») Ápr 22, 2009 /
 
Na igen, most megneztem, mar a B valtozatban is javitva volt ez a hiba...

Tanulsag 1: Erratat is olvasni kell
Tanulsag 2: Erdemes a DataSheet-eket frissitgetni idonkent

Következő: »»   465 / 1320
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