Fórum témák
» Több friss téma |
Csinálsz még egy változót aminek az értékét az éppen aktív bit írja át : pl bit 12= 1
bitek = 12 A hozzászólás módosítva: Dec 17, 2015
Köszi erre nem is gondoltam pedig pofon egyszerű.
A többirányú elágazás nem vált be ? Avval sokkal egyszerűbb lehetne a program
Arra még nem állt be a kezem pedig valóban egyszerűbb
De ahogy jobban belenéztem a sift írás makróban már félig meg is csináltad (többirányú elágazással)
A hozzászólás módosítva: Dec 17, 2015
Igen az már megvan, hála Bakman kollégának, egyszer feltette ezt a shift írást csak rövidben, én pedig kipotoltam az itteni válaszok alapján.
Bocsánat, nem jól fejeztem ki magam, az utolsó előttit kéne valahogy megkülönböztetni.
Ezt most nem értem, az első számítás nem teljes és nem értem.
Igazából az utolsó feltételes elágazás ami új, ha a felette lévőket nem érted az baj, mert az a tiéd volt eddig is
Csak annyi hiba van benne hogy az or helyett and kell. A hozzászólás módosítva: Dec 17, 2015
Ami a lényeg lenne, a bemenetek nem sorrendben vannak kapcsolva, és figyelnem kell az utolsó előtti bekapcsolt bemenetet és az a feltétel macro-ban vizsgálni ami ha az "utolso" többirányú elágazásnál valamelyiknek megfelel akkor azt kikapcsolja amennyiben kw magasabb mint 121. A hozzászólás módosítva: Dec 17, 2015
kell 2 váltzó az első, az utolsó előtti lesz (Bit_lastminusone) a második az utolsó(bit_last),
És mivel a program sorba halad először megkapja itt :Bit_lastminusone=bit_last az utolsó értékét az utolsó előtti és csak ezután kapja meg az utolsó a bemeneti értéket. A hozzászólás módosítva: Dec 17, 2015
Érthető és bocsánat.
A monitoromon van egy pöty ami pont úgy takar mintha a bit_last után még lenne egy pont.
Természetesen ha tényleg azt szeretnéd hogy melyik bit lett magas utoljára, akkor kell még 1 változó amit minden ágba be kell tenni ahol a bitek 1 re váltanak, mert jelenleg csak azt figyeli, hogy melyik változott utoljára.
Bocs, hogy semmit nem reagáltam. Nekem valamiért az analóg olvasásnál probléma volt, mert össze-vissza értéket mutatott a szimuláció. A megoldásodnak a lényegét megértettem és jónak is tűnik. Újra kellett volna készítenem a megoldásodat, mert biztos valamilyen verzió eltérés miatt viselkedett furcsán. Nem volt rá időm.
Nem tudom miben szimuláltad, de flowcode-ban nem lehet ezt szimulálni az ADC átlag mérése miatt. flow csak sima ADC mérést tud szimulálni.
Ismét egy kérdés. Nem szeretném a teljes programot megíratni mással csak segítséget kérnék hátha valakinek van jobb ötlete.
Figyelnem kéne hogy 2mp-ig nyomják e a gombot és ha igen, csak akkor hajtanám végre az adott parancsot. Van ennek valami egyszerű megoldása vagy egyesével kell figyelnem?
Amikor megnyomod a gombot indítasz egy megszakítást , ha letelt a két másodperc és még mindíg nyomva van a gomb a feltételes elágazásban a feltétel : gomb and megszak > x ha gomb elenged akkor megszak (x=0)
Szia !
Fordított már valaki flowcode-ban készült c fájlt MPLAB-al ? Kellene egy kis segítség, mert nem fordul le.
Miért nem fordítod flow ban az eredeti flow fájlt ?
Lehet, hogy rossz gondolat, de az eredeti flow fájl tele van mindennel ami lehet nem kell feltétlenül. Ha ezeket kiszedném és újra fordítanám nem lenne kisebb / kevesebb a pic-be beírandó adat ?
De ! Biztos lehetsz benne hogy kisebb lesz a hex
HI-TECH -el próbáltam először, az nem fordította, de az alap MPLAB igen.
Itt viszont megtorpant a dolog, mert csak később lesz időm kipróbálni.
Boldog karácsonyt mindenkinek
Sikerült foglalkozni a témával.
Egy project, két fordítás eredménye.
Sziasztok!
Egy egyszerű 7 szegmenses órát készítek, aminek a fényerejét PWM-el szabályoznám a környezet fényerejéhez igazodva. A problémám az hogy a PWM jel nem stabil, kb 1-2 másodpercig jól működik, majd 8-10 másodpercig 2%-on áll a kitöltés. Ha a PWM kitöltését nem az ADC értékéből határozom meg, hanem egy változót használok, melynek értékét minden programciklusban megváltoztatom (2. példa) akkor jól működik. Az ADC menüjében próbáltam már a "beszerzési időt" és a "kommunikációs sebességet" is változtatni, de az eredmény ugyanaz. Mi lehet a probléma?
Ebben már benne van a "kézi" optimalizálás is, vagy simán a két fordító közötti különbség. Igazából csak az érdekelne, hogyan viszonyul a flow optimalizációja mondjuk az XC8 free-hez.
Talán hasonló gond, mint ez: Bővebben: Link.
A mellékletben egy módosított változat, az ADC olvasás C kódokkal van megoldva. Ezzel jól működik? |
Bejelentkezés
Hirdetés |