You are here

PIC -i segítség

207 posts / 0 new
Last post

Pages

Comments
Oszi11
Oszi11's picture

Szia.

az úttörő ahol tud segít!!!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

Lusi

Szia frigo !

A nyomogombod pergésmentesítve van ?
Mert ha nincs lehet hogy az okozza a hibát.
Probáld meg egy hal elemes nyomogombal. Ha jol néztem
Oszi11 prograja nem tartalmaz pergésmentesítést.

Üdv:
Lusi

0

Vote up!

You voted ‘up’

szoke
szoke's picture

Sziasztok!
Bocsánat, hogy beleugatok, de nem teljesen értem azt a dokumentumot.
Most ha valaki lenyomja 10szer a kapcsolót, akkor mind világít, ha még 5ször, akkor két szélen kettő-kettő, és ha megint 10szer, akkor a középső 4 stb stb?

Üdv: Szőke

0

Vote up!

You voted ‘up’

frigo833

Sziasztok!
Szia Szoke!

A kérdésedre a válasz az hogy ez egy diszkfénynek lenne a vezérlése.
A lényege az hogy 4 db tükröt motorok mozgatnak, megadott szögekben.
A „leddek” helyére relék vannak kapcsolva, ezek egy digitális ic bemenetére 2 jelet adnak
egy kisebb és egy nagyobb feszültséget. Ez azt eredményezi hogy egy motort egy PWM elektronikán keresztül, adott szögbe tudja fordítani.
A „nyomógomb” helyére egy másik digitális ic csatlakozik amit egy analóg erősítő léptetget,és így máris hangra kapcsolgatja az elektronikát.

Igazából azért van rá szükségem mert ki szeretném váltani egy meglévő elektronikából az
epromot mivel nagyon nehéz manapság beszerezni és mert véletlenül lejött az egyik alakjáról a takarópapír és így elvesztette a tartalmát!

Üdv Frigo

0

Vote up!

You voted ‘up’

Kalex
Kalex's picture

Szia!
Az csak virtuális nyomógomb. Ez egy futófény, ami a teljes csíkból összemegy, majd szét. "Knight Rider"
Itt megnézheted működés közben: Knight Rider
Üdv! Kalex

0

Vote up!

You voted ‘up’

Zsooti79

Sziasztok!

A véleményetekre lennék kíváncsi a következőt illetően.
Írtam egy egyszerű kis pic programot, ami egy pwm jelalakot lekövetve, minden felfutó élnél váltja, két kimenet magas szintjét. Elvileg a program szerint úgy kellene viselkednie, hogy amikor a periódusidő lejár, akkor váltja a kimenetet, de a Proteus-ban történő szimuláció azt mutatja, hogy a jelváltás a pwm impulzus lefutóélénél következik be.
Ha az mplab alól tesztelem a programot, akkor úgy viselkedik, ahogy szeretném.
Kérdésem az lenne, hogy programtechnikai hibát vétettem-e vagy a Proteus nem kezeli jól a programomat, ill. találkozott-e már valaki hasonló problémával Proteus-os szimuláció során?
A pic programot és a Proteus-os szkóp adta jelalakokat csatoltam.

Kíváncsian várom a megfejtést. :)

Üdv, Zsolti

File csatolás: 

0

Vote up!

You voted ‘up’

lezlit
lezlit's picture

Szia Zsolti,

az Oshon-féle PIC Simulator IDE programot tudnám még ajánlani.

