Fórum témák
» Több friss téma |
Miért, a port regiszterek nem olvashatók is, még ha kimenetnek is vannak állítva?
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.
Köszönöm, akkor megpróbálom ezt tenni.
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.
Használnál egy változót, már rég végeztél volna.
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.
Idézet: „Az a lényeg, hogy működik.” Meg, hogy ne legyen egyszerű
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!
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.
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?
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
I2C komplett megoldás a flowcode fórumon.. Bővebben: Link
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
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.
UART RX hiba okát lásd a 61-es táblázatban.. Bővebben: Link
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
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.
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.
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.
Köszi, ezt értelmezem és kipróbálom.
akkor egyszerűen ha tmp 1 akkor a tmrben 60 helyett 61 legyen ..
Köszi. Ezt is értelmezem és kipróbálom!
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
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.
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!
Ö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
|
Bejelentkezés
Hirdetés |