Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   299 / 360
(#) ktamas66 válasza frekivalto hozzászólására (») Feb 19, 2018 /
 
Miért, a port regiszterek nem olvashatók is, még ha kimenetnek is vannak állítva?
(#) kokozo válasza frekivalto hozzászólására (») Feb 19, 2018 /
 
Az I/O lábakon az adatot a PORTx regiszteren keresztül érhetjük el. A PORTx regiszter kiolvasásával az I/O lábak állapotát olvashatjuk be, míg a PORTx regiszter írásával a port kimenő adatregiszterébe írhatjuk be az adatot, amellyel tulajdonképpen a kiemenet állapotát állítjuk be.
(#) frekivalto válasza kokozo hozzászólására (») Feb 19, 2018 /
 
Köszönöm, akkor megpróbálom ezt tenni.
(#) frekivalto válasza kokozo hozzászólására (») Feb 20, 2018 /
 
Kiolvastam a PORTx regisztert ahogy javasoltad. PORTC és PORTD.
A PORTC.1 és PORTC.2 jól működik. A PORTD.1 és PORTD.2 szintén jól működik.
Viszont a PORTD.0 nem! A main rutinban bekapcsolom a D.0 portot. A port kimenetén figyel egy LED, mely világít. Amint kiolvasom a port D.0 állapotát, kikapcsolja a kimenetet, a LED nem világít.

Mi lehet a gond? Mellékeltem két részletet a programból.

Ui. a makró HMI checkbox meghívása után megállítottam a programot egy végtelen ciklussal, hogy leellenőrizzem, hogy biztosan ez kapcsolja ki a kimenetet, és tényleg ez.
(#) Bakman válasza frekivalto hozzászólására (») Feb 20, 2018 /
 
Használnál egy változót, már rég végeztél volna.
(#) kokozo válasza Bakman hozzászólására (») Feb 20, 2018 /
 
Mellesleg használ változót (w) ..
(#) frekivalto válasza Bakman hozzászólására (») Feb 20, 2018 /
 
Ennél az egynél használok, úgy működik. Csak nem értem, hogy miért dobja ki a kimenetet kiolvasáskor.
Lehet búg is....
Az a lényeg, hogy működik.
(#) niedziela válasza frekivalto hozzászólására (») Feb 21, 2018 /
 
Idézet:
„Az a lényeg, hogy működik.”

Meg, hogy ne legyen egyszerű
(#) Firefighter1 hozzászólása Feb 21, 2018 /
 
Már lerendeltem egy kicsi Nextion kijelzőt, igaz csak az eredeti weboldalról mertem, de van itthon egy I2C-s 2*16-os LCD illetve egy illetve egy ilyen 128x64 es I2C-s Oled kijelző
Van valakinek mentett makrója hozzájuk? Vagy példaprogram?
Csak kíváncsiság szinten foglalkoznék vele hogy hogyan "szólítsam meg és beszélgessek" velük!

Sajnos a support már annyira csak Flow7 körül forog hogy nem sok semmit találok hozzá.

Köszönöm!
(#) frekivalto válasza Firefighter1 hozzászólására (») Feb 27, 2018 /
 
Nextion kijelzőt kapsz itthon is, Bővebben: Link
Jobban jársz ha a Nextion-nal kezdesz, van saját topikja is. Én kb. 2-3 hete ismerkedem vele, nagyon könnyű dolgozni vele, sok segtséget kaptam innen.
(#) frekivalto hozzászólása Feb 27, 2018 /
 
Kedves Fórumtagok.

PIC16F690 kontrollert valaki küldött már sleep üzemmódba? Az adatlapba belebonyolódtam, nekem az egyenlőre sok(k)

Van benne kettő megszakítás, arra kellene ébrednie.
1. megszakítás: PORT - encoder figyelése
2. megszakítás: RXINT - APC220 modul figyelése

Merre induljak el?
(#) Firefighter1 válasza frekivalto hozzászólására (») Feb 27, 2018 /
 
A makrókat vagy példaprogramokat nem a Nextionra értettem hanem a 128x64-es OLED ra meg az I2C-s 2x16 LCD-re!
Tudom hogy kapok itthon is... ezért vettem meg itthon nem pedig otthon
(#) Firefighter1 hozzászólása Márc 4, 2018 /
 
Feladtam... fiók aljára kerültek az OLED ek!

PIC18F14K22 altatásában tud valaki segíteni?
(#) kokozo válasza Firefighter1 hozzászólására (») Márc 5, 2018 /
 
I2C komplett megoldás a flowcode fórumon.. Bővebben: Link
(#) kaqkk hozzászólása Márc 5, 2018 /
 
Egy kérdés a hozzáértőkhöz : 3,3v os pichez milyen kijelzőt (lcd) lehet közvetlenül használni ? Mondjuk egy 2x16 karakteres külön 5v os tápról illesztőellenállásokkal az adatbemeneteken működhet ? Az lcd csak ideiglenesen próbára lenne rákötve a picre a végleges áramkörben nem lesz rá szükség
(#) Bakman válasza kaqkk hozzászólására (») Márc 5, 2018 /
 
Valószínűleg a 3,3 V-ot már magas szintnek érzékeli, működhet. Vagy. Kapcsolj be egy UART kimenetet a kontrolleren és soros porton is tudod monitorozni a folyamatokat. A szoftveres UART TX része viszonylag jól működik, az RX már macerásabb, téveszt időnként. Legalábbis én ezt tapasztaltam.
(#) kaqkk válasza Bakman hozzászólására (») Márc 5, 2018 /
 
Köszi a gyors választ
(#) kokozo válasza Bakman hozzászólására (») Márc 5, 2018 /
 
UART RX hiba okát lásd a 61-es táblázatban.. Bővebben: Link
(#) frekivalto hozzászólása Márc 5, 2018 /
 
Srácok!

Így este felé már nem annyira fog az agyam

SW nyomógombot megszakításból indítom, timer0 lépteti az y változót.
Ha elérte a 125 értéket (2 másodpercig nyomva van), akkor kiküld egy bekapcsolási adatot, majd bekapcsolva=1.
Ha megint nyomva van a nyomógomb 2 másodpercig, akkor kiküldi a kikapcsolva adatot, majd bekapcsolva=0.

Na már most...
Ha bekapcsolva=1, akkor az y=60 feltételben a bemenetválasztás megtörténik, kiküldi az adatot, és átugorja addig, amíg a nyomógombot el nem engedjük.

Következő lépésben akadtam el:
Ha újra megnyomom a gombot, és tovább nyomom mint y=60, akkor ne menjen a bemenetválasztás ágba, hanem ha elérte az y=125-öt, akkor kiküldi a kikapcsolni adatot.
Ha ebben az esetben nyomva tartom, akkor közben lesz egy bemenetválasztás és után a kikapcsolás.
Ez így nem jó.
Ötlet, javaslat? Ha szükséges, csatolom a forrás fájlt is.
A hozzászólás módosítva: Márc 5, 2018
(#) Bakman válasza frekivalto hozzászólására (») Márc 5, 2018 /
 
Mi lenne a cél? Lehet, hogy nekem is késő van de nem nagyon látom át, mit is szeretnél a nyomógombbal. Jól értem, hogy meg akarsz különböztetni hosszú és rövid gombnyomást? Én a helyedben azt csinálnám, hogy ameddig lenyomva van a gomb, folyamatosan növelnék egy változót. Elengedéskor a kapott érték szerint lépnék, pl.:

ha y < 60 - semmi
ha y > 59 AND y <125 - rövid gombnyomás
ha y > 124 - hosszú gombnyomás

Egy dologra kell figyelni, ne csorduljon túl a változó. A változó növelésénél valami ilyesmit tudnék elképzelni:

ha y < 125, akkor y=y+1 (addig nem ugrik y kiértékeléséhez, amíg a delikvens el nem engedi a gombot, y maximum 125-öt érhet el)

ha y > 124, akkor ugrás a hosszú gombnyomás részhez (ha kellő ideig nyomja a gombot, azonnal ugrik a megfelelő programrészhez, y=125 esetén)

Személyes megjegyzés: engem rendkívül bosszant az, ha egy funkció eléréséhez egy gombot hosszan kell nyomni. Valamiért mindig lassúnak érzem a dolgot.
(#) kokozo válasza frekivalto hozzászólására (») Márc 5, 2018 /
 
Pl így..

nemtommi.JPG
    
(#) frekivalto válasza Bakman hozzászólására (») Márc 5, 2018 /
 
Igen, meg szeretném különböztetni a rövid és hosszú gombnyomást.
Mivel ez egy hangerő szabályozó adó része lesz, ezért hosszan nyomva küld egy bekapcsoló jelet, majd ha bekapcsolva van, akkor szintén hosszan nyomva küld egy kikapcsoló jelet.
Ha viszont rövid ideig nyomom meg, akkor mint bemenetválasztó működne.

Ez így kényelmes lenne, mert menet közben elég egy rövid nyomás a választáshoz, ha viszont ki- vagy bekapcsolás lenne, akkor jöhet a hosszabb nyomás.
(#) frekivalto válasza kokozo hozzászólására (») Márc 5, 2018 /
 
Köszi.

Ez is úgy működik, ahogy nem szeretném. Bekapcsolás után ha még egyszer megnyomva tartom a gombot, akkor kikapcsolás előtt bemegy az y=60-as ágba, amit viszont nem szeretnék, mivel a nyomógomb nyomva van végig, amíg ki nem kapcsol.
(#) frekivalto válasza Bakman hozzászólására (») Márc 5, 2018 /
 
Köszi, ezt értelmezem és kipróbálom.
(#) kokozo válasza frekivalto hozzászólására (») Márc 5, 2018 /
 
akkor egyszerűen ha tmp 1 akkor a tmrben 60 helyett 61 legyen ..
(#) frekivalto válasza kokozo hozzászólására (») Márc 5, 2018 /
 
Köszi. Ezt is értelmezem és kipróbálom!
(#) kokozo válasza frekivalto hozzászólására (») Márc 5, 2018 /
 
Timerbe teszel az y növelő részhez egy feltételes elágazást, ahol tmp=1 igaz esetén, ha az y=60 akkor hozzáad 1-et
A hozzászólás módosítva: Márc 5, 2018

nemtommi.JPG
    
(#) frekivalto válasza kokozo hozzászólására (») Márc 5, 2018 /
 
Ismételten köszi
Ezt is átnézem, szerintem lesz jó megoldás. Viszont ezt már csak holnap, pihent fejjel, mert most már nem forog úgy a kerék, ahogy kellene...

Köszönöm Mindkettőtöknek a javaslatokat.
(#) frekivalto válasza kokozo hozzászólására (») Márc 6, 2018 /
 
Nem igazán akar összejönni...

Srácok!
Felteszem a programot, legyetek szívesek rápillantani, és szabadon garázdálkodni úgy, hogy jól működjön.

Meg szeretném különböztetni a rövid, illetve a hosszú gombnyomást.
1. hosszan nyomva: bekapcsolás, ha tovább van nyomva, akkor sem kapcsol ki. Hosszan nyomás alatt nem lép be a rövid nyomás ciklusba.
2. hosszan nyomva: kikapcsolás, ha tovább van nyomva, akkor sem kapcsol be. Hosszan nyomás alatt nem lép be a rövid nyomás ciklusba.
3. röviden nyomva: bemenet léptetése

Ami feltétel, hogy a nyomógomb az sw megszakításban legyen lekérdezve, mert az éleszti fel a kontrollert alvásból...

Köszönettel!

pelda_sw.fcf
    
(#) frekivalto válasza frekivalto hozzászólására (») Márc 6, 2018 /
 
Összeállt a megoldás. Ez is egy verzió, mert biztos, hogy több út vezet(het) ugyanazon feladat megoldásához.

Nyomógombot megnyomva timerben az y változót nullázom, majd a gombot elengedve az y értékét átteszem v változóba.
Majd v értékének megfelelően kiválasztódik a feladat...

Ha van valakinek még javaslata erre a feladatra, akkor tegye közkincsé
A hozzászólás módosítva: Márc 6, 2018
Következő: »»   299 / 360
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