Fórum témák

» Több friss téma
Fórum » Előgyújtás-szabályozás (PIC-kel is)
Lapozás: OK   3 / 3
(#) szikorapéter válasza Jax hozzászólására (») Feb 10, 2017 /
 
Először is milyen programnyelvet ismersz? Mennyire vagy jártas az elektronikában?
(#) Jax válasza szikorapéter hozzászólására (») Feb 10, 2017 /
 
Sajnos egyenlőre annyira hogy egy analóg áramkört bármikor megépítek, vagy megpróbálok tervezni.
De kész vagyok tanulni, csak sajnos nem tudom hol kezdjem a dolgot.
(#) szikorapéter válasza Jax hozzászólására (») Feb 10, 2017 /
 
Először is olvasd végig ezt a topicot teljesen az elejétől a végéig,aztán a szerzett tapasztalatok alapján válassz mikrovezérlőt ,ami a feladatkörödnek megfelel. Aztán állísd fel a kritériumokat amiket a kapcsolásnak tudnia kell,és ehhez mérten tervezd meg. Amint ez megvan már csak a program hiányzik,azt meg leginkább C-ben tudod megírni,bár ez sem 5-10p -es munka.

Mod.: Ha elakadsz valamiben menet közben írsz nekünk és mi segítünk,de nem tervezhetünk meg mindent.
A hozzászólás módosítva: Feb 10, 2017
(#) Jax válasza szikorapéter hozzászólására (») Feb 11, 2017 /
 
Rendben, köszönöm a gyors választ! Akkor még jelentkezem!
Üdv!
(#) Jax hozzászólása Feb 17, 2017 /
 
Sziasztok!

Nos.. Olvasgattam, jártam sok sok oldalon, és szó-szó lett némi fogalmam az assembly-ről.
Egy LED villogtató programot lemásolva, hibás programként rájöttem hogy B port helyett A portra érdemes átváltanom, és kicsit a parancsokkal játszva sikerült belőle egy futófényt csinálnom 4 LED-re, de ezt is csak egy pic simulátorral.

Na most ezt megismerve rájöttem, milyen nehéz megírni egy programot, és még tanulnék, de már nem tudom honnan.. Van két asm fájl, amik segíthetnének ebben, de a simulátorral nem tudom leellenőrizni a működést, mivel nem ismeri a program, az adott pic-et.
Az egyik legnagyobb gondom, hogy nem ismerem a parancsokat, nem tudom hogy lehetne beállítani, hogy az adott PIC (hasra ütök) 13-as lábát szeretném bemenetnek használni, oda kötném a Hallt, a 26-os lábát pedig kimenetnek, oda kötném a végfokot. (itt még nem is volna talán gond, kinézem PDF-ből, beírom parancsba, hogy BCF PORTB és akkor az egy kimenet lesz pl.) de hogy adom meg a számítást, hogy a bemeneten teszem fel 1000Hz-es jel (1000RPM), az adott FHP után mondjuk 360°-5°-os jelet adjon ki? Szintén, pl 1500-as fordulaton mondjuk lenne 360°-6° mondjuk.
Remélem érthetően zagyváltam
(Ehhez egy komoly PIC-ező segítsége kéne, és ha itt lakik valahol Hódmezővásárhely körül, akkor személyesen is vennék tőle órákat!)
Köszönöm Előre is!
A hozzászólás módosítva: Feb 17, 2017
(#) bbatka válasza Jax hozzászólására (») Feb 17, 2017 /
 
Ha gyorsan szeretnél eredményt elérni, akkor valamilyen fejlettebb nyelven érdemes programot írni. Basic nyelvre van egy ingyenes fejlesztő környezet. Most ismerkedek vele. Úgy tűnik elég gyors kódot készít. Great Cow Basic
Ettől függetlenül az adott PIC-et meg kell ismerni. A Microchip oldalán az adatlapokban minden megtalálható.
(#) Jax válasza bbatka hozzászólására (») Feb 17, 2017 /
 
16F87
Ezt a Pic-et néztem ki. Angol nyelvtudásom nem a legjobb sajnos, de azt sem tudom, miket kell PIC esetében néznem.. Más integrált áramkörökben, megy a dolog, de még ismerkedek a PIC-ekkel.
Leszedtem a programot, már csak kikéne ismernem nézek pár videót róla vagy valamit..
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
Icsern WEB oldala nagyon jó, bár a 18F sorozattal foglalkozik és nem tudom miért, nálam megbolondult a böngésző. Az ékezet megjelenítéssel van probléma. PICULA
A 18F sorozatú PIC-ek gyorsabbak a 16F sorozatúnál. Később ha úgy gondolod tudsz váltani.
A Great Cow Basic egyébként támogatja a 16F87-et.
Egy másik oktatóanyag.
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Köszönöm a Linket, nem bolondult meg a böngésződ, az oldal ilyen
Nemrég voltam egy elektronikai szaküzletbe, ott azonnal az AVR-t ajánlották, hogy az sokkal egyszerűbb, és okosabb, olcsóbb.. szóval most megkettőztem, hogy merre is kéne forduljak.. egy biztos, ha az egészet nem tudom kihozni 20ezer alatt, ráhagyom, mert 18000 egy IGC 60..
De egyenlőre még az építés mellett állok!
(#) szikorapéter válasza Jax hozzászólására (») Feb 18, 2017 /
 
Elég kis idő alatt sokat fejlődtél,mind kérdés mind tudás szinten. Ha érdekel én felkínálok neked egy arduino nano-t ,a többit megbeszélhetjük privátban. Az arduino-hoz írtak elég sok hasonló szoftvert,ahol kezelik a fordulatszámot,vagy épp csak feldolgozza és listázza sd kártyára. A lényeg az hogy abban egy része már megvan a te programodnak csak vissza kell szedni.
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
Maradj a PIC-nél. Jobb a dokumentáltsága. Egyébként is több a lehetőség. (példa programok, fejlesztőkörnyezetek,stb) 2002-ben kezdem el PIC-el foglalkozni, ha annyira nagy lehetőséget láttam volna az AVR-ben akkor abba az irányba fordultam volna.
Inkább a PIC18F sorozat irányába mozdulj el, mert szerintem szükséged lesz a nagyobb sebességre.
(#) Jax válasza szikorapéter hozzászólására (») Feb 18, 2017 /
 
Köszönöm a dicséretet, de nem érzem úgy hogy sokat fejlődtem volna. Ahogy beszélgettem a srácokkal a boltban, olyanokat mondtak, hogy csak pislogtam.. Szóval még rengeteget kell tanulni.
Írok Privátban nem sokára!
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Oké, akkor eddig 1-1 a PIC és az AVR részére is!
A P18FXxx felé nem mertem elmenni, mert túl komolynak néztem, és nekem elég volna egy egyszerű 8 lábas kis ketyere is csak elég gyors legyen. 15000-HZ-ig képes legyen feldolgozni az adatot, és kitudja számolni az előgyújtást. (Barátaim agyon tuningolt Simsonjai képesek 13000-et forogni.)
Nekem csak a gyári 50-es marad meg, nem akarom forgatni túlzottan, csak olyan alapjáratot szeretnék hogy számolni lehessen..

A lényegre visszatérve kicsit elakadtam.. Találtam egy cikket a PIC megismeréséről itt, de nem volt képes feldolgozni a sok inputot az agyam..
Nem ismerem még mi az a regiszter, mi az a megszakító vektor..
Értem én hogy pl. ha kapálok és megnyomják a csengőt, akkor az egy megszakítás, mert a haverom kint kártyázik a kapuban, és várja, hogy odamenjek.. De akkor se értem, mikor kell alkalmaznom.. Pl. akkor amikor a motor az FHP-ra ér? És Hogy akkor kell elkezdeni kiszámolni a szögsebességet, majd megfelelő pontra időzíteni a szikra jelét?
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
A PIC programja általában egy főprogramból áll és az meghívhat alprogramokat. A főprogram egy végtelen ciklus amit a mikrovezérlő újra és újra végrehajt.
A megszakítás (interrupt) lényege, hogy egy különleges alprogramon folytatódik a program futása. Vagyis kilép a főprogramból egy külső jel hatására. pl. Valamelyik lábra engedélyezed a megszakítás és úgy állítod be hogy a külső jel felfutó élére váltson ki megszakítást. Amint a külső jel feszültsége meghaladja a PIC adatlapjában lévő értéket akkor a program a megszakítási rutinon folytatódik tovább. Amint befejeződik a megszakítási rutin a program futása a főprogramban folytatódik. A megszakítási rutin gyors beavatkozást tesz lehetővé.
Abban az esetben ha elég gyors a PIC és pici a főprogram elképzelhető hogy nem kell használni megszakítást.
A PIC18F sorozatnál már bonyolultabb a helyzet. Két megszakítási vektor cím van. Ezen felül priorizálni lehet az egyes megszakításokat.
"Nem ismerem még mi az a regiszter, mi az a megszakító vektor"
Semmi különleges. Egy csak egy programsor címe. A PIC16F87 esetében "0004h"
Ezen folytatódik tovább a megszakítási rutin. Ugrási cím.
Basic programozásnál ezzel nem kell foglalkozni.
A regiszter. A program memória fenntartott címei. Ezeket beállítva , ezekbe 0-át vagy 1-et írva a mikrovezérlő hardvereit lehet utasítani valamire. pl. megszakítás engedélyezés.
Remélem nem fogalmaztam túl pontatlanul. 10 éve programoztam utoljára assemblyben.
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Értem, tehát, ha én azt mondom egy regiszternek hogy 1, akkor azzal engedélyezem az adott port kimenetén hogy aktív, vagy sem?
Megszakítás vektor meg úgy vettem ki a szavaidból, hogy nekem kelleni fog.
És akkor pl főprogramrészbe kellene megírnom magát a programot, hogy mit figyeljen, és ott kell meghívnom azt az alprogramot, ami végül is, a kimenetet szabályozza?
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
Igen a megszakításra szükséged lesz. És ráadásul két megszakítás között el kell végeznie a mikrovezérlő programjának mindent és felkészülve kell várnia az új megszakítást.
A megszakítást az engedélyező bitek segítségével engedélyezned kell. Ha le van tiltva, akkor nincs megszakítási rutin. A megszakítási rutinban törölnöd kell a megszakítást jelző bitet. (flag)
Pontosan tisztában kell lenned azzal, hogy mennyi idő alatt futnak le a programod részei. Arra gondolok, hogy rossz esetben nagy fordulatnál kihagy a gyújtás, mert a mikrovezérlő nem tudja lekövetni. Na ekkor jöhet a PIC18F széria. Basic-ben megírt program módosítása csak néhány perc 16F-ről 18F-re.
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Nagyjából értem.. Esetemben, az én motorom talán 6000-ig foroghat ki. Na most azt szerinted képes feldolgozni a 16F? Mert nyilván egy tuning mocinál már 18F kell.
(#) Jax hozzászólása Feb 18, 2017 /
 
Kérdés, hogy mit akart mondani ezzel, a szerző: "Ezek a belső perifériák nem rendelkeznek külön kivezetésekkel ezért ha egy perifériát használunk az a 33I/O rovására működik, viszont baromi sok programozástól és szenvedéstől szabadít meg minket." Nem tudom kivenni, hogy most mit akarhat mondani, nem a megfogalmazás miatt, pusztán nem értem. :\
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
Passz! Kezd el írni a programot aztán majd meglátod.
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
Egy lábra általában több funkció van kivezetve és te döntöd el hogy mire használod. pl. analóg A/D átalakítás, digitális , UART, I2C stb
(#) bbatka válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Még annyit, hogy a Timert biztosan használnod kell majd az idő múlásának mérésére. A két megszakítás közötti értékre gondolok. Nézz bele ennek a programjába.
A hozzászólás módosítva: Feb 18, 2017
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Értem úgy lassanként..
Már csak egy élő példa kellene egy ilyen programra, amit részről részre eltud nekem magyarázni valaki
Amúgy ha jól sejtem, akkor a BSF parancs a logikai 1 lenne, tehát azzal tudom a portot bemenetnek állítani.

Na most úgy képzeltem el a programom, hogy lefoglalok egy memóriaterületet, most legyen a 20-as, bár azt nem tudom hogy mik közül választhatok, és mi értelme a dolognak vagy hogy melyiket célszerű (ezeket senki sem írja le cikkekben).
Aztán elindítom a picet org 0000 -val
Aztán ugróparancs a beállításokra, itt megmondom neki, hogy a b4 a bemenet, a b5 a kimenet,
majd eztán kellene beállítani a megszakítás vektort, amihez még most sem konyítok sajnos.. Nem tudom mihez kell állítani, hogy hajtsa végre ( van egy asm fájlom erre a vezérlőre, pont ebben a fórumban találtam egyujt.rar fájlban de nem tudtam még értelmezni a parancsokat)
Majd eztán jönne főprogram rész
A hozzászólás módosítva: Feb 18, 2017
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Igen komoly kis programot raktál össze.. őszintén csak pislogok mi-micsoda..
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
Hagyd az Assemblyt a fenébe, Basicben kezdj neki. Gondolom nem hónapokig akarod írni a programot.
A világításvezérlő programját néhány óra alatt írtam meg és még agyaltam az elméleti részén is. Fejlett nyelven sokkal gyorsabb a fejlesztés. Persze ettől függetlenül az adott PIC hardvereivel, regisztereivel tisztában kell lenni.
A hozzászólás módosítva: Feb 18, 2017
(#) Jax válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Már régen a basic-al szenvedek, de csak azt láttam eddig, hogy próbálja kitalálni a parancsokat. Nem ismerem, de itt is assemblybe írja nem? Vagy más módja is van?
Betettem a te programodat is, meg egy egyujt nevű hexet is, ezeket próbálom értelmezni, de nem igen megy. Az egyujt egyébként egy olyan progi, amit már valaki elkezdett a vezérlőhöz, de hibás valahol.
(#) bbatka válasza Jax hozzászólására (») Feb 18, 2017 /
 
A világításvezérlőm programját Picsimulatoride fejlesztőkörnyezetben írtam. A Great Cow Basic kicsit eltérhet tőle. A Great Cow Basic -zést azzal kezdtem, hogy a példa programjait tanulmányozgattam. Ezt javaslom neked is. Gyorsan összefog állni a kép. Egyszerűbb az Assemblynél.
A világításvezérlő programjához nagyon hasonló lesz a te programod is. Ott a hálózati nullátmenet váltja ki a megszakítást és ehhez tologatja a fázishasítás szögét.
A bas kiterjesztésű fájlt bármelyik szövegszerkesztővel is meg tudod nyitni.
(#) bbatka válasza bbatka hozzászólására (») Feb 18, 2017 /
 
Keresgéltem a Timer számító programot amit régen használtam. Nem találom, de mindegy mert azóta már online is van jó néhány. Erre biztosan szükséged lesz
(#) HA3GX hozzászólása Máj 23, 2018 /
 
Sikerült valakinek összehozni egy működő programot?
Következő: »»   3 / 3
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