Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   22 / 361
(#) lalca válasza hg6dab hozzászólására (») Márc 3, 2011 /
 
A=0-99
B1=A/10
B2=A MOD 10
BCD=(B1<<4)
BCD=BCD+B2
Nagyobb számoknál ugyan így,csak akkor 100-al,1000-el kell kezdeni,és nyilván több byte-os lesz az eredmény.>>
(#) hg6dab válasza lalca hozzászólására (») Márc 3, 2011 /
 
Köszönet a gyors reagálásért. Ezt be fogom építeni a programba.
HG6DAB
(#) SzT3 hozzászólása Márc 3, 2011 /
 
Tud valaki segíteni? mire szolgál illetve hogy tudom működésre birni a poramban a "többirányú elágazást" valami olyasmi hogy ha egyszer nyomom akkor az első ág fut ha kétszer akkor a második ha 3 szor akkor a harmadik?
esetleg be tudná valaki mutatni egy egyszerű led világitásos példán? Próbálom megérteni de nem sikerül. .
(#) kaqkk válasza SzT3 hozzászólására (») Márc 3, 2011 /
 
Ez csak egy kísérlet de , látszik rajta a lényeg ( még csak a jobb oldali gomb él a programban )

lépcső.fcf
    
(#) kkrisz75 hozzászólása Márc 5, 2011 /
 
Hali.

Van egy gondom és nem tudok túl lépni rajta... Illetve több van, de ez az egyik.

A sima freki mérő elvén működő rendszerben akarom számoltatni a bemenő jeleket. Nem akarom kinullázni. Lényegében a Km számláló lenne.

De a kiíráskor mégis folyamatosan számol anélkül, hogy lenne jel bemenet.

Ha valaki megnézi az alap(fő) programot, látja, hogy egy cikluson belül a LCD frissítés feltételébe van betéve a NEM ágba két másik ciklus, ami a bemenet 1 és 0 értéke után enged tovább lépni és ha a két cikluson túl jut akkor ad a SPEED és KM változónak +1 et.

A LCDfrissítés IGEN ága a kiíratás és a SPEED, TIMER, LCD változók nullázása.

A program beégetve azt eredményezi, hogy jel bemenet nélkül számol a KM számláló.

Holott csak akkor kellene túl jutnia a két cikluson és a változóknak egyel növekednie, ha a RA4es bemeneten megjelenik az 1 és utána a 0.

A NEM ág végén a KM változó eléri a 10et akkor kell a KM számlálónak nőnie. Igazából itt 10000 lesz a számítások és a Km - méter - és a jeladók szorzatai, váltásai miatt és csak a gyors teszt érdekében van 10re állítva, de így derült ki ez a probléma is.


Tudnátok ötletet adni?
Próbáltam feltételt be tenni a cikllusokba és ciklusok után is, de semmi nem vezetett sikerre.
RB porton való megszakítás sem akart működni valamiért.

Esetleg arra is módosíthatná valaki ha kedvet érez segíteni. Végülis az elektronika szempontjából még mindegy, hogy RA4en vagy RB0-n viszem be az optocsatolóból a jelet.
(#) kkrisz75 válasza kkrisz75 hozzászólására (») Márc 5, 2011 /
 
Le maradt a file és nem tudtam módosítani már.
(#) kokozo hozzászólása Márc 6, 2011 /
 
sziasztok!
lenne nekem is egy kis gondom. a mellékelt progi egy egészen egyszerű példa lett volna. a lényeg a teljes A port 0-ra majd a teljes A port 1-re állítást szerettem volna elérni de a progi ezt nem szeretné.. valaki ránézne hogy én néztem e be valamit vagy valóban nem jól működik a program ezen funkciója.

hiba.fcf
    
(#) kkrisz75 válasza kokozo hozzászólására (») Márc 6, 2011 / 1
 
Nem jó, mert csak az 1-es portot villogtatja így.

Kell egy változó, aminek binárisan megadod melyik porton legyen 1, és várakozás után 0 adsz neki minden portra.

hiba.fcf
    
(#) kokozo válasza kkrisz75 hozzászólására (») Márc 6, 2011 /
 
Én meg azt hittem ha beállítom hogy a teljes port 1-es legyen akkor úgy is értelmezi hogy az minden kimenetre érvényes legyen.. na de így tanul az ember
(#) lalca válasza kokozo hozzászólására (») Márc 6, 2011 /
 
Jól értelmezed,de az 1 az A0.Hogy értsd,pl. 3 az A0 és A1.255-öt küldj ki a portra.
(#) kokozo válasza lalca hozzászólására (») Márc 6, 2011 /
 
köszi ez így még egyszerűbb
(#) kkrisz75 válasza kokozo hozzászólására (») Márc 6, 2011 /
 
0b11111111 - minden led világít.

0b01010101 - minden második led világít.
0b11001101 - első kettő világít második kettő nem, aztán 2 világít aztán 1 nem és megint 1 világít.

Lényegében ahova 0-t írsz ott nem világít ahova 1 et ott világít. Persze vissza lehet számolni decimálisba, ugyan azt kapod, de az plusz munka és számolás.
(#) Szamy hozzászólása Márc 8, 2011 /
 
Üdvözletek.
Új gondom van :egy meglévő progi elejére szeretnék betenni egy ciklust, ami egy piezot szólaltat meg. A dolog így nézne ki : 1->B6/ , delay 40us , 0->B6, delay 130us. Ezt csinálná mondjuk 200x . A pic 16f887. Namármost próbáltam E2 porton is,de a a jelenség ugyanaz : resetelődik a watchdog. A kimenetre tettem egy ledet, az időket áttetem ms tartományba, a led szépen villog, minden ok.Amint átteszem a delay -ket us-re, azonnal folyamatosan resetbe megy a pic . Mi a fene lehet ???
(#) Szamy hozzászólása Márc 8, 2011 /
 
Kis kiegészítés : ha a wdt -t kikapcsolom, akkor természetesen minden ok. Valahol volt róla szó, hogy lehet módosítani a wdt törlési idejét . Esetleg lehet hogy az segítene...
(#) Szamy válasza (Felhasználó 15355) hozzászólására (») Márc 8, 2011 /
 
Beraktam.Így jó , csak nem értem :az egész program elfut autoclear wdt-vel (igaz máshol nem használok us -os késleltetést) de erre háklis ...

Köszönöm a segítséget.

más: hogyan tudok stringet változónak használni?
(#) SzT3 válasza (Felhasználó 15355) hozzászólására (») Márc 8, 2011 /
 
Köszönöm a választ, szóval nem teljesen azt csinálja amire én gondoltam.
Így teljesen érthető ahogy te Csináltad a progit.
Tulajdon képpen a program "hosszúságát" rövidíti szélesebbé, és ugymond egy többirányu elágazást használ.
Én azt hittem hogy ez azt csinálja hogy pl van egy nyomogomb, ha nyomok egyert akkor az első "ágon" lévő programrész fut, ha nyomok mégegyett akkor a második "ágon" lévő programrész, és így tovább.
Ezt hogy Tudom elérni? teszek elé egy számítást? és annak adok értéket? és annak fügvényébe válassza az ágakat?
(#) Szamy válasza (Felhasználó 15355) hozzászólására (») Márc 8, 2011 /
 
A feladatom a következő. A program futás közben hibát érzékel egy bemeneten, végigcsinálja amit már elkezdett, aztán amikor befejezte kiííja az ahhoz a hibához tartozó szöveget, amit előzőleg letárolt.Addig persze kiírogatott mindenféle mást....
(#) Szamy válasza (Felhasználó 15355) hozzászólására (») Márc 8, 2011 /
 
Na ezt majd holnap friss fejjel kipróbálom , még egy lenne, ezt már kérdeztem pár napja , de fontos volna, mert vészesen fogy a helyem: van rá megoldás, hogy egy utasítással kiolvassam az eepromot 0-20 -ig, vagy muszáj egyesével kiolvasgatni?Az egyszerüség kedvéért minden cimen csak 0 lesz vagy 1 .
(#) SzT3 válasza (Felhasználó 15355) hozzászólására (») Márc 9, 2011 /
 
Csúcs
Nagyon köszönöm. . . hogyis van?
-"Amikor egy pici hiányzik. . . "-
Igen illesztgettem én a számlálót de nem elágazással, és számolt világba.
Ha több nyomógombot szeretnék akkor úgy csináljam ahogy a csatolt fájlban vagy pedig úgy ahogy az első progit csináltad hogy minden gombnak egy elág, és az elágon belül számláló és a számláló értékét figyelve plusz elág.
Számomra így logikus ahogy én csináltam, mert amúgy elágon belül elág, egy idő után követhetetlen lenne. Csak így meg kitér az első elágnál is, tehát ha pl ha nyomok az elsőn hármat után a másodikon kettőt , akkor mind két elágnál kitér, az elsőnél a harmadik ágra a másodiknál pedig a másodikra. Lehet hogy mégis az ág az ágban lessz a megoldás? na mindjárt kezdem irni azt a verziót is!
Még egy. . . a számláló értékét lehet "törölni"a negyedik nyomás után? Mert így per pillanat ugye 4 nyomás után számol csak elág nem csatlakozik a 4 fölötti számhoz
(#) kokozo válasza SzT3 hozzászólására (») Márc 9, 2011 /
 
én kicsit bonyolultabban oldottam meg mert van benne pergésmentesítés hogy véletlen se lehessen 1 gombnyomást 2x elszámolni és abban a részben van beállítva az is hogy mennyinél reseteljen a számlálója, természetesen minden gombra külön külön, de mivel én is most kezdtem lehet ez se a jó verzió

igy.fcf
    
(#) SzT3 válasza kokozo hozzászólására (») Márc 9, 2011 /
 
Már töltöm is le a tiédet és kezdem tanulmányozni. . .
(#) SzT3 válasza kokozo hozzászólására (») Márc 9, 2011 /
 
Te profibb vagy mint én.
Elsőre tetszik, mert azt csinálja amit kell de most ásom bele magam a logikájába
(#) SzT3 válasza (Felhasználó 15355) hozzászólására (») Márc 9, 2011 /
 
Igen énis látom a hibát, ha a PORT A1 gomb után PORT A0 gombot nyomsz bent marad az előzőnek is azértéke, és felváltva futtatja.
Csakcsak kezdek a felé hajlani hogy amit előszőr küldtél programot ugy megcsinálni és a második progit amit meg küldtél azt beleültetni egyesével az ágakba, magyarul minden egyes elágba külön külön számláló. . . illetve nekem még egy kapcsolódási pontra is szükségem lessz szerintem, mivel én ne kijelzőt hanem ledet villogtatnék, próbálok valamit összeütni de lehet hogy már csak estére lessz mert 2 től meló van. . .
(#) Szamy válasza (Felhasználó 15355) hozzászólására (») Márc 9, 2011 /
 
tudnál valami ötletet adni ,hogyan lehetne egyszerűsíteni a következőt , amit most így oldottam meg, de így igen kövér :
eepromcím megad, hozzátartozó változó megad ezt 12x .
viszont , ha csinálnék egy ciklust, amiben mint változót minden körben növelem az eeprom címet ,amit kiolvasok, hogyan tudom növelni-cserélni a változót, amibe be kellene tennie a kiolvasott értéket?
(#) Szamy válasza (Felhasználó 15355) hozzászólására (») Márc 9, 2011 /
 
Ez ok, csak az a baj, hogy kiértékelésnél meg kell különböztetni a memóriacímekról olvasott értékeket. összeadás kilőve.
(#) (Felhasználó 7972) hozzászólása Márc 12, 2011 /
 
Hello simpi elakadtam es a segitsegedre lenne szuksegem autoban viz homersekletet szeretnem merni ADC-vel ez eddig mukodik is csak az a gond, hogy a homerseklet emelkedesevel a szenzor ellenallasa csoken ( test fele ) es az ADC-nek epp novelni kellene az erteket tudsz erre esetleg valamilyen megoldast?

udv: Sanya
(#) (Felhasználó 7972) válasza (Felhasználó 15355) hozzászólására (») Márc 12, 2011 /
 
koszonom kiprobalom
(#) (Felhasználó 7972) válasza (Felhasználó 7972) hozzászólására (») Márc 12, 2011 /
 
simpi koszonom szepen tokeletes...

udv: Sanya
(#) kkrisz75 hozzászólása Márc 13, 2011 /
 
vilmosd

Nem jöttem rá, hogy működik a 74hc595 besorozás, és kijelzés az asm kód alapján, pedig lefut a szimuláció is.
Látom, hogy 8 órajelet ad, de a hex kódokat nem tudom vissza számolni.

Nem tudnál egy egyszerű leírást adni, hogy hogyan működik?
(#) vilmosd válasza kkrisz75 hozzászólására (») Márc 13, 2011 /
 
Hali
Probald meg beegetni, es ugy probald ki. A program a "cntr_lo" szamlalo erteket kuldi ki a 595-re. A szamlalo binaris erteke jelenik meg a LED soron. Nezz utana a binaris szamoknak. A szimulatorban lathato a szamlalo binaris, decimalis es a hex erteke.
Következő: »»   22 / 361
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