Fórum témák
» Több friss téma |
Fórum » PIC programozás
Sziasztok szeretném megkérdezni tudna e valaki nekem segíteni egy program átirásában egy óra programja lenne? Ha igen légy szíves írj rám a a részletekkel kapcsolatban. A segítséget köszönöm !!
Sziasztok!
Egy PIC18f4620-val szeretnék egy lcd-t működtetni. Sajnos mivel nagyon kezdő vagyok, nem sikerült még egy olyan programot írni ami azt csinálná amit szeretnék. Nem küldene valaki egy szimpla MPlabban, c nyelven írt forráskódot, ami legalább egy karaktert kiír a kijelzőre? Esetleg egy kis bekötési rajzzal mellékelve...de a programon van a lényeg. Előre is köszönöm...
Persze, hogy szétnéztem, de sajnos vagy külön programot kaptam bekötés nélkül, vagy bekötést program nélkül. Még nem vagyok annyira profi szinten, hogy egy programból a bekötést ki tudjam szűrni.
Magamtól is próbáltam írni programot. Szintaktikailag helyes is volt, de nem írt ki egy karaktert sem a kijelzőre. A fenti kérdést már csak elkeseredettségemből írtam ki, mivel már több napja ezen kínlódok. Na meg persze reménykedtem abban, hogy egy rutinosabb PIC programozónak hányódik egy ilyen lcd-s projekt, amit nem sajnál elküldeni. Esetleg 10 perc alatt összedob egyet.
Üdv!
http://esca.atomki.hu/PIC24/lcd.html Itt egy jó kis összefoglaló az LCD vezérlésről c-ben. Nagyon fontos,h az LCD-ket programban inicializálni kell (pl. megadni,h hány bites üzemmódban használod, törölni a képernyőt a végén stb.)és csak azután tudsz bármit is kiíratni rá, de mindezt elég jól leírják ezen az oldalon: http://esca.atomki.hu/PIC24/lcd.html (leírás+ kapcsirajz+példaprogram) Nekem ezen leírás alapján sikerült írnom HITECH C-ben is egy vezérlő progit. Én spec egy dologgal szívtam igaz nem sokáig, de azért figyelj rá te is, h én kiraktam a kontraszt lábot ugye egy osztóra potival és belőttem középállásba, majd megírtam a programot és istennek se írt ki semmit, majd kb. 1 óra szarakodás után rájöttem,h talán tekernem kéne kicsit a potin és lám, rögtön ott volt a szöveg. ![]() ![]()
Szia!
Ezért kezdődnek úgy a jótanácsok, hogy a kontraszt potit úgy állítjuk, hogy lássuk a kockákat ![]() Steve
Nem nagyon szoktam kész kódokkal dobálózni, mert nem tanultok belőle semmit, csak beültök a készbe, de legyen.
Ez egy soros porton keresztül vezérelhető LCD kijelző meghajtó 16F628A-val, programból állítható kontraszttal és háttérvilágítással. Bekapcsoláskor kiírja a verziószámát, így ellenőrizheted, hogy jól működik-e. A többit nem nehéz kitalálni a program megjegyzéseiből. Készíteni kell neki egy Hi-Tech C projectet, felvenni a *.h fájlokat és a c forrást is a project fájl ablakba. Ha lefordul, lehet használni, módosítani, ahogy neked kell.
Köszönöm szépen.
Talán igazad van, de mint írtam, végső elkeseredettségemben vettem rá magam, hogy ilyent kérjek. Már pár napja csak ezt böngészem, kutatom, próbálom, de egyszerűen nem jött össze. Mindegy...nem magyarázkodom tovább. Örök hálám. Idézet: PIC4520-ra van több példa is. Gondolom a 4520->4620 átírás könnyen megoldható. Arra ügyelj, hogy nálam történelmi okokból 20 MHz-es kvarccal megy a PIC18 oszcillátora (ehhez kell viszonyítani a késletetési ciklusokat). „Egy PIC18f4620-val szeretnék egy lcd-t működtetni. Nem küldene valaki egy szimpla MPlabban, c nyelven írt forráskódot, ami legalább egy karaktert kiír a kijelzőre?”
Köszönöm szépen. El sem tudod hinni, hogy most mennyire jól jött ez az oldal.
Köszönöm neked is. Tényleg nagyon jól leír mindent.
Hali mindenkinek! a következő problémával zaklatnálak titeket. Adott egy automata akkutöltő, aminek a vezérlése pic 16c71-el van megoldva. sajnos a az egyik ilyen vezérlőből kihalt a pic. a működőből kiolvastam a programot, szerencsémre nem volt levédve. Willeprom-om van, elvileg az is tudja progizni ezt a típust, de valamiért nem működik felprogramozás után. Kellene 1 pic programozó, valami specifikusabb, az ár "nem számít" 40-60 ezer között, nézegettem neten, de nekem nem mond semmit, az az információ, mivel eddig én nem foglalkoztam pic-el.
A pic 20Mhz-es külső kristályról jár. programozáskor mire kell figyelni, mit kell beállítani? Mert lehetséges hogy egyrészt ezért nem működik a felprogramozott pic. Ill használható helyette pic 16c711? vagy valami f-es széria? mert így egy tucat megy ki a kukába :S
Szia!
Úgy sejtem le volt védve. Amit kiolvastatsz az csak a program egy része. Régen foglalkoztam már ezzel, de így rémlik. Ne költs tízezreket feleslegesen új égetőre. Sokáig egy Propic2 égetővel égettem. Olcsó. Kapcsolást találsz a neten. Az Icprog szoftverrel tudod használni. A pic kiváltásához vesd össze az adatlapjaikat a regiszter kiosztás szempontjából.
Ha le volt védve, van rá mód hogy valahogy mégis kiolvassam a teljes programot? A pic programozó céges érdek, tehát mindenképp vételre kerül sor, nem építésre, ezért fontos tudnom milyen típust érdemes venni. 40-60 ezer forintos keret van rá. Köszönöm az eddigi infót.
Idézet: Az általad említett költségkeret nagyságrendjében nem lehetséges. Azért védelem...„Ha le volt védve, van rá mód hogy valahogy mégis kiolvassam a teljes programot?”
Aktivált kódvédelem mellett csak a programmemória első 64 szava, és utolsó szava olvasható ki sikeresen, a többi memóriahely olvasása nulla értéket ad vissza. ezt olvastam, tehát tényleg!.
az említett pic memóriamérete 1k. a kiolvasott hex fájl-t megnyitva, gy látom, hogy megvan az egész program, tehát nem csak az elsó 64 szó, hanem minden mellékletben csatolom. Ha úgy látjátok ti is hogy tényleg megvan a teljes program, kérnék egy kis segítséget, mire kell odafigyelnem progizásnál, mit kell beállítanom. Idézet: „Aktivált kódvédelem mellett csak a programmemória első 64 szava, és utolsó szava olvasható ki sikeresen, a többi memóriahely olvasása nulla értéket ad vissza. ezt olvastam, tehát tényleg!.” Biztos volt olyan PIC is, ami így működött, de amit én olvastam, annál meg minden kódszó kiolvasható volt, de az alsó és felső bitjeik össze voltak XOR-ozva egymással, azaz láttál "valamit", de az használhatatlan volt programként.
A 16c71 adatlapja azt írja hogy a kódvédelmét vagy teljesen ki lehet kapcsolni vagy a teljes tartalmat ki lehet olvasni(67old.). Ez nekem azt sugallja hogy nem volt levédve
A 16C711 jó lehet helyette, esélyes, de olvasd végig az adatlapját. Aztán ott van még 16F716 is. Időközben az ICproggal disassembláltam a HEX-t. Nem tudom a 16F84 utasításai a 16c71-el mennyiben vannak pariban. Az eredmény csatolva. A hozzászólás módosítva: Szept 20, 2012
Szia!
Az utasításkészlet egyezik, de jobb, ha 16C71 -ként fordítod vissza. A PICDisasm képes rá. Érdemes egy kicsit átdolgozni a programot a 16F716 -ra (240 Ft + Áfa a ChipCad -nál), az egy PICKit2 -vel programozható. Sajnos a C típusok (a 16C84 és 16C83 kivételével) a programozáskor nagyobb áramot fogyasztanak, mint amit a PICKit2 elő tud állítani. Több apró eltérés van: A 16F716 -ban a ram 0x20 -tól kezdődik, a 16C71 -ben 0x0c -től, Az ADIF bit a PIR1 -ben a 6. biten, a 16C71 -ben a ADCON 1. bitje volt. stb. A program igen rövid, így néhány óra alatt át lehet alakítani... Nem érdemes a 16C7xx -et programozni képes égetőre sokat költeni. A hozzászólás módosítva: Szept 20, 2012
Konvertáltam PICDisasm-el.
Sziasztok
Keresek egy olyan személyt aki irna nekem egy programot******** Az apróban hirdess, a fórumban tilos- moderator A hozzászólás módosítva: Szept 26, 2012
Sziasztok! Egy érdekes problémával fordulnék hozzátok. Egyszerűen nem tudok rajta túljutni. Adott egy PIC16F877 és egy PC. A kettő közt soros kommunikáció folyik ami rendben is van RCREG-be megérkezik az adat rendesen. Megszakításban szeretném lekezelni azt hogy mi történjen, adott paracsra adott kimenetek kapcsoljanak be. A problémám az hogy MPLAB-ban figyelve azt látom hogy RCREG-be megjön az adat PIR1,RCIF be is billen, de nem történik semmi a megszakításban. Semmi nem változik, mintha egyszerűen csak kilépne. Mellékelt kódban minden látszik, ha nem voltam egyértelmű akkor sorry, kérdésre pontosítok.
Kérlek vegyétek figyelembe hogy ez még csak egy félkész program ,lehetnek még benne egyéb hibák is, de eddig sajnos még csak eddig jutottam el a hibakeresésben...itt elakadtam. Köszönöm az ötleteket előre is!
Furán tördelte...tisztább átláthatóság érdekében csatolom az ASM-et
Ugy induloban 1.: az IT lekezelesenel a belepeskor mented a regisztereket, de a kilepesnel neñ allitod vissza. 2.: A Option a bank1-ben van. 3.: ITben nem varakozunk, mint nalad a TX rutinban.
Ugy hirtelen ennyi.
Köszönöm a segítséget! Ott a pont, a probléma a bankváltásoknál volt. Igaz az hogy az option a bank1-ben van ebből a szempontból nem okoz galibát, de a PIE1 is és az már igen!
![]() ![]() Annyiban megvédeném magam, hogy a mentett regisztereket visszatöltöm a reqend címke alatt... ![]()
T es T Meg valami. A cblock jobb helyen lenne a 0x70 cimtol, mert ezt mindenhonnan latod. Foleg a mento regisztereknel fontos, mert nem kell a bankvaltasra figyelni.
A hozzászólás módosítva: Nov 21, 2012
Idézet: Ez vegulis az IT feladatanak ellentmond. Az IT feladata az idoben ritkan elofordulo esemenyek lekezelese. Viszont ha Te lefoglalod egy esemennyel az IT-t, nem tud masik esemenyre reagalni, igy ott elofordulhat adatvesztes, egyebb problema. Pl az USART vetelnel jelenthet problemat, hogy ugye a RX buffer betelik, mert nem olvastad ki. Ettol bebillen az overrun bit, es leall a vetel. Maris ott a problema azert mert a vetelnel nem jutottal idoben a lekezelesre. „Viszont azt nem tudtam hogy ITben nem várakozunk”
Meg egy hiba: Fontos!!!!! IT-bol Retfie utasitassal lepunk ki nem Retun-al.
A hozzászólás módosítva: Nov 21, 2012
Huh! Köszönöm a tanácsokat, úgy érzem lesz mit korrigálni...
![]() Mplab-ban szeretném debugolni a soros vételt. Tudom hogy valós időben nem képes rá,de nekem teljesen elég látni hogy az RCREG-ből kimentett cuccok mik. A probléma az hogy elküldöm a soros adatot, és rá két másodpercre kapcsolom ki a debugger "Run" funkcióját és azt látom hogy ez a szegény PIC még mindig az IT-ban vesztegel holott azt már leredukáltam csupán ennyire:
Adatot elküldtem többször is RCREG üres, DATAIN üres, RCIF=0, mégis megszakításban?? Nem értem...összes többi megszakítás letiltva. Megint én rontottam el valamit, vagy csupán az MPlab járatja velem a bolondját? Van ilyen tapasztalat valakinek? Köze lehet a PGD, PGC lábaknek ehhez? Abból gondolom hogy ugye PORTB 4-7,ig meg tud szakítani, bár jelenleg ez is ki van kapcsolva. Mellékelem a komplett ASM-et is hogy tiszta legyen. |
Bejelentkezés
Hirdetés |