Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   974 / 1207
(#) abcdabcd válasza Udvari Zsombor hozzászólására (») Aug 27, 2017 /
 
Te írtad:
Idézet:
„Amikor ráadom a tápfeszt, az indulása:
1. felső sor tömör karakterek
2. pár másodpercig üres
3. a képeken látható módon villogó kurzor az első karakteren
4. újra üres és már kikapcsolásig így marad”


Akkor mégse tűnik el a kurzor?

Ha te írtad át, akkor nézd végig újra, adatlapokat nyiss meg, meg az egyéb segédleteket ami alapján átírtad, nyálazd át... ez így már a te saját projekted akkor...
A hozzászólás módosítva: Aug 27, 2017
(#) abcdabcd válasza abcdabcd hozzászólására (») Aug 27, 2017 /
 
Meg azon a dugdosós próbapanelon könnyedén lehet kontakthiba, ellenőrizd a csatlakozásokat a multimétereddel...
(#) sonajkniz válasza Udvari Zsombor hozzászólására (») Aug 27, 2017 /
 
Zsombor!

Kezd azzal, hogy a próbapanelt a mellékelt kép stílusában rakod össze!
Így ugyanis áttekinthető, és még fénykép alapján is észrevehetjük rajta az esetleges hibát.

100_8233.jpg
    
(#) icserny válasza Balagemann2031 hozzászólására (») Aug 27, 2017 /
 
Ha veremtárat használsz, be kell állítani a veremtár mutatóját és limitjét! Például:

  1. mov #__SP_init, W15
  2. mov #__SPLIM_init, W0
  3. mov SPLIM, W0


A .bss és .space használata szerintem jó. Általában még kell egy diretíva:
  1. .global __reset

és a program a __reset címkénél indul.
(#) Udvari Zsombor válasza sonajkniz hozzászólására (») Aug 27, 2017 /
 
Nem tudom jobban összehozni a panelt, mert tüskesort elfelejtettem az LCD-vel rendelni és most már ilyen drótok vannak beleforrasztva... Én átlátom a panelt, de fotón már nem igazán látható át... :/
(#) Gabó válasza Udvari Zsombor hozzászólására (») Aug 27, 2017 /
 
Szerintem így összehozni, nem nagy dolog.
A kábelek meg mindegy, hogy tüskesor van e vagy sem.
Konkrétan a te képeden semmi nem látható!
(#) Balagemann2031 válasza icserny hozzászólására (») Aug 27, 2017 /
 
A veremtár mutató be van állítva, a reset belépési pont rendben van. A program egészen addig jól működik amíg nem lépem túl a 40db 16 bites változót. Elvileg 0x800 tól 0x2000 ig terjed az adatmemória, szóval bőven kellene még tudnom lefoglalgatni. ha már 41 változót foglalok le, tesztelésnél lefagy a program, több lefoglalt változónál volt, hogy resetelgetett. Gondolom valahogy belelóg a programmemóriába vagy nem tudom.
(#) Udvari Zsombor válasza abcdabcd hozzászólására (») Aug 28, 2017 /
 
Úgy értettem, hogy ugyanez az indulási ciklus billentyűzet nélkül is...
(#) Udvari Zsombor hozzászólása Aug 28, 2017 /
 
Én a harmadik sorra gyanakszok ebben a kódrészletben... Mi történne, ha ott 0 helyett 1 lenne?
  1. //Billentyûzet bekötés >>
  2. unsigned short keydata = 0, special = 0, down = 0;
  3.  
  4. sbit PS2_Data            at RA2_bit;
  5. sbit PS2_Clock           at RA3_bit;
  6. sbit PS2_Data_Direction  at TRISA2_bit;
  7. sbit PS2_Clock_Direction at TRISA3_bit;
  8. //Billentyûzet bekötés <<
Illetve jól van-e ez így?
(#) Hp41C válasza Udvari Zsombor hozzászólására (») Aug 28, 2017 /
 
Biztos jó a billentyűzet csatlakozó bekötése? Bővebben: Link
(#) Udvari Zsombor válasza Hp41C hozzászólására (») Aug 28, 2017 /
 
Elvileg eszerint kötöttem és a billentyűzeten eredetileg DIN csatlakozó volt...

PS2Conn.jpg
    
(#) don_peter hozzászólása Aug 28, 2017 /
 
Nos odáig eljutottam, hogy 18F4550-en megy sima tápról is az AM2322-es hőszenzor lekérdezése, de 18F442-őn nem működik. Az érdekesség az egészben az, hogy mikor PicKit2 saját programján keresztül táplálom vagy egyéb más tápról kapcsolom be az elektronikát, AM2322 nem reagál, de ha MPLAB IDE felületén keresztül, debug vagy relase módban adok neki táplálást, PicKit2-őn keresztül, akkor működik és le lehet kérdezni AM2322 adatait.
Annyit kiszotyoláztam már, hogy az MCLR lábra allergiás a dolog, de azt nem, hogy miért működik MPLAB IDE felületén keresztül és miért nem működik sima PicKit2 programból, vagy más külső táplálással.

Ötlet esetleg?
Hogy a bánatban lehet ilyesmi?
(#) icserny válasza Balagemann2031 hozzászólására (») Aug 28, 2017 /
 
Azt kellene ellenőrizni, hogy a linker hová helyezi el a veremtárat. Elvileg 0x800-tól kezdődnek az adatok (a .bss szekció), s fölötte kezdődik és felfele terjeszkedik a veremtár. Attól tartok, hogy nálad ezek lógnak egymásba.

Az alábbi utasítások után (vagy ha nem így állítod be, akkor az általad végzett veremtár inicializálás után) mi lesz a W15 és SPLIM tartalma?
  1. mov #__SP_init, W15
  2. mov #__SPLIM_init, W0
  3. mov SPLIM, W0
A hozzászólás módosítva: Aug 28, 2017
(#) bugyi680 hozzászólása Aug 28, 2017 /
 
Üdv!
Hogyan lehetne azt megoldani hogy egy gombnyomásra,programot váltson a pic.Futófényhez kellene az animációkat szeretném léptetni.
(#) kissi válasza bugyi680 hozzászólására (») Aug 28, 2017 /
 
Szia!

Figyelni kell a gombot és ha nem nyomják, akkor program1-re, ha nyomják, akkor program2-re ugorjon a program vezérlése !
Milyen nyelven/nyelvben gondolkodsz ?!
(#) Udvari Zsombor hozzászólása Aug 28, 2017 /
 
Kérem, hogyne adjuk föl! Az LCD már vezérelve van, csak a billentyűzet nem működik még!
Én legalábbis nem szeretném feladni a projektet, de a helyzet az, hogy akármit próbálok, a billentyűzet nem akar írni! Aki esetleg tudja a megoldást, az keressen meg!
(#) bugyi680 válasza kissi hozzászólására (») Aug 28, 2017 /
 
C-be szeretném.
(#) abcdabcd válasza Udvari Zsombor hozzászólására (») Aug 28, 2017 / 1
 
Hevenyészve végignézve a .c fájlt, úgy tűnik, hogy a "PS2_Key_Read()" nevű függvény nincs meg... így logikus is lenne, hogy mért nem olvas semmit, csak a sok feltétel van ott a program közepétől, hogyha az olvasott érték ez meg ez és ez akkor ez meg ez és ez... de nem tudom milyen fejlesztőkörnyezet ez, feltelepíteni se szeretném, szóval csak sima szöveges fájlként végigfutottam...

Viszont, ha te írtad a programot, akkor neked kell tudnod, hogy mit is csináltál, vagy mit kéne csinálnia a programnak, amit nem csinál (azon kívül, hogy nem működik a cucc)...

Meg olyanokat nézz át, hogy arra a lábra van-e kötve a valami fizikailag a panelodon, amire a programban is definiálva van, ehhez persze érteni kell, hogy ezeket a lábakat hogy lehet elérni a programból, szóval ez PIC-kel kapcsolatos dolgok ismeretét is feltételezi azon kívül, hogy azt a fejlesztőkörnyezetet ismered, amiben a programot írták, és azt a nyelvet (C).


Amúgy meg keress valami teljesen kezdőknek szóló C könyvet, ahol mesélnek is az elején arról, hogy mi a változó miért kell deklarálni, milyen típusai vannak, meg aztán tömbök, ciklusok stb...(szóval ahol elmagyarázzák, mesélik az amolyan általános programozási dolgokat, amiket ha egy nyelvnél megértesz, akkor a másik nyelvnél már nem kell újra és akkor oda jó akár a fejlesztőkörnyezet súgója is, ha benne vannak a nyelv szintaktikai elemei, beépített függvényei stb...), meg van külön a pic-ekhez is könyv...


Ha meg a fentiek hirtelen túl bonyolultnak tűnnek, akkor meg inkább csináld meg az eredeti pic16f887-tel (korábban azt írtad, hogy a melegedő példányon kívül van még egy másik is), ha eredetileg arra írták... és akkor elég arra figyelned, hogy a kapcsolás jól legyen összerakva, jó legyen a táp amit használsz, és a breadboard-on is érintkezzen minden (kisípolni, ki-ohmmérőzni a multiméterrel ha már másképp úgy tűnik, hogy ránézésre jó, de mégse megy)
A hozzászólás módosítva: Aug 28, 2017
(#) bugyi680 hozzászólása Aug 28, 2017 /
 
Olyan lehet hogy a PIC egy lába megadta magát?
Van egy PIC16F877A mikrokontrollerem rátöltöttem az egyik projectemet észrevettem hogy a 7. lába nem működik (jelen esetben nem világít a LED),azthittem program hiba,majd rátöltöttem egy másik programot amivel eddig működött de azzal se(nem jelenik meg feszültség a LED lábán.Kicseréltem a mikrovezérlőt azzal is ugyanez a helyzet.
Elromlott mind a kettő PIC-em ráadásul ugyanúgy?
(#) Bakman válasza bugyi680 hozzászólására (») Aug 28, 2017 /
 
Ha mindkettőt azonos módon terhelted túl, lehetséges. Vagy a LED nem jó.
(#) attika válasza bugyi680 hozzászólására (») Aug 28, 2017 /
 
Az nagyon is könnyen előfordulhat, én is jártam így egy voltmérővel ami Pic-es volt, rákötöttem a motorra és összeszedett valami zavart és el is halálozott 2 lába a Pic-nek.
(#) Udvari Zsombor válasza abcdabcd hozzászólására (») Aug 28, 2017 /
 
Idézet:
„... de nem tudom milyen fejlesztőkörnyezet ez, feltelepíteni se szeretném, szóval csak sima szöveges fájlként végigfutottam...”
A fejlesztőprogram a mikroC PRO for PIC v.5.6.1!
Idézet:
„Meg olyanokat nézz át, hogy arra a lábra van-e kötve a valami fizikailag a panelodon, amire a programban is definiálva van, ehhez persze érteni kell, hogy ezeket a lábakat hogy lehet elérni a programból, szóval ez PIC-kel kapcsolatos dolgok ismeretét is feltételezi azon kívül, hogy azt a fejlesztőkörnyezetet ismered, amiben a programot írták, és azt a nyelvet (C).”
Ezt már néztem, és a hardver ott van, ahol lennie kell!
Idézet:
„(korábban azt írtad, hogy a melegedő példányon kívül van még egy másik is)”
Félreérted, ugyanis nincs, mert az PIC16F88!
A "PS2_Key_Read()" pedig jól néz ki, de nagyjából hová tegyem be? Rögtön az inicializálásba a "Ps2_Config()" alá?
(#) bugyi680 válasza Bakman hozzászólására (») Aug 28, 2017 /
 
A lábra csak 1 led meg az előtét ellenállás (330Ohm) rákötve.A led az jó.Hogy tudtam túlterherlni?
Ha rosszul írom meg a programot azzal ki lehet nyírni
(#) abcdabcd válasza Udvari Zsombor hozzászólására (») Aug 28, 2017 /
 
Idézet:
„A "PS2_Key_Read()" pedig jól néz ki, de nagyjából hová tegyem be? Rögtön az inicializálásba a "Ps2_Config()" alá?”


Vagy alá vagy fölé, mondanám, hogy ahogy lefordítja, de úgy tűnik, hogy nélküle is lefordította(vagy ott van valahol csak én nem láttam, valamelyik másik fájlban) pedig ott a sok hivatkozás rá, szóval próba szerencse, az valószínű lényeges lehet, hogy előbb legyen ott a függvény, mint az első sor, ahol meg van hívva... Meg akkor ha ígyse megy, se alatta se fölötte, akkor nézd végig a programot, hogy az eredetiből akkor mit hagytál ki még, mert valószínűleg minden kéne bele, hacsak nem az eredeti valami mást is csinál, mint az lcd-re ír, meg a billentyűzetről olvas...

De ugye megtaláltad az eredeti kódban ezt a függvényt, amit írtam és nem az általam leírt sort: "PS2_Key_Read()" akarod a programba beszúrni?

Mert ez egy függvény, amit meg kell találnod az eredeti programban, amiből ezeket a részket kimásoltad, valahány sornyi programkóddal, ami kell a billentyűzetről olvasáshoz, és ennek a kimenetét kezeli a program további része...



Röviden: miből tart kipróbálni az egyikféleképpen, és ha meg nem megy, akkor meg másféleképpen?
A hozzászólás módosítva: Aug 28, 2017
(#) Udvari Zsombor válasza abcdabcd hozzászólására (») Aug 28, 2017 /
 
Hát, az eredeti kódban sem találom a függvényt, pedig a videóban működött... :/
(#) abcdabcd válasza Udvari Zsombor hozzászólására (») Aug 28, 2017 /
 
Idézet:
„Amúgy meg keress valami teljesen kezdőknek szóló C könyvet, ahol mesélnek is az elején arról, hogy mi a változó miért kell deklarálni, milyen típusai vannak, meg aztán tömbök, ciklusok stb...(szóval ahol elmagyarázzák, mesélik az amolyan általános programozási dolgokat, amiket ha egy nyelvnél megértesz, akkor a másik nyelvnél már nem kell újra és akkor oda jó akár a fejlesztőkörnyezet súgója is, ha benne vannak a nyelv szintaktikai elemei, beépített függvényei stb...), meg van külön a pic-ekhez is könyv...”


-Vagy ha másolni akarsz valami kész programot mástól, akkor másold ki teljesen ne hagyj ki semmit belőle, de az is lehet, hogy ez a függvény (olvass utána mi az), beépítve megvan a fejlesztőkörnyezetben amiben dolgozol (?), akkor meg valahol máshol lehet a hiba...
A hozzászólás módosítva: Aug 28, 2017
(#) abcdabcd válasza Udvari Zsombor hozzászólására (») Aug 28, 2017 /
 
Vagy még mindig azt tudom mondani, hogy nézd át a próbapanelon a kötéseket, nyomkodd meg kézzel az alkatrészeket, hogy finom mozgatásra valami változik-e, vagyis van-e bizonytalan kontakt...
(#) Udvari Zsombor válasza abcdabcd hozzászólására (») Aug 28, 2017 /
 
Minden kontakt OK!
(#) abcdabcd válasza Udvari Zsombor hozzászólására (») Aug 28, 2017 /
 
Akkor csukd be az összes programablakot, szedd szét a breadboardot, aztán újra nyisd meg a szükséges dolgokat és rakd össze előről a panelt, lehet van valami amit nem vettél észre, figyelmesen nézz végig mindent, a programot is ha lehet egy teljesen új projektbe/fájlba rakd össze az eredeti helyről újra... aztán még ezzel a mostani programmal össze is hasonlíthatod, akkor már lehet látod te is, hogy hol volt ezzel a gond...
(#) Udvari Zsombor válasza abcdabcd hozzászólására (») Aug 28, 2017 1 /
 
Kezd beletörni a bicskám az egészbe!!! Egyszerűen akármit csinálok nem tudok egy karaktert se kicsikarni a kódból!! Nem vagyok egy programozó zseni, inkább hardverben vagyok jó... :/

Előlről pedig biztosan nem fogom kezdeni, mert idáig se volt egyszerű egyáltalán eljutnom!!! Az az érzésem, hogy például Arduinoval könnyebb lenne az egész, mert arra már kód létezik készen is! A francom már az egészbe...
Következő: »»   974 / 1207
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