Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   652 / 1319
(#) roland0327 hozzászólása Jan 25, 2010 /
 
Azt még megakarom kérdezni, hogy hogyan lehet kinyírni a PIC-et? Mit ne csináljak majd? Mire figyeljek?
(#) icserny válasza roland0327 hozzászólására (») Jan 25, 2010 /
 
I az ipari (industrial) hőmérséklettartomány,
SP a keskeny DIP (dkinny DIP) tokozás.

Az A jelzés mindezek előtt (a kötőjel előtt) van, mert az a típusszám része.
(#) Attila86 válasza Hp41C hozzászólására (») Jan 25, 2010 /
 
Szia!

Köszönöm, így már mindjárt jó!
(#) watt válasza Hp41C hozzászólására (») Jan 25, 2010 /
 
Ezt épp potyonak mondod el? Van nem neki akartál válaszolni?
(#) watt válasza Attila86 hozzászólására (») Jan 25, 2010 /
 
Na akkor térjünk vissza a kérdésemre, mert látom az Fosc/4 megoldódott.

Hogy is van az a BRA és GOTO?
Hogyan szervezed meg a két megszakítás belépési pontot és hol állítod be, hogy prioritásos legyen, vagy ne?

Aki megmondja lelövöm! :violent:
(#) Attila86 válasza watt hozzászólására (») Jan 25, 2010 /
 
Idézet:
„Hogy is van az a BRA és GOTO?”

A BRA egy szavas, a GOTO pedig két szavas. A BRA-val legfeljebb 1024 utasítást ugorhatunk előre vagy hátra. A GOTO-val pedig sokkal többet. Tehát a GOTO jobb, mert nagyobbat tud ugrani. De akkor miért van mégis BRA, ha a GOTO jobb?

Idézet:
„Hogyan szervezed meg a két megszakítás belépési pontot és hol állítod be, hogy prioritásos legyen, vagy ne?”

org 0x008 után írom a magasabb prioritású megszakítást, az org 0x018 után pedig az alacsonyabbat. Ha nem akarok prioritást beállítani, akkor ezt írom:
  1. org 0x008
  2. bra 0x018
  3. org 0x018
  4. ;megszakítás programkódja...

Ezt így csináltam most is, és működik rendesen. Most megszakításból villogtatok épp egy LED-et.
(#) leglacika hozzászólása Jan 25, 2010 /
 
Sziasztok!

Egy C-s kérdésem lenne. Szeretnék megépíteni egy műszert amit a neten találtam, de egy-két dolgot módosítani szeretnék a szoftverében. C-ben írta a szerző, elérhetővé tette a forráskódot és a HEX-et is. Azt írja, Hi-Tech PICC-el fordította a kódot. Itt jön az én gondom. Nem vagyok pontosan tisztában a dolog menetével. Van egy csomó fájl, nem tudom melyiket kell bevonnom a projectbe, melyiket nem. Próbaképp mindet betettem, de fordításkor hibák sorozatát küldte a Hi-Tech PICC. Biztos nem jól csináltam valamit. MPLAB alá telepítettem a Hi-Tech PICC-et, majd az MPLAB project varázslójával csináltam egy új projectet az összes fájl bevonásával. A C kódban módosítottam amit akartam, majd fordítás. Nem sikerült. A fő gondja az, hogy néhány C-s utasítást nem ismer fel. Próbáltam az eredeti C fájl-al is (hátha én rontottam el valamit a belenyúláskor), úgy sem jó. Mellékelem az eredeti forráskódokat. Valaki elmondaná röviden, hogyan kellene csinálni, hogy le lehessen fordítani ?
Hozzáteszem, hogy kezdő vagyok C-ben. Meg assemblyben is majdnem .
Köszönök minden segíséget.

Üdv: Laci.

LCD.zip
    
(#) watt válasza Attila86 hozzászólására (») Jan 25, 2010 /
 
Idézet:
„De akkor miért van mégis BRA, ha a GOTO jobb?”

Jobb? Mindig az a jobb, ami a célnak megfelel. Ha nem kell messzire ugrani, elég a BRA, fele annyi helyet foglal, és olyan szerkezetekben is jól működik, amit te szeretnél. Tehát ott jobb a BRA!

Idézet:
„Ezt így csináltam most is, és működik rendesen. Most megszakításból villogtatok épp egy LED-et.”

Ezt félig jól csináltad, mert ha nem kell prioritásos megszakítás, akkor ki kell kapcsolni(akkor is ki kell, ha netán alapból ki van, mert akkor lehetsz biztos benne.). Ha kikapcsolod, akkor biztos, hogy nem lép a 0x18-ra egy megszakítás sem, hanem marad a 0x08-as cím egyedül. Ezzel némi memóriát spórolsz és egyszerűsödik a kód is.
(#) trudnai válasza watt hozzászólására (») Jan 25, 2010 /
 
Idézet:
„Tehát ott jobb a BRA!”


Foleg ha 38 D a holgy aki viseli... (bocs, nem birtam kihagyni )
(#) potyo válasza trudnai hozzászólására (») Jan 25, 2010 /
 
:taps: :smoke:
(#) miklosch hozzászólása Jan 25, 2010 /
 
Sziasztok!

Problémába ütköztem a programozói lábak felhasználásával az áramkörben. Addig világos, hogy le kell választani az áramkört egy ellenállással a programozói lábról, de az nem teljesen világos, hogy így is lehet-e használni ki- és bemenetként is. A másik probléma, hogy az MCLR lábat nem elég leválasztani, még fel is kell húzni tápra. Az elgondolásom szerint megrajzoltam a sémát, legyetek szívesek ránézni, hogy működőképes-e. MCLR-t kimenetnek szeretném használni, PGD-t és PGC-t pedig kimenetnek.

repeater.jpg
    
(#) El_Pinyo válasza miklosch hozzászólására (») Jan 26, 2010 /
 
Szia!
Lehet használni a portlábakat ki/bemenetként egyaránt. Az ellenállással való leválasztás azért kell, hogy a periférián levő áramköröket és a programozót is megvédjük az esetleges túláramtól. Az MCLR lábat viszont nem tudod kimenetként használni, csak bemenetként használható. Felhúzni pedig csak akkor szükséges, ha engedélyezve van az MCLR funkció, vagy open-draines a lábat meghajtó fokozat kimenete.
Üdv.
(#) trudnai válasza miklosch hozzászólására (») Jan 26, 2010 /
 
En meg annyit fuznek hozza, hogy hidegito kondikat ne felejts el betenni a tap es a fold koze minden IC-hez (bele ertve a PIC-et is...), meghozza az IC labaihoz olyan kozel amilyen kozel csak lehet. 100nF keramia-t szokas bele pakolgatni.

UI: Ja es meg valami: A DIP kapcsolo-t valosznuleg be tudod egyetlen anaog labbal is olvasni ha ugyesen rakod ossze az ellenallas halozatot... es akkor felszabaditasz egy csomo labat...
(#) watt válasza miklosch hozzászólására (») Jan 26, 2010 /
 
El_Pinyo már írta, hogy az MCLR csak bemenet lehet, ezt fontosnak tartottam én is kiemelni, valamint a kommunikációs vonalakba 10k-t betenni nem túl szerencsés. Oda akkora ellenállás kell, amekkora nem zavarja a jelet, és még a programozó kimenetét sem teszi tönkre. Én olyan 330ohm körülire saccolnék, de lehet, hogy 470,vagy 1k lesz a jó. Ha egyik sem, akkor jumper!
Trudnai mester szavait is fogadd meg, már a rajzról sem szabad lehagyni a hidegítő kondikat! Az ötlet, az analog megoldásról pedig megfogadandó, miután kellene még egy láb az MCLR helyett!
(#) watt válasza trudnai hozzászólására (») Jan 26, 2010 /
 
Egy darabig eltartott! :taps:
(#) miklosch válasza watt hozzászólására (») Jan 26, 2010 /
 
Köszönöm az információkat! Szóval akkor lényegében a rajzon szereplő megoldás használható kisebb ellenállásokkal. A rajz még elég kezdetleges, kondenzátorok nem fognak kimaradni, csak nem az volt az elsődleges, hogy berajzoljam.
(#) watt válasza miklosch hozzászólására (») Jan 26, 2010 /
 
Idézet:
„Szóval akkor lényegében a rajzon szereplő megoldás használható kisebb ellenállásokkal.”

Ha az ICSP vonalak leválasztását kérded, akkor igen, egyébként a rajz nem működik a jelenlegi formájában, de erről írtunk.
Nekem a kondik az elsők!
(#) miklosch válasza watt hozzászólására (») Jan 26, 2010 /
 
Igen, persze, mert az MCLR-t kimenetként használtam volna, amit csak bemenetként lehet, viszont ez meg nem alkalmas megszakítás generálására. Ezzel kapcsolatban jól értelmeztem a 16f616 katalógusát, hogy az A port lábain külső változás hatására alkalmas megszakítani, vagy erre csak az INT láb jó? Ledet hogy tudok meghajtani az MCLR-ről, hogy le is legyen választva a programozáshoz?
(#) watt válasza miklosch hozzászólására (») Jan 26, 2010 /
 
írod:
Idézet:
„Igen, persze, mert az MCLR-t kimenetként használtam volna, amit csak bemenetként lehet

erre:
Idézet:
„Ledet hogy tudok meghajtani az MCLR-ről, hogy le is legyen választva a programozáshoz?”

Nem értelek!

Miért akarod, hogy megszakítással működjön, nem elég, ha észreveszed, hogy a kapcsolót átkapcsoltad? Vagy nem az lesz rajta? Ha nem akkor mi?


(#) miklosch válasza watt hozzászólására (») Jan 26, 2010 /
 
Jah, kicsit szórakozott vagyok.. Persze, hogy nem lehet LED-et hajtani róla...
Az A port használható elvileg megszakításra is, a kapcsolók pedig a C portra kerültek. Azt akarom, hogy ha érkezik egy 0 szintű jel, akkor szakítson meg, addig pedig sleep üzemmódban legyen a PIC.
(#) Collector hozzászólása Jan 26, 2010 /
 
Ezt a klónt építette már meg valaki, jól működik?
Bővebben: Link
(#) watt válasza miklosch hozzászólására (») Jan 26, 2010 /
 
Az a jel honnan jön(mi kelti?)?
(#) watt válasza Collector hozzászólására (») Jan 26, 2010 /
 
Igen sokan megépítették(én nem), és jól működik! Azt tudni kell, hogy alapból csak az 5V-os PIC-eket tudja égetni! Egyébként hibátlan. (Van amúgy a PICKit2 topic, ott sok ilyen jellegű kérdésre megtalálod a választ, csak használd a keresőt!)
(#) Collector válasza watt hozzászólására (») Jan 26, 2010 /
 
Ok, kösz.
(#) miklosch válasza watt hozzászólására (») Jan 26, 2010 /
 
Az IC1 és IC3 1-es lábain jön jel. Mind a két átalakító alap esetben vételre van állítva, és amelyikről jön egy start bit, azaz logikai 0, akkor a másikat átállítja adásba. Ezért szeretném megszakításból kezelni, hogy ne vesszenek el bitek a késleltetés miatt.
(#) watt válasza miklosch hozzászólására (») Jan 26, 2010 /
 
Mi köze ennek a kapcsolókhoz?
Nem igazán értem mi a probléma. Keresned kell egy olyan lábat, ami L szintű élre megszakítást okoz, illetve felébreszti a PIC-et. Most fejből nem tudom, hogy a választott PIC esetében az RA1 ilyen funkcióval el van e látva, meg kell nézzed az adatlapban, és ha nem, akkor másikat kell keress!
De még egyszer kérdem, mi köze ennek a kapcsolókhoz? Mire kellenek a kapcsolók?
(#) kisszee válasza leglacika hozzászólására (») Jan 26, 2010 /
 
Hello,

csak egy kis megjegyzés; szerintem az ok, amiért nem érkezett még javaslat a problémád kiküszöbölésére az az, hogy magát a hibaüzeneteket nem mutattad meg, plusz magát a hardware -i részét sem a projektednek (de nem szeretem ezt a szót), esetleg, hogy miket változtattál. Nem azt mondom, hogy lehetetlen mindezek nélkül megtalálni az okokat, de jóval rugalmasabb és hatékonyabb módszer lenne, és te is előbb kapnál megoldásokat, tanácsokat. Nem rossz indulat, tényleg csak egy észrevétel volt!
(#) potyo válasza kisszee hozzászólására (») Jan 26, 2010 /
 
Idézet:
„magát a hardware -i részét sem a projektednek (de nem szeretem ezt a szót)”


Akkor írd magyarul: hardver
(#) miklosch válasza watt hozzászólására (») Jan 26, 2010 /
 
Akkor lényegében leírom, hogy mi a célja az áramkörnek. Ez egy RS485 hálózatú jelismétlő. Ha valamelyik átalakítóra bejön adat, azt tovább kell adnia a másikra. IC1, és IC3 egy RS232-RS485 konverter 1-es lába az RX, 4-es a TX, 2 és 3 lábával választom ki, hogy adásra, vagy vételre álljon. Alapesetben mind a kettő vételre van állítva, és amelyik RX láb 0 szintre vált, azaz a kommunikációban ez a start bit, akkor a mikrovezérlővel a másik átalakítót adásba állítom, hogy az adat kimenjen rajta. A kapcsolók arra valók, hogy be lehessen állítani a baud rate-et, és azt, hogy a kommunikáció hány bites, ezzel kiszámolva azt az időt, hogy meddig kell adásban tartani az átalakítót. A pic adatlapján azt találtam, hogy az A port egészében tudja az "Interrupt-on-change" funkciót, amit úgy értelmeztem, hogy külső változás hatására, azaz a start bit lefutó élére is képes megszakítást generálni. Vagy félreértelmeztem, és csak az INT elnevezésű láb képes külső esemény hatására megszakítani? A sleep funkció annyira nem lényeges, de két bemenet kellene, ami képes megszakítani.
(#) watt válasza miklosch hozzászólására (») Jan 26, 2010 /
 
Végül is amit írni fogok, már leírtuk.
1. A kapcsolókat vagy mátrixba kellene tenni, ez 2+3 vezetéket kívánna a 6 kapcsolóhoz, vagy az A/D modullal detektálni egy ellenállás hálót a kapcsolón, amiből lehetne következtetni a kapcsoló állására az osztó feszültségértékeiből. Ez utóbbi egy vezetéket igényelne, maradna 5, a mátrixosnál pedig 1 vezeték maradna, ami szintén elég.
2. Két vonal kell, ami megszakítást okoz. Jól láttad, a PORTA mindegyik lába képes megszakítást okozni, és feléleszteni a PIC-et(bár a felélesztésnek nem néztem utána az adatlapban, ezt még tedd meg.).
3. Az MCLR-t így csak a Vpp-nek szentelheted, jobb is így.

A feladat így biztosan megoldható.
Következő: »»   652 / 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