Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   16 / 360
(#) enree hozzászólása Dec 29, 2010 /
 
Hogyan kell megcsinálni, hogy egy gombnyomással tudjak ki-be kapcsolni?
Már tele van a monitor, de még mindig nem jöttem rá... a be már megy, de nem jövök rá az istennek se, hogy hogy megy a kikapcsolás
(#) lalca válasza enree hozzászólására (») Dec 29, 2010 /
 
Y = Y XOR 1.Ha 0 volt 1 lesz,ha 1 volt 0.
(#) _ampervadasz_ hozzászólása Dec 29, 2010 /
 
Sziasztok.

Még új vagyok ebben a topikban -ha már itt tartunk a programozásban is- és Simpi ajánlotta ezt a programot.
Kicsit szkeptikus voltam eleinte, de Simpi segítségével már elég jól sikerült/-ül átlátni a környezetet.

Szerencsére ma élőben kitudtam próbálni azt, amit a programban szimulációjában már látni lehetett.
Természetesen elsőre el sem indult az alkalmazás, mert az MCRL láb éppen JÚJPISZI módban volt, az az sehová nem volt bekötve.
Miután kapott egy 10k -s ellenállatot 5VDD -re, egyből magához tért.
Ezúton is köszönetet szeretnék mondani a sok segítségért Simpinek.
Konkrétan tegnap este kezdtem el az ismerkedést a programmal, és mostanra már egy bárhogyan variálható futófényt sikerült kreálni, mind ezt egy "két ledes egy kapcsolós" projektből.
A program rém egyszerű, és ezért is lett egy hangyányit hosszú (nem shiftelem a biteket, hanem egymás után ki-be kapcsolgatom).

A programot mellékeltem hátha valaki tovább tudja gondolni, fejleszteni.
A program működése a következő:
Amíg a bekapcsoló gomb ki van kapcsolva addig a sárga SLEEP LED folyamatosan villog. Ha a bekapcsoló gombot bekapcsolom, akkor a sárga LED kialszik, és a 4 LED -es futófény elindul. A következő kapcsolóval lehet a futófény irányát változtatni, a másikkal meg oda-vissza futófényre beállítani.
(A SLEEP LED azért került bele a rendszerbe, mert a PIC az szó szerint kukázott, bontott volt, és tudtam, hogy az a bitje, jó volt. Tudtam, ha a táp ráadásakor elkezd villogni akkor tudom, hogy a program jó(feltételezve, hogy a B port esetleg teljesen meg van ölve, ha a 4 LED egyike sem világítana egy pillanatra).
Az alkalmazásról meg itt látható élőben egy videó.
Kérek mindenkit aki ad egy kicsit az esztétikára, a pontosságra az ne kövezzen meg, egyszerűen csak így tudtam megoldani, az az egy CD tokra készítettem el, kétoldalasra a demó panelt.
(#) enree hozzászólása Dec 29, 2010 /
 
Én is írtam ilyen hosszút Meg rövidet is
(#) mrobi válasza _ampervadasz_ hozzászólására (») Dec 29, 2010 /
 
Nem rossz. Tetszik.
Idézet:
„A programot mellékeltem hátha valaki tovább tudja gondolni, fejleszteni.”

Annyival tovább lehetne gondolni hogy a kapcsolókat kicserélni gombokra.
(#) _ampervadasz_ válasza mrobi hozzászólására (») Dec 29, 2010 /
 
Legközelebb majd az jön, egyenlőre a tudományom eddig tart.
(#) enree válasza (Felhasználó 15355) hozzászólására (») Dec 29, 2010 /
 
De nagyszerűbb aligha :nemtudom: köszííííí
(#) enree hozzászólása Dec 31, 2010 /
 
Sziasztok!
Tovább fejlesztettem az akvárium világítást, még azzal a funkcióval kibővítve, hogy kapott egy nyomógombot, amivel akkor lehet ki-be kapcsolni, ha amúgy éppen nem világítana.
Leírom a működését pontosan, mert Simpitől megint kikapok, hogy jósolni kell ;
ADC0-on méri a feszültséget (fotodióda az ablakban) és ha eléri a küszöbszintet és ott is marad egy pár másodpercig (villámvédelem), akkor bekapcsol (fölkel a nap), míg a napocska világít, addig aktív marad a kimenet, mikor lemegy a nap, akkor pedig rászámol még kb két órát és utána kapcsol ki.
Ez már nagyon jól működik /köszi a segítséget/, de a ki-be kapcsoló nyomógombbal gondjaim akadtak.
A főfüggvénybe próbáltam meghívni makró formájában, ha a led éppen nem világít, de valamiért nem megy... Illetve vagy a nyomógombot kezeli, vagy az adc-t mit rontok el?

vilagitas.fcf
    
(#) enree hozzászólása Dec 31, 2010 /
 
Opsz, rosszat tettem föl.
Az előző tele van butasággal, azt ne nézzétek!

vilagitas.fcf
    
(#) enree válasza (Felhasználó 15355) hozzászólására (») Dec 31, 2010 /
 
De leírtam szépen, csak most, csak itt, csak Neked!
(#) enree válasza (Felhasználó 15355) hozzászólására (») Dec 31, 2010 /
 
Ok, megpróbálom így.
Akkor jól sejtem, hogy nem makróként kéne kezelni?
(#) enree hozzászólása Dec 31, 2010 /
 
Á, így már értem... akkor átmolyolom.
(#) mrobi válasza enree hozzászólására (») Dec 31, 2010 / 1
 
Szia. Megnéztem hogy mit csináltál. Egy ciklus miatt nem kapcsol be a led. Átnéztem a gombkezelésed. Nagyából értem. Én másmilyen gombkezelést használok. Csináltam egy másik gomb kezelést. Annyi baja van hogy a gombot legalább 1 másodpercig le kell nyomni hogy bekapcsoljon.

vilagitas.fcf
    
(#) mrobi válasza (Felhasználó 15355) hozzászólására (») Dec 31, 2010 /
 
Szia. A flowcode tud ledmátrixot kezelni? Mert nem találtam benne ilyet. De csináltam egyet. Remélem működni fog majd.
(#) mrobi válasza (Felhasználó 15355) hozzászólására (») Dec 31, 2010 /
 
Nekem egy 4*4-es kellett volna. De megoldottam. Amúgy ez a 8*4-eset hol találom.
(#) enree válasza (Felhasználó 15355) hozzászólására (») Dec 31, 2010 /
 
Köszi Nektek srácok!
(#) mrobi válasza (Felhasználó 15355) hozzászólására (») Dec 31, 2010 /
 
Bocsi. Elnéztem. Rosszat raktam fel. Itt a jó.

vilagitas.fcf
    
(#) enree hozzászólása Jan 8, 2011 /
 
Sziasztok!

Adott egy feltételes elágazás, ha a bemenetünkre jel érkezik az igen ágon halad a program, és egy ledet 5másodpercre kigyújt, aztán el kellene aludnia a lednek, míg meg nem szűnik a jel és újra nem jön... mert ugye egy vételen ciklusban vagyunk és számolja ugyan az 5másodpercet, de újra is indul

Nos, az lenne a kérdés, ezt hogyan tudom megcsinálni?
(#) mrobi válasza enree hozzászólására (») Jan 8, 2011 /
 
Egyszerű: végtelen ciklusba bele kell rakni a gomb beolvasását és az elágadzást. Igen ágban a led bekapcsolása és az 5s késleltetés. A nem ágban pedig a led kikapcsolás.

led.fcf
    
(#) mrobi válasza (Felhasználó 15355) hozzászólására (») Jan 8, 2011 /
 
Bocsi. Rosszul értelmeztem. De akkor így már jó?

led.fcf
    
(#) mrobi válasza (Felhasználó 15355) hozzászólására (») Jan 8, 2011 /
 
Igazából nem csináltam meg. Flowcode-ban működött. De hogy a valóságban mit csinált volna.
(#) enree hozzászólása Jan 9, 2011 /
 
Köszi mindkettőtöknek
(#) mrobi válasza (Felhasználó 15355) hozzászólására (») Jan 9, 2011 /
 
Ha a picnek a belső óráját használom és mondjuk egy 60perces időzítőt csinálok késleltetéssel akkor ott mekkora lehet az eltérés a 60perchez képes? Tehát menyire lesz az pontos?
(#) vilmosd válasza mrobi hozzászólására (») Jan 9, 2011 /
 
Hali
A PIC belso oraja +- 1% pontossagu.
(#) mrobi válasza vilmosd hozzászólására (») Jan 9, 2011 /
 
Akkor 10 óránál 6 percet csúszik. Az nem is olyan sok. Mármint amire nekem kell.
(#) kkrisz75 hozzászólása Jan 9, 2011 /
 
Simpi

Próbálgatom ez a flowcode ot.

Csináltam egy órát. Lefordítottam asm be. MPLAB pickit progival feltöltöttem a 877Aba de semmit nem jelez ki.

Nézz rá légy szíves, hogy a program rossz, vagy a fordítási beállítások, LCD kezelés stb más mint a parsic-ban.(Bár RB0-5 ig ugyan az a beállítást találtam)

ora.fcf
    
(#) kkrisz75 válasza (Felhasználó 15355) hozzászólására (») Jan 9, 2011 /
 
Köszi.

Az órajelet nem találtam hol kell beállítani. Most jó.

Hogyan tudom jobbra igazítani, arra még nem jöttem rá.
Vagyis mikor még csak 1-2-3 amit kiír akkor ne bal oldalt írja ki hanem, _1-_2-_3 stb...
Vagy 01-02-03.
(#) kkrisz75 válasza (Felhasználó 15355) hozzászólására (») Jan 9, 2011 /
 
Ez rendben... működik az óra.
(Jó ez a program... csak máshogy kell gondolkozni mint Parsic-nál)


Új ötlet.
Megszámolni 100ms alatt beérkező jelek számát.

A megszakításnál, a TMR0 nál próbálkozok, de nem jön össze. Nincs ötletem, példát se találtam rá....

A számláló része ok... feltételes elágazás, a Port A1 en beteszi változóba és hozzá adogat 1et.
De hogy az idő intervallumot hogy határozom meg arra nem jövök rá.
(#) kkrisz75 válasza (Felhasználó 15355) hozzászólására (») Jan 10, 2011 /
 
Akkor ha jól értem, ha megszakítást csinálok, akkor az nem külön folyamatként fut le, hanem egy időben a program többi részével?

Ha így van akkor rém egyszerű, mert a tmr(0) val csinálok egy makrót. Amiben lesz egy ciklus, amiben egy feltételk, leosztva 250Ms ra a Hz-et. És ha eléri a megadott Hz-t, akkor egy reset változónak 1es értéket ad.

A fő függvényben pedig szintén lesz egy ciklus, amiben a A1 portot vizsgálja, hogy jön be jel vagy nem, ha igen akkor RPM=RPM+1, és önzáró ciklus, hogy A1 port 0-ra eséséig ne haladjon tovább(nehogy 2szer értelmezze ugyan azt a jelet), a nem ágba pedig semmi.
A külső fő ciklus pedig reset=1 értékig ismétli magát amit a timerből kap meg mikor eléri a 250ms ot.
Amikor kilép a fő ciklusból, reset=0, RPM=RPM*60 és lcd kiíratások, majd vissza(goto A) a timer utáni fő ciklus kezdéshez.

Kész és máris méri a fordulatszámot

De ez csak akkor igaz, ha a logika szerint a TMR0 megszakításos makróba téve a háttérben fut, és közben halad a főprogram.
(#) kkrisz75 válasza (Felhasználó 15355) hozzászólására (») Jan 10, 2011 /
 
Na elkészítettem az elméletet.

Most nézd meg légy szíves miért nem megy?
Mi a hiba?

RPM.fcf
    
Következő: »»   16 / 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