Fórum témák
» Több friss téma |
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
Meg azon a dugdosós próbapanelon könnyedén lehet kontakthiba, ellenőrizd a csatlakozásokat a multimétereddel...
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.
Ha veremtárat használsz, be kell állítani a veremtár mutatóját és limitjét! Például:
A .bss és .space használata szerintem jó. Általában még kell egy diretíva:
és a program a __reset címkénél indul.
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... :/
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ó!
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.
Úgy értettem, hogy ugyanez az indulási ciklus billentyűzet nélkül is...
Én a harmadik sorra gyanakszok ebben a kódrészletben... Mi történne, ha ott 0 helyett 1 lenne?
Biztos jó a billentyűzet csatlakozó bekötése? Bővebben: Link
Elvileg eszerint kötöttem és a billentyűzeten eredetileg DIN csatlakozó volt...
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?
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?
A hozzászólás módosítva: 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.
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 ![]()
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!
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
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?
Ha mindkettőt azonos módon terhelted túl, lehetséges. Vagy a LED nem jó.
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.
Idézet: A fejlesztőprogram a mikroC PRO for PIC v.5.6.1!„... de nem tudom milyen fejlesztőkörnyezet ez, feltelepíteni se szeretném, szóval csak sima szöveges fájlként végigfutottam...” Idézet: Ezt már néztem, és a hardver ott van, ahol lennie kell!„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).” Idézet: Félreérted, ugyanis nincs, mert az PIC16F88!„(korábban azt írtad, hogy a melegedő példányon kívül van még egy másik is)” 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á?
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 ![]()
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
Hát, az eredeti kódban sem találom a függvényt, pedig a videóban működött... :/
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
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...
Minden kontakt OK!
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...
Kezd beletörni a bicskám az egészbe!!!
![]() 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! ![]() ![]() |
Bejelentkezés
Hirdetés |