A hiányossága - csupán port szinten tudja kezelni az "oszcilloszkópot"... :(

Viszont van egy uC view opciója, ahol lassú léptetés esetén le tudod követni a
programod lefutását.

Úgy vettem észre, valóban a lefutó élre vált a D kimeneted a szimuláció szerint.

Ez nem Proteus hiba lesz...

Üdv:
lezlit

0

Vote up!

You voted ‘up’

Zsooti79

Szia lezlit!

Érdekes, mert ha az mplab szimulátorát használom ott jól működik. Meg ha átgondolom a programot, akkor nem is működhet másképp. Amikor TMR2 = PR2, akkor PIR1 1-es bitje (TMR2IF) egybe vált és ez csak, akkor áll fent, ha a periódusidő lejár.

Üdv, Zsolti

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia Zsolti,

A programod jónak tűnik, bár ezt a megoldást direkte nem írja PWM üzemmódban az adatlap, de a TIMR2-nél olvasható. Minden valószínűség szerint találtál egy Proteus hibát!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

Zsooti79

Szia Oszi!

Köszönöm válaszod. Esetleg nem ismersz más grafikus szimulációs programot, amiben tesztelni tudnák PIC programot?
Azért nem vagyok még teljesen biztos abban, hogy nem vétettem programtechnikai hibát, mert ha a portc 2-es bitjét, azaz a PWM kimenetet figyelem és nem a PIR1 1-es bitjét, akkor jó jelalakokat rajzol a Proteus. :(

Üdv, Zsolti

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

Igen sokkal helyesebb, a portot figyelni, mert az adatlap nem említi PWM üzemmódban, a bit változását, de nem biztos, hogy nem működik a dolog. Az elgondolás jó, a bit akkor 1 ha TMR2 = PR2 és ez minden pwm periódus végén történik meg. Ki kell próbálni a hardware-n! Attól hogy nem dokumentált még működhet! Erről az öreg Z80 programozók sokat tudnának mesélni!
Sajnos nem tudok jó szimulátort, ami ennyiféle mikrovezérlőt ismer, de lehet, hogy érdemes lenne egy új témát nyitni a kérdésről. Több szem többet lát alapon!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

Zsooti79

Szia Oszi!

Azért választottam ezt a megoldást, mert sokkal szebbnek és egyszerűbbnek találom. Itt nem kell egy külön változó, ami úgymond a pwm kimenet impulzusának felfutóélét figyeli. A PWM-es fejezet, azért nem tárgyalja ill. említi meg ezt a dolgot, mert ez nem tartozik oda szorosan. Ez csak az én véleményem.

Üdv, Zsolti

Ui.: Talán majd más PIC szakértő is hozzászól és tud valami okosat mondani. :)

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia Zsolti,

No azért én nem tartom magam szakértőnek! :fun: Legfeljebb lelkes amatőr!!!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

Ckó
Ckó's picture

0

Vote up!

You voted ‘up’

vilmosd

Hali
Igy hirtelen nincs a tarsolyomban F73-hoz projekt, de ha segit, talalsz sok PIC-es (es mas) konyvet, es mintapeldakat is. A Microchip oldalarol le tudod tolteni a MPLAB IDE programot, ami tartalmaz egy ingyenes fejlesztoi kornyezetet, es ASM forditot. A fenti linken talasz Demo panel doksikat is, igaz 28 labashoz pont nem. Valamiert a link nem mukodik. Itt van siman: http://www.4shared.com/account/dir/tqHvM7p5/sharing.html?rnd=94

0

Vote up!

You voted ‘up’

frigo833

Sziasztok tudna nekem segíteni valaki?
Olyan gondom van hogy van 1 pic tartalmam és az istenek sem tudom beégetni.
Mivel sajna ez a tartalom 16c711-re van írva, ez pedig sajna tudtommal újraírhatatlan ezért csak dobálom kifele egyet már sikerült beégetnem. És működik csak sajna 4-et nem,és az sajna kuka.
16f627-re gondoltam mert még könnyen beszerezhető. És dataséban megegyezőnek tűnnek.

File csatolás: 

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

Egy próbát megér, nagy kárt nem lehet vele okozni. Ha nem használja az AD átalakítót a program akkor működhet. De 16F627-ben csak 1k program memória van, még a 16C711-ben 2k nem biztos, hogy belefér a program (nem néztem)! 16F628 inkább szóba jöhet a 2k memóriával.
Egyébként ha a sikertelenül programozott 16c711-ből kiolvasod a programot és csak nem programozta végig vagy 0 helyett 1 bit szerepel nyugodtan újraprogramozhatod, ugyanazzal a programmal, mert sikerülhet a programozás, de ha CP bit be lett állítva akkor vége a dalnak!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

frigo833

Szia köszi a választ!
Sajna be!
Nem nagyon vagyok még otthon égetésben sajna! Még csak most ismerkedünk!
Egy-épként ezt a CP bitet a hex file automatikusan kipipálja,esetleg ha kiveszem a pipát akkor lehetséges hogy ugyanúgy fog működni minden?
628-at már próbáltam égetés végén hibát hozott,vissza olvasva a tartalmat megegyezet pedig. De sajna a szerkezet sem müködött vele.

Üdv Frigo

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

Ha szerencséd van még programozásra nyitva maradtak a az IC-k a CP bit ellenére (típusfüggő), viszont olvasni már nem lehet csak a teljes törlés segítene ami az EPROM-os memória miatt nem lehetséges.
A 628-as problémát sejtetem! Amiatt, hogy más perifériák vannak benne kissé máshogy kell inicializálni a portokat, és (vagy) használatban van valamelyik ad bemenet, ami a 628-ban nincs!
A program csak hexben van meg? A program módosításával vagy csak 628-ra fordításával talán életre lehetne kelteni!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

frigo833

Szia!
Megvan másképp is! (csatolmány)
Hátha valakinek többet mond mint nekem.
Egy-épként akkor a CP jelzés valamilyen kódolás lenne?
Mert mikor benyitom a mappát IC-progban akkor ki van pipálva.
Ha megszüntetem a pipát akkor mindenre "felírja" 628,627.f84,c711.
Viszont a panel nem mükszik sajna vele! Ezért is gondolom le van kódolva hogy ne lehessen ellopni. Amivel nem is lenne semmi gond,mert én sem szeretném,hogy ha én kínlódtam vele napokat más ellopja.
De akkor legalább biztosítanám hogy meg lehessen venni.

Nem lehet esetleg ezek ellenére valahogyan mégis csak kinyerni belőle valahogyan?

Előre is nagyon szépen köszönöm!
Üdv. frigo Szép napot mindenkinek!!!

File csatolás: 

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

Jól látod a dolgot, a CP bit valóban arra való, hogy a beprogramozott vezérlőből ne lehessen "kilopni" a programot! Ha bekapcsolták nem lehet olvasni a programmemóriát. Adatlap szerint CP0 bit 1: kódvédelem kikapcsolva ha 0: a teljes memóriaterület védett de 00 - 3F területen írható marad.
Belenéztem a programba, nem tudom honnan van, de elég zagyva, se füle se farka. A uC 0 címtől kezdi végrehajtani a programot, négy számot összead a W regiszter tartalmával, ami akármi lehet, majd elugrik. 1-be állítja az egyik portot, ami nem működik mert nem inicializálta azt, majd beolvassa a b portról az adatot (amit szintén nem inicializált), aztán mullává tesz az 1-be állított portot, beállítja a megszakítást, vár 3 ciklust, és visszatér a szubrutin hívásból, ami nem történt meg, ezért a program eltéved tök kiszámíthatatlan mi fog történni, ettől a pontól fogva. Olyan az egész mintha kivágták volna program közepét és csak annyi lenne meg belőle!
A védett memóriából nehéz visszanyerni a programot! Van az interneten pár cég amelyik foglalkozik vele, de nem olcsó mulatság!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

lezlit
lezlit's picture

Szia Oszi,

így igaz.

A Peripheral Interrupt Vector 0x4 címen helyezkedik el 16F84 esetén, nem pedig itt:

ORG 0x0007
RETFIE

Ez egy rémálom...

Üdv:
lezlit

0

Vote up!

You voted ‘up’

lezlit
lezlit's picture

Szia frigo,

a CP jelentés Code Protection, magyarul, kódvédelem. Ez még véletlenül sem jelenti a forráskód "kódolását".

Ha a CP On, akkor a beégetés után a PIC további írása és olvasása le lesz tiltva. (Legtöbb esetben...)

Az általad megadott forráskód roppant hiányos, ugye tudod?

Ilyen nem fog működni -> "Include ”P16FXX.inc”"

Legalább így kellene kezdődni egy PIC16f627-es forráskódnak MPASM alatt...
(Az #include sorban a ( és a ) helyett a nyitó - záró kacsacsőrt helyettesíts be.
E forum motorja kitörli ezeket, mivel "feltehetőleg" ;) vezérlő karakterek...)

