Fórum témák
» Több friss téma |
Köszönöm. Már olvasom is.
Igen, sikerült megtalálnom, és értelmeznem.
Én ezt írtam be: osccon = 00101010; (125kHz) Te pedig ezt: 1(4xPLL bekapcsoltad, ez nem tudom mi)1110(8Mhz vagy 32Mhz)10(internal clock) Sajnos ettől még nem állítódott be az időzítés. Ebből a frekvenciából lesz egy periódus idő (1/f) Azzal mit kell csinálni? Gondolom számolni. De akkor minek van a delay block a flowcode-ban? Vagy valamit nem tudok... A hozzászólás módosítva: Dec 5, 2013
osccon = 01101010; 4Mhz, PLL kikapcsolva.
Ezt írtam be, mert az órajelnél nem volt 32Mhz, sem 8Mhz, 1,2,4,10,12Mhz van. Átállítottam, de az időzítés nagyon hosszú lett....sajnos. Én bénázok? Most nézem amit küldtél. A hozzászólás módosítva: Dec 5, 2013
Köszönöm.
Ezt értettem, amit programoztál. Ettől függetlenül a delay változóértéke 50. A funkciónál, amit meghívok, ott miliszekundum van beállítva, tehát 50ms a késleltetés. A valóságban meg 500ms. Ennyi is kell nekem. De az érték nem stimmel. A hozzászólás módosítva: Dec 5, 2013
Ezt nem tudtam, hogy kézzel is be lehet vinni az adatot. Köszi ezt az infót is.
Köszönöm az eddigi segítséget, jó éjt.
Sziasztok!
Pár fórumlakónak köszönhetően sikerül közelebb kerülnöm a pwm lelkivilágához.... kokozo pár hsz-el korábban adott egy példaprogramot a statikus pwm-re ahol nem változik a kitöltés! Namost pl ahhoz hogy halványodni tudjon a led tehát folyamatosan csökkenjen a kitöltés ahhoz jelen programban a pwm változó értékét kell elvileg folyamatosan csökkenteni ugye? Tudom hogy nagyon barbár módon csináltam meg és valószínűleg a PIC-programozás összes etikettjét megerőszakoltam ezzel de valahogy ez a működési elve a folyamatos csökkenő kitöltésnek? Hogy tudnám ezt egyszerűsíteni? Valahogy kulturáltabban megírni? lehetséges az hogy pl a tmr makró folyamatosan fusson a háttérbe? illetve a tmr és a pwm makró egybe? mert ha több kimenetet szeretnék pwm-el szabályozni akkor a következő kimenetnek már kapcsolnia kell még mielőtt az előzőn végig lefutott volna a halványodás. Az volt a tervem hogy minden kimenetnek csinálok egy külön makrót amibe az szerepel hogy felvillan a led majd elhalványul, és ezeket hívom be a main makróból, de elvileg ez a verzió így nem működik hisz lefut az egyik kimenet elhalványul teljesen és csak utána ugrik a következő kimenetre! Tehát lehet a valahogy párhuzamos futtatást kreálni vagy kezdem nagyon megbonyolítani?
Így..
Adok egy másikat is amiben 8 led van futófény jelleggel ilyen végeredménnyel.
Szia.
Beégettem, lepróbáltam egy az egybe, ahogy átküldted. 2 másodpercenként villog, nem 0,5 másodpercenként (500ms). Az érdekes.jpg kép tényleg érdekes. Abban a rutinban a késleltetés pont fele volt a kívánt értéknek (nem tudom, miért) ezért az egyszerűbb megoldást választottam, megszoroztam 2-vel. Nem a legelegánsabb, de működik. A hozzászólás módosítva: Dec 6, 2013
Átírtam, ez jó lett.
Az osccon 1. bitjét írtad át, és 16Mhz lett az órajel. Mondjuk elsőre nem írtam át a project opciónál a 32Mhz-et, ezzel más 1 másodperc volt a villogás. Átírtam 16Mhz-re, ekkor még gyorsabb villogásom lett. És ez valós 500ms. A hozzászólás módosítva: Dec 6, 2013
Most 16Mhz. Megmértem stopperrel, 10 másodperc alatt 10x villant fel a LED.
A hozzászólás módosítva: Dec 6, 2013
7: PLL enable: 1
6-3: frekvencia: 1111 (16Mhz) 2: nem felhasznált: 0 1-0: system clock select bit: 00 (1-es konfig szóban megadva) Amit legutoljára küldtél: osccon=0xF0 = 11110000 6-3: frekvencia: 1110 (8MHz or 32Mhz) Átírom, mindjárt írom az eredményt. Szerk. Rendben van. jó lett. Most h ezt rendbe raktuk, megpróbálom ezt átültetni az index programba. Köszönöm az eddigi segítséget. A hozzászólás módosítva: Dec 6, 2013
Sikerült átültetnem az előbbiekben tanultakat. Javítottam az "érdekes" megoldást is.
Köszönöm még-egyszer a türelmedet, most már értem azt a beállítási metódust, nem felejtem el egy darabig, biztos. Vagy 20 éve, mikor kezdtem ismerkedni az elektronikával, volt egy nagyon jó kollégám, aki idősebb, tapasztaltabb volt a koránál fogva is. Türelmes volt velem, sokat köszönhetek neki. Szabályzástechnikával ismerkedtem, sok sok logikai TTL IC és egyéb áramkörök voltak felépítve egy modul rendszerű kártyán. Ha meghibásodott, nekünk kellett megjavítani. Bedugtuk a javítópanelba, sok sok kivezetés volt rajta, meg satöbbi. Elővettük a kapcsolási rajzát, és elkezdte magyarázni, miközben a panelon ellenőriztük a működését. Kérdeztem, kaptam rá választ. Másnap folytattam, megint elmagyarázta, kérdeztem....stb. Harmadnap is megtette ugyanezt, ha szükségem volt rá. Viszont legközelebb már nem magyarázta, hanem kaptam egy "sallert" a válasz helyett. Akkor megint neki vetkőztem, és addig mértem, még meg nem tanultam a működését. Mindig a helyes útra terelt a "sallerral" A hozzászólás módosítva: Dec 6, 2013
Szia!
Áttanulmányoztam a pwmszoft progit amit küldtél! Van egy két dolog amit nem értek! A "sebesség" értéke az 123, a tmr2 hasonlítja össze a feltételes elágba hogy ha a tmr 2 kisebb mint a "sebesség" akkor igaz ágra fusson, de mivel abba az ágba nullázzuk a tmr2 ezért a tmr2 soha nem tud nagyobb lenni mint a "sebesség". tehát ez által ott azt a pwm =pwm-1-et akár a fő ágba is tehetnénk vagy nem?
Illetve a másik hogy a pwm értéke amihez viszonyítjuk a tmr-t az nem 256 lefutásonként változik mint ahogy én csináltam tehát elvileg nem fut végig a kitöltés a 100-0 százalékig , tehát nem fokozatosan hanem tulajdon képpen szinte egy lépésben változik az értéke! hisz minden lefutásba nevekszik a tmr egyel és csökken a pwm egyel igy elvileg nincs is alkalma a kitöltési tényezőt észlelhetően összehasonlítani! vagy hülyeséget írok? hisz azt beszéltük hogy tulajdon képpen azon az elven működik hogy 256 időegységből hány időegységig kisebb mint a pwm! De itt az egy 256 időegység alatt nullázodik is a pwm éréke teljesen!
Akkor már inkább elvileg nem így lehet csökkenteni a pwm értékét? Vagy mit nézek el ennyire?
Köszönöm! Módosítás: Bocsi most vettem észre alul azt a feltételes elágot.. az nem kell oda! A hozzászólás módosítva: Dec 8, 2013
Szia!
Igazad van a kacsacsőr iránya nem jó, azt fordítsd meg és már is müxik. A Te verziódnál semmi értelme 255-nél nullázni a tmr-t mivel a következő tmr ciklus úgy is kinullázza mivel 255+1 az nulla lesz a byte változó miatt. Mellesleg 19200 Hz-nél a 255 -ös osztás mellett 75 Hz lesz amit a szemed még csak véletlenül se fog meglátni maximum egy kis vibrálást észlelsz majd a led fényerején.
Sziasztok.
A PIC tanulmányozása és megértése közben merült fel bennem az alábbi kérdés: A 'megszakítás' azt jelenti, hogy a program normális, szekvenciális futása valamilyen külső hatás miatt átmenetileg felfüggesztődik, és a vezérlést egy külön rutin, a megszakításkezelő kapja meg. Miután a megszakításkezelő végzett, a program a futását - mintha semmi se történt volna - folytatja. A külső hatások tipikusan: jelváltozás valamelyik bemeneten, a hardver számláló / időzítő 255-ről 0-ra váltása (túlcsordulása), vagy pld. az A/D konverter jelzése, hogy készen van a konverzió. A fentieket figyelembe véve, az lenne a kérdésem, hogy hogy lehet megvalósítani, 1-nél több megszakítás figyelését? Hogy az előbbi, pár hozzászólással előbb felrakott index programnál maradjunk, annál nem egy bemenetet kell figyelni, és arra megszakítást kérni, hanem kettőt. Ezt még értem, mert be lehet állítani, a TMR-t a bemenetekre (1-2-3-4), attól függően hogy milyen PIC-et használunk. Ha megszakítást kérek az egyik bemenetre, akkor főprogram felfüggesztődik, majd a megszakításvezérlő átadja a feladatot a meghívott rutinnak, majd az lefut és vissza a főprogramra. Mi van akkor, ha a rutin közben érkezik egy másik TMR megszakítás kérelem? (A másik irányba indexelünk, és nem kell megvárni a 3x villogást, míg vége lenne.) Jellemzően, az eddig itt fellelt példákban általában mindig csak folyamatos, lépésről lépésre futó programokkal találkoztam. Elnézést, ha esetleg valamely program nem ilyen, és elkerülte figyelmemet. Üdv. Péter
Ez csak egy példa program volt, hogy hogy kellene a szoftveres pwm-et csinálni.
Ja hogy Ő ugyanaz? Ezt nem tudtam De jó munkához idő kell
Koszonom. Ma mar nem, de holnap atnezem a programot. Ha sikerul ezzel a verzioval is megcsinalni, akkor felteszem ide a programot. De miert ne sikerulne
Tanulni sohase keso
Szia!
Ha belépsz a megszakításba, végigvizsgálhatod, hogy mi is okozta a megszakítást, és egy kalap alatt több egység IRQ-ját is le lehet kezelni.
Találtam egy ilyen programot...
kicsit próbáltam vele mahinálni de hiába elcsúsztatva vannak a változó értékek tulajdon képpen itt is egyszerre világítanak a ledek? Hogy tudom a kitöltés kezdését kimenetenként elcsúsztatni?
Az egész PWM projektet csúsztatni kellene amíg a hozzá tartozó alapok a holdon vannak.
Minden pwm nek adj külön változót és ha az első változó elszámolt egy bizonyos értékig akkor indítsd egy elágazással a következő változó léptetését ...
Sikerült Simpitől kapott példaprogramon keresztül megérteni, és módosítani az index program első részét úgy, hogy TMR makróval induljon. Most ott tartok, hogy egy impulzusra, kb. 0,5 másodpercig felvillan a LED. A program lehet hogy túl van bonyolítva, egyszerűen 2 db tök egyforma TMR makró van benne.
A következő képés lenne, hogy ne csak 1x villanjon fel a kimenet, hanem 3x. Ehhez szeretnék kezdő lépést, "löketet", ötletet, javaslatot, hogy merre induljak el. Köszönöm. A hozzászólás módosítva: Dec 11, 2013
Back. Hogyan változtatok a OneWire kommunikáció sebességén? A Flowcode-ban nem találtam ilyet. A C kódokat pedig nem teljesen értem.
Elkészültem a komfort index programmal, melyben a Timer megszakítást alkalmaztam. Az előbbiekben feltett programot átírtam, így utólag belegondolva nem volt szerencsés.
felteszem mindkét programomat. Mindkettő ugyanazt csinálja, de más-más elven közelítettem meg az elérni kívánt célt. Remélem érthető benne minden, használjátok egészséggel. Köszönöm Mindenkinek a segítséget! A hozzászólás módosítva: Dec 14, 2013
Szia!
Egy indexet miért kell így túlbonyolítani? A hozzászólás módosítva: Dec 14, 2013
Visszatérve a CRC hibára.
A mellékelt program a már korábban említett CRC hibára fut negatív hőmérséklet mérése esetén. Viszont, ha a PIC-et kicserélem 16F886-ra, minden rendben van. Semmi más nem változik, csak a kontroller és a hozzá igazított program. Ötlet? |
Bejelentkezés
Hirdetés |