Fórum témák
» Több friss téma |
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.>>
Köszönet a gyors reagálásért. Ezt be fogom építeni a programba.
HG6DAB
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. .
Ez csak egy kísérlet de , látszik rajta a lényeg ( még csak a jobb oldali gomb él a programban )
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.
Le maradt a file és nem tudtam módosítani már.
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.
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.
É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
Jól értelmezed,de az 1 az A0.Hogy értsd,pl. 3 az A0 és A1.255-öt küldj ki a portra.
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.
Ü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 ???
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...
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?
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?
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....
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 .
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
é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ó
Már töltöm is le a tiédet és kezdem tanulmányozni. . .
Te profibb vagy mint én.
Elsőre tetszik, mert azt csinálja amit kell de most ásom bele magam a logikájába
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. . .
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?
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.
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
koszonom kiprobalom
simpi koszonom szepen tokeletes...
udv: Sanya
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?
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. |
Bejelentkezés
Hirdetés |