#include (p16F627.inc) ; itt határozod meg a cél PIC típusát, amire a forráskódod íródott

__config (_CP_OFF) ; itt pedig ki van kapcsolva a CP, azaz a kódvédelem (de ez még roppant kevés...)

Nem tudom, milyen programozó SW-t használsz, sem azt, milyen fejlesztő felülettel dolgozol.

Amennyiben a forráskódodban nem határozod meg a konfigurációs biteket, azokat a programozó SW-rel felül lehet bírálni.

Az általad megadott DOC -ban egy érdekes listázás látható, amely a PIC16F84 -re értendő/készült.

A konfigurációs bitek beállítása itt nem a program elején található, hanem "elrejtve", a lista végén:

ORG 0x02007
DATA 0x18

Ez a programterület csak íráskor érhető el.

A 0x18 binárisra átszámolva 11000, azaz a 39. oldala
szerint a program írója LP oszcillátort használt (00), Watchdog Timer kikapcsolva (0), Power-up timer tiltva (1) és Code Protection ki (1)...

Úgy vélem, rossz PIC típusba akarod beégetni ezt a "forráskódot".

Első nekifutásra ezzel tudlak segíteni.

Üdv:
lezlit

0

Vote up!

You voted ‘up’

frigo833

Igy van nem erre a picre íródott hanem 16c711-en volt.
Én sem értetem az egészet.
Azért is kérdezgetek dolgokat,mert zöldfülű vagyok még ehhez az egészhez.
Ezt sem én írtam csak a beolvasott pic tartalmát ic-prog-ban átváltottam assebre és átírtam word-be. Reménykedtem hátha valaki tud segíteni megfejteni valamennyire hogy helyre lehessen hozni.

üdv frigo

0

Vote up!

You voted ‘up’

frigo833

Sziasztok! Az az igazság reménykedtem benne hátha valaki tud segiteni benne hogy újra éltetett tudjak lehelni a dizsifényeimbe,mert hát sajna tönkretették. Aki csinálta az azt mondja mossa kezeit mert hát in (azt jelenti számára hogy bemenet) ez így is van csak hát mégsem az erősitő kimenetét kellene rákötni! Egyrészt ez van másrészt nem tudok vele mit kezdeni!
Csak hát ugye így van két berendezésem ami totál nem működik. Azért is gondoltam hogy a harmadikból kiveszem a pic-et és lemásolom és minden ok.
De mivel kódolt ezért nem nyert ez sem. Próbálgattam keresgélni programot neten sikertelen,felvetem olyan cégekel a kapcsolatot akik gyártanak fényeket "finoman elküldtek a ........",maradt a nyártó és ez a legszebb 5 éve megszűnt a gyártása sem alkatrészt sem más nincs hozzá! A pic tartalmat pedig nem áll módjukban illetéktelen kezébe juttatni.
Ezért próbáltam meg,hogy felrakom ide a kódolt tartalmat(hex) ill kimásoltam dokumentum formába amit lefordított az ic-prog.hátha legalább valakinek többet mond mint nekem!
De ahogy látom úgy néz ki hogy ebből sem lehet semmi használhatót kivenni ahogy írjátok!Pedig kezdtem reménykedni!
Látni hogy egyesek igen csak a velejéig ismerik a programozás csinyát binyát.Minden tiszteletem a tiétek!
Remélem így már értitek egy picit a gondomat meg hogy miért raktam fel a két tartalmat. Remélem fogok valami megoldást találni erre a problémára.
Vagy ha más kiút nincs valami vállalkozó kedvű programozót hogy hátha lehet valamilyen programot írni ami ha nem is úgy de valahogyan legalább működtesse az elektronikát.
Ha tud valamelyikőtök esetleg nekem ebben segíteni azt nagyon megköszönném!

Nagyon szépen köszönöm válaszaitokat.
Üdv! Mindenkinek szép napot!

0

Vote up!

You voted ‘up’

lezlit
lezlit's picture

Szia frigo833,

a készülék típusát meg tudod adni?
Még jobb lenne, ha van róla kapcsolási rajzod, leírása a pontos működéséről.

Gondolom, a külső bemeneted nem közvetlenül a uC-ra ment,
nézd át, hátha találsz "elégett" alkatrészeket a bemenet környékén.

Egy kép róla szintén jól jönne - feltéve, ha tudsz készíteni.

A Tanyalakók biztos tudnak segíteni a HW-ben, ebben Ők a jobbak :oke:

SW oldalról számíthatsz rám. De gondolom, a Többiek is segítenek majd... ;)

Üdv:
lezlit

0

Vote up!

You voted ‘up’

frigo833

Szia! anyit elfelejtetem hozzátenni hogy az egyi panel müködik mert müködőképes még a harmadik, és a pic-et átrakva müködik. A második is csak azért ment tönkre mert össze voltak csatlakoztatva.
Ami meg szétéget ahelyett csinálnék másik panelt. Abban legalább otthonosan mozgok.
Írtad hogy hw-en nem tudsz segíteni, abban én tudok neked amegyire konyitok hozzá.Szólj nyugottan amit lehet megoldok én is.
Pl: panelt "barmit" megtudok csinálni.Szitanyomással 100X80mm-ig a felett is csak azt már nem azzal.

Nagyon szépen köszönök mindent!
üdv frigo

0

Vote up!

You voted ‘up’

frigo833

Szia!!!
Nagyon szépen köszönöm!!
Itt van pár kép az elektronikáról kik vannak rajta.
maga a gép Datamoon névre hallgat.7 formát tud 7 különböző színben. Találtam egyetlen kapcsolási rajzot a neten de az nem ehhez való. sem a pic tip nem egyezik meg maga a felépítés sem.
Már több mint 1 hetet egyfolytában bújom a goglét de nem találok semmi értékelhetőt róla. ha sokat dob a latba kb 1,2 nap és csinálok róla kapcsolási rajzot.

A 74ls06 ic az csak egy mikromitor tranzisztor hídját kapcsolgatja ez a pic 1,2 lábára megy rá.
A 741 erősítő kimenetele egy diódán keresztül megy a pic 6-os lábára
A 74ls595 8 bites számláló szintén a pictől kapja a rezgéseket a 4,7,8,9
A tca3727 egy bipoláris léptető motor meghajtását vezérli.

0

Vote up!

You voted ‘up’

lezlit
lezlit's picture

Szia frigo833,

ennek a Datamoon-nak nincs kontrollere?
Mivel tudod irányítani a működését, azaz vannak-e kezelőszervei?

Javaslom, nyiss egy új topic-ot ez ügyben s kérd meg pihét,
ha módjában áll, tegye át ezeket a HSZ-eket oda.

Többen tudnak majd segíteni.

Üdv:
lezlit

0

Vote up!

You voted ‘up’

frigo833

Sziasztok! De van neki sajna ott küldték be rajta az erősítő kimenetet (és mivel jobban megvizsgáltam a panelt kiderült hogy a pic-re egy ellenálláson keresztül ment egyből a 17,18-as lábra és ezért szált el!)
Nincsenek rajta kezelőszervek mert a pic végezte az egésznek a kezelését
(léptetőmotor ami a figurákat lépette,mikromotor ami a tükrös parabolát mozgatta. egy kis erősítő hangra kapcsolgata a picet egy tranzisztoron keresztül testre.)Bemenet ezért volt rajta hogy össze lehessen egymásal kapcsolni 2,3,4 és ugyanakkor ugyanazt csinálják. végül is ennyi nagy hirtelen.

Sajna át kell terveznem az egész kapcsolást mert 1,2 alkatrész már beszerezhetetlen hozzá!
Szeretnék neki majd nyitni egy új topic-ot mert elképzelhető más is jár,járhat így mint én! De remélem nem fog!!
De jelenleg nem látom így értelmét mert sajna rájöttem hogy hiába lenne esetleg meg a pic tartalma valakinek akkor sem működne! mivel pl. a tca ic totál elszállt az egyik panelon és nehezen beszerezhető meg eléggé drága is!

Remélem tud akkor nekem segíteni valaki pic megírásában elkezdtem ugyan MPLAB-ba megírni meglévő tartalmak felhasználásával,de szerintem ebben az évszázadban még nem lesz kész. Nem tudom a mellékletet menyire bonyolítottam be,ezt csak magamnak írtam hogy képben legyek!
Meg tudná nekem írni valaki akinek megy is ez a programozás?
Mert én megőrülök tőle. Valahogy az istennek sem akarja azt csinálni mint amit én akarok hogy csináljon! asm-ben 16f84 kezdtem el,értek pár dolgot de egy rakás mindent nem! "A finomítgatásokkal asm-ben már én is elbánok szerintem"

Nagyon szépen köszönöm előre is ha valaki tud segíteni!

File csatolás: 

0

Vote up!

You voted ‘up’

frigo833

Sziasztok!
El is felejtettem!Én a 16f84-nek bemenetnek az 1,2 lábát használtam bemenetnek.A led kimeneteknek pedig a 6,7,8 lábat 4Mhz kristállyal.

Előre is hálásan köszönöm ha valaki segít!!
Biz isten meghálálom valahogy!!
Csak segítsetek mert én ehhez hü.... vagyok!Valamiért nem akar összejönni ez nekem!

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Sziasztok,

írtam egy progit, de tesztelni már nem tudtam mert vár a munka! :cry: A kommentezés sincs kész még, de lehet tesztelni!

Üdv,
Oszi

File csatolás: 

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Sziasztok,

kész a progi átnéztem kommenteztem. Ha a bemeneték nem prelleznek mennie kell!

Üdv,
Oszi

File csatolás: 

0

Vote up!

You voted ‘up’

frigo833

Sziasztok!
Szia Oszi11!
Minden tiszteletem a tiéd!!!
Letöltöttem a tartalmat még nem próbáltam, de nagyon megörültem neki!
Minden tiszteletem az ilyen embereké mint amilyen te is vagy!
Bármiben tudok segíteni, csak jelezd!
Végignézve a tartalmat már tudom miket rontottam el!
Kb 100 évnyi kilóódástól mentetél meg most ezzel!

Örök hálám a tiéd! Már csak azért is mert bárkitől is kértem ez ügyben segítséget ki finoman ki máshogy elküldött a fra....ba!
Nem beszélve arról amit írtam más tökre érthetetlennek ítélte meg!
Te meg érteted?!

Tényleg bármiben tudok segíteni csak szólj! (Panel legyártás,hűtőgép probléma,netán egy jó bulihoz hangulatvilágítás ....stb.

Üdv : frigo

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

Nem tesz semmit, nem túl cizellált program, de talán megteszi. Örülök ha segíthettem!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

frigo833

Szia Oszi11!

Tökéletesen működik a program amit írtál.
Bár én csesztem el pár dolgot,amit mellékletben írtam.
Mit kellene átírni ahhoz a progin hogy villogással kezdjen az "x K1 irányban" és mikor eléri az optót akkor kezdi a 100 villogást szintén K1 irányban? És mikkor abbahagyja a villogást, ne maradjon égve az X led? (a 4 bites számláló ic valamiért nem szereti)

Még valahogyan kisilabizálom hogy X kimenetről "pozitív" jelt tudjak eljuttatni a 4bittes számláló ic kényes bemenetére és tökéletes a kapcsolás!(vagy esetleg ezt is meglehet oldani szoftveresen?)

Olyan kérdésem lenne még ha tökéletes a kapcsolás akkor felrakhatom-e ide és még pár elektronikával foglalkozó oldalra? Hogy mindenkinek elérhető legyen ingyen és bérmentve a meg építéshez szükséges doksikkal és a te neveddel a (hex tartalommal mivel ez a te érdemed ne szeretném felrakni önkényesen)!

Üdv frigo

0

Vote up!

You voted ‘up’

frigo833

Szia Oszi11!

Mindent megoldottam.
Kivéve azt hogy egyből villogva induljon és mikor eléri az optót akkor
100 villogás és ezután tovább ahogy a progi van.
Ehhez mit kell megváltoztatnom a tartalomban?
Te mivel "grrebeled" át hex fájba asm-böl?

Válaszodat előre is köszönöm!
üdv: frigo

0

Vote up!

You voted ‘up’

frigo833

Szia Oszi11!

Mindent megoldottam.
Kivéve azt hogy egyből villogva induljon és mikor eléri az optót akkor
100 villogás és ezután tovább ahogy a progi van.
Ehhez mit kell megváltoztatnom a tartalomban?
Te mivel "grrebeled" át hex fájba asm-böl?

Válaszodat elöre is köszönöm!
üdv: frigo

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia Frigo,

próbáld meg a first rutint így:

first
bsf PORTB,J1
wait_strt
movlw 1
movwf FLSH_CNTR
call blink
btfsc PORTA,K1
goto wait_strt
movlw 100
movwf FLSH_CNTR
call blink
return

Így villogni fog, csak lehet lemarad a K1 jeléről, bár ha annyira zavaró hogy nem kezd villogni, akkor jó lesz. Ha nem működne, arra is van megoldás, csak egy megszakítási rutint kell írni. Ha nem jó, írj, és megoldjuk.

Üdv,
Oszi

File csatolás: 

0

Vote up!

You voted ‘up’

frigo833

Oké!
Köszi így hogy leírtad nekem is sikerült!
Már csak az optóval szívok!És kész!
Mivel optó akkor nem ad ki jelet ha takarva van tehát fordítva működik,mint a kapcsoló. Tehát akkor kellene elindulni a 100 lépésnek ha K1 kapcsolót megszakítom.

Elég ha átállítom a rutinban a btfsc PORTA,K1-et
btfss porta,k1-re?

Üdv.frigo és köszönöm szépen türelmed és segítséged!

0

Vote up!

You voted ‘up’

frigo833

Szia Oszi11!
Sikerült megoldani mindent!
Úgy működik mint a mint akinek az a dolga!

Most már csak a vezeték gombócból kell valami csinos panelt
megálmodni,és kész a remekmű!Természetesen nem győzőm hangsúlyozni
menyire hálás vagyok a segítségedért!
Ha kész mindenkinek elérhetővé teszem!

Üdv frigo

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

Nincs mit nagyon szívesen!

Üdv,
Oszi

0

Vote up!

You voted ‘up’

frigo833

Sziasztok!

Itt a megígért kapcsolási rajz!
A tartalmat nem rakom fel még egyszer hisz itt megtalálható!
Kisebb finomítás után tökéletesen működik vele!!

Még egyszer nagyon hálás vagyok mindenkinek a segítségért!!!

Üdv Frigo

File csatolás: 

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

így már érthető mitől ilyen értelmetlen a program, ha védve volt a memóriája nem lehet visszaolvasni a teljes memóriatartalmat! Neten nem lelhető fel a kapcsolás esetleg a program? Vagy ez valami egyedi megoldás?

Üdv,
Oszi

0

Vote up!

You voted ‘up’

Oszi11
Oszi11's picture

Szia,

így már érthető mitől ilyen értelmetlen a program, ha védve volt a memóriája nem lehet visszaolvasni a teljes memóriatartalmat! Neten nem lelhető fel a kapcsolás esetleg a program? Vagy ez valami egyedi megoldás?

Üdv,
Oszi

0

Vote up!

You voted ‘up’

Istvan-lab
Istvan-lab's picture

Ha LCD modult akarsz ratenni itt van egy pelda:

;
; Labbekotesek:
;
; LCD: EN RS RW D7 D6 D5 D4
; pin: 06 04 05 14 13 12 11
;
; PIC: D6 D5 D4 D3 D2 D1 D0 (PORTC)
; pin: 17 16 15 14 13 12 11
A tapot az LCD 1,2,3-as labaira teszed... ezt barhol megkapod.

A Progi:

list P=16F73,F=INHX8M,R=DEC ; Intel hexa formátum, 10-es számrendszer
#include P16F73.inc ; A szukséges INC fajl
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC&_BODEN_OFF ; Konfiguracios bitek

; van/nincs code protection ( ALL / OFF )
; van/nincs power up timer ( ON / OFF )
; van/nincs watchdog timer ( ON / OFF )
; kvarcoszcillátor (4 MHz) ( XT / LP / HS / RC )
; van/nincs Brown-Out Reset ( ON / OFF )

ERRORLEVEL 1,-302 ; 302-es hibauzenet kikapcs.
CBLOCK 0x20
w1 ;Timer 1. valtozo
w2 ;Timer 2. valtozo
w3 ;Timer 3. valtozo
w4 ;Timer 4. valtozo
w5 ;CLK

ENDC

org 0

clrf PORTA ; minden kimenet alacsony (0 V)
clrf PORTB
clrf PORTC
bsf STATUS, RP0 ; váltás az 1. bankra
MOVLW B'110' ; all pins is digital I/O
MOVWF ADCON1
MOVLW B'000000'
MOVWF TRISA ; 1 bemenet
MOVLW B'00000000' ;
MOVWF TRISB ; 0 kimenet
MOVLW B'00000000'
MOVWF TRISC
movlw b'00000110' ;'10000110'
movwf OPTION_REG
bcf STATUS, RP0 ; visszaváltás a 0. bankra
clrf INTCON
clrf PORTA
clrf PORTB
clrf PORTC

; ************ DISPLAY INIT *********************
CALL DELAY3
MOVLW B'00000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00000011' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
CLRF PORTC ; FUNCTION SET
CALL DELAY2
MOVLW B'00000010' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01000010' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00000010' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01000010' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00000010' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00001000' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01001000' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00001000' ; FUNCTION SET
MOVWF PORTC
CALL DELAY2
CLRF PORTC ; DISPLAY CONTROL
CALL DELAY2
MOVLW B'01000000' ; DISPLAY CONTROL
MOVWF PORTC
CALL DELAY2
CLRF PORTC ; DISPLAY CONTROL
CALL DELAY2
MOVLW B'00001100' ; DISPLAY CONTROL
MOVWF PORTC
CALL DELAY2
MOVLW B'01001100' ; DISPLAY CONTROL
MOVWF PORTC
CALL DELAY2
MOVLW B'00001100' ; DISPLAY CONTROL
MOVWF PORTC
CALL DELAY2
CLRF PORTC ; ENTRY MODE SET
CALL DELAY2
MOVLW B'01000000' ; ENTRY MODE SET
MOVWF PORTC
CALL DELAY2
CLRF PORTC ; ENTRY MODE SET
CALL DELAY2
MOVLW B'00000110' ; ENTRY MODE SET
MOVWF PORTC
CALL DELAY2
MOVLW B'01000110' ; ENTRY MODE SET
MOVWF PORTC
CALL DELAY2
MOVLW B'00000110' ; ENTRY MODE SET
MOVWF PORTC
CALL DELAY2
CLRF PORTC ; ENTRY MODE SET
CALL DELAY2

; HOME
CLRF PORTC ; SET FIRST LINE 1 POS
CALL DELAY2
MOVLW B'01000000'
MOVWF PORTC
CALL DELAY2
CLRF PORTC
CALL DELAY2
MOVLW B'00000010'
MOVWF PORTC
CALL DELAY2
MOVLW B'01000010'
MOVWF PORTC
CALL DELAY2
MOVLW B'00000010'
MOVWF PORTC
CALL DELAY2
CLRF PORTC

MOVLW B'00100100' ; P
MOVWF PORTC
CALL DELAY2
MOVLW B'01100101'
MOVWF PORTC
CALL DELAY2
MOVLW B'00100101'
MOVWF PORTC
CALL DELAY2
MOVLW B'00100000'
MOVWF PORTC
CALL DELAY2
MOVLW B'01100000'
MOVWF PORTC
CALL DELAY2
MOVLW B'00000000'
MOVWF PORTC
CALL DELAY2

MOVLW B'00100100' ; I
MOVWF PORTC
CALL DELAY2
MOVLW B'01100100'
MOVWF PORTC
CALL DELAY2
MOVLW B'00100100'
MOVWF PORTC
CALL DELAY2
MOVLW B'00101001'
MOVWF PORTC
CALL DELAY2
MOVLW B'01101001'
MOVWF PORTC
CALL DELAY2
MOVLW B'00000000'
MOVWF PORTC
CALL DELAY2

MOVLW B'00100100' ; C
MOVWF PORTC
CALL DELAY2
MOVLW B'01100100'
MOVWF PORTC
CALL DELAY2
MOVLW B'00100100'
MOVWF PORTC
CALL DELAY2
MOVLW B'00100011'
MOVWF PORTC
CALL DELAY2
MOVLW B'01100011'
MOVWF PORTC
CALL DELAY2
MOVLW B'00000000'
MOVWF PORTC
CALL DELAY2

DELAY2
movlw 120
movwf w1
wx1 nop
decfsz w1
goto wx1
clrw
return

DELAY3
movlw 4
movwf w3
wy3 movlw 128
movwf w2
wy2 movlw 255
movwf w1
wy1 nop
decfsz w1
goto wy1
decfsz w2
goto wy2
decfsz w3
goto wy3
clrw
return
END

Ki fogja neked irni az LCD-re hogy: PIC
Ha ez sikerult, akkor a tobbi mar menni fog.
Sok sikert!

0

Vote up!

You voted ‘up’

arpinyo

Sziasztok!
Köszönet istvan-lab nak a rám áldozott órákért. Segítségével sikerült elindítani az első
PIC áramkörömet , egy Knight-Rider Futófényt. :king:
„ két éjszaka de villog!!!” :yes:
Árpi

0

Vote up!

You voted ‘up’

Istvan-lab
Istvan-lab's picture

Nagyon szivesen, orommel hallom,
hogy mostmar eletre keltek az elektronok a PIC-edben :smiley:
Idovel meg tobbet meg fogsz tudni, pl, hogy lehet ezeket a
csunya DELAY rutinokat lecserelni elegansabb TIMER-es megoldasra,
ahol mar a program megirasakor fogod tudni hogy mennyi lesz az idozitesed.
Sok sikert !

0

Vote up!

You voted ‘up’

arpinyo

Szia!
Az órajellel voltak a problémák, nem rezgett a kvarc.

0

Vote up!

You voted ‘up’

arpinyo

Szia!
Azért nem működött mert nekem itthon csak 8 Mhz vagy nagyobb kvarckristályom van.
Én azt hittem menni fog max gyorsabban de nem!
Át kellett állítani a pic ben lévő oszcillátort „vagyis a programban XT röl HS re
Átírtam az eredetit és kezdtem mindent elölről.
Így azonnal indult…. A képen nem látszik de villog.

Árpi

0

Vote up!

You voted ‘up’

Istvan-lab
Istvan-lab's picture

Hat, igen, en sem - te sem mondtad, hogy milyen a Kvarc...
pedig kezenfekvo volt a dolog.
Mindig vannak kihivasok es ezert szep az elektronika !

0

Vote up!

You voted ‘up’

Istvan-lab
Istvan-lab's picture

Egy egyszerubb bevitelkezeles... itt mar van input-od...

Jo szorakozast...

list P=16F73,F=INHX8M,R=DEC
; Intel hexa formátum, 10-es számrendszer
#include P16F73.inc ; A szukséges INC fajl
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC&_BODEN_OFF ; Konfiguracios bitek
ERRORLEVEL 1,-302 ; 302-es hibauzenet kikapcs.
;
;
; Az In bemenetre erkezo pozitiv impulzus hatasara 5 mp utan
; az OUT kimeneten megjelenik egy 15 mp-ig tarto impulzus.
;
; PORTB 0 = IN
;
;
; PORTC 0 = OUT
;
;
CBLOCK 0x20
w1, w2, w3
ENDC

org 0

START
bsf STATUS, RP0 ; switch to bank 1.
MOVLW B'110' ; all pins is digital I/O
MOVWF ADCON1
MOVLW B'000000'
MOVWF TRISA ; 1 input
MOVLW B'00000001'
MOVWF TRISB ; 0 output
MOVLW B'00000000'
MOVWF TRISC
movlw b'11000000'
movwf OPTION_REG
bcf STATUS, RP0 ; switch to bank 0.
BSF INTCON,RBIE
clrf PORTA
clrf PORTB
clrf PORTC

;************ A FOPROGRAM *****************
LOOP
CALL DELAY2
BTFSS PORTB,0
GOTO EX
CALL DELAY2
BTFSS PORTB,0
GOTO EX
CALL DELAY2
BTFSS PORTB,0
GOTO EX

CALL DELAY1

BSF PORTC,0
CALL DELAY3
BCF PORTC,0

EX
BCF PORTC,0
BCF PORTC,1
SLEEP
GOTO LOOP

DELAY1
movlw 35
movwf w3
wl3 movlw 128
movwf w2
wl2 movlw 255
movwf w1
wl1 nop
decfsz w1
goto wl1
decfsz w2
goto wl2
decfsz w3
goto wl3
return

DELAY2
movlw 79
movwf w1
wx1 nop
decfsz w1
goto wx1
clrw
return

DELAY3
movlw 128
movwf w3
ww3 movlw 128
movwf w2
ww2 movlw 255
movwf w1
ww1 nop
decfsz w1
goto ww1
decfsz w2
goto ww2
decfsz w3
goto ww3
return

END

0

Vote up!

You voted ‘up’

Istvan-lab
Istvan-lab's picture

Itt Egy Knight-Rider Futofeny progija:
Az Osszes PORT kimenet !
MPLAB-ban kompillald le es a kapott HEX filet ird a PIC-be !
PIC16F73-ra optimalizalva !

list P=16F73,F=INHX8M,R=DEC
; Processzor 16F73A, Intel hexa formátum, 10-es számrendszer
#include P16F73.inc ; A szukséges INC fajl
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC ; Konfiguracios bitek

;Nincs code protection, van power up timer, nincs watchdog timer, kvarcoszcillátor (4 MHz)

ERRORLEVEL 1,-302 ; 302-es hibauzenet kikapcs.

cblock 0x0c

w1 ;Timer 1. valtozo
w2 ;Timer 2. valtozo
w3 ;Timer 3. valtozo
w4 ;Timer 4. valtozo
endc

org 0

bsf STATUS, RP0 ; váltás az 1. bankra
MOVLW 0x06
MOVWF ADCON1
MOVLW B'000000' ; 1 = bemenet
MOVWF TRISA
MOVLW B'00000000' ; 0 = kimenet
MOVWF TRISB
MOVLW B'00000000' ;
MOVWF TRISC
MOVLW B'10000111'
MOVWF OPTION_REG
bcf STATUS, RP0 ; visszaváltás a 0. bankra
clrf INTCON ; nincsenek megszakítások
clrf PORTA
clrf PORTB
clrf PORTC

SCAN
BSF PORTC,0 ; 1-re allitja az x-edik bitet
CALL DELAY
BSF PORTC,1 ; 1-re allitja az x-edik bitet
BCF PORTC,0 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,2 ; 1-re allitja az x-edik bitet
BCF PORTC,1 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,3 ; 1-re allitja az x-edik bitet
BCF PORTC,2 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,4 ; 1-re allitja az x-edik bitet
BCF PORTC,3 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,5 ; 1-re allitja az x-edik bitet
BCF PORTC,4 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,6 ; 1-re allitja az x-edik bitet
BCF PORTC,5 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,7 ; 1-re allitja az x-edik bitet
BCF PORTC,6 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,0 ; 1-re allitja az x-edik bitet
BCF PORTC,7 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,1 ; 1-re allitja az x-edik bitet
BCF PORTB,0 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,2 ; 1-re allitja az x-edik bitet
BCF PORTB,1 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,3 ; 1-re allitja az x-edik bitet
BCF PORTB,2 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,4 ; 1-re allitja az x-edik bitet
BCF PORTB,3 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,5 ; 1-re allitja az x-edik bitet
BCF PORTB,4 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,6 ; 1-re allitja az x-edik bitet
BCF PORTB,5 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,7 ; 1-re allitja az x-edik bitet
BCF PORTB,6 ; 0-ra allitja az x-edik bitet

CALL DELAY ; IRANYVALTAS

BSF PORTB,6 ; 1-re allitja az x-edik bitet
BCF PORTB,7 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,5 ; 1-re allitja az x-edik bitet
BCF PORTB,6 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,4 ; 1-re allitja az x-edik bitet
BCF PORTB,5 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,3 ; 1-re allitja az x-edik bitet
BCF PORTB,4 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,2 ; 1-re allitja az x-edik bitet
BCF PORTB,3 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,1 ; 1-re allitja az x-edik bitet
BCF PORTB,2 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTB,0 ; 1-re allitja az x-edik bitet
BCF PORTB,1 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,7 ; 1-re allitja az x-edik bitet
BCF PORTB,0 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,6 ; 1-re allitja az x-edik bitet
BCF PORTC,7 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,5 ; 1-re allitja az x-edik bitet
BCF PORTC,6 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,4 ; 1-re allitja az x-edik bitet
BCF PORTC,5 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,3 ; 1-re allitja az x-edik bitet
BCF PORTC,4 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,2 ; 1-re allitja az x-edik bitet
BCF PORTC,3 ; 0-ra allitja az x-edik bitet
CALL DELAY
BSF PORTC,1 ; 1-re allitja az x-edik bitet
BCF PORTC,2 ; 0-ra allitja az x-edik bitet
CALL DELAY
BCF PORTC,1 ; 0-ra allitja az x-edik bitet

GOTO SCAN

DELAY
movlw 1
movwf w4
wx4 movlw 128
movwf w3
wx3 movlw 255
movwf w2
wx2 movlw 255
movwf w1
wx1 nop
decfsz w1
goto wx1
decfsz w2
goto wx2
decfsz w3
goto wx3
decfsz w4
goto wx4
clrw
return

0

Vote up!

You voted ‘up’

arpinyo

Köszönöm! Na asszem ma se alszok :rohog:

0

Vote up!

You voted ‘up’

Istvan-lab
Istvan-lab's picture

Irhattal volna egy PM-et, hogy mivel kinlodsz... van peldaaramkorom dogivel :P

0

Vote up!

You voted ‘up’

arpinyo

Szia!
Köszönöm , írok .
Árpi

0

Vote up!

You voted ‘up’

Pages

More similar content