Fórum témák
» Több friss téma |
Üdv!
Korábban már kérdeztem, de sajna nem jött válasz ezért újból beírom, mert fontos lenne: 18F6410-nél, meg lehet -e adni, (akár C ablakban, beírva), hogy az összes kimenet 0 legyen? ennek a kontrollernek 7 portja van, ez normál esetben 7 utasítás igyényel... nincs valami takarékosabb mód?
Ma idáig jutottam...
a logikát módosítanom kell de már félig működik Még egyszer köszi...
Igen...
Nagy a zavar ( a fejemben) Meg egy vizsgalat eleg volna a motor ki be kapcsolasahoz Egy db 2 felteteles elagazassal jobb lenne? Ha homerseklet kissebb mint beallitotthomerseklet-tolarencia akkor motorzaras szubrutin Ha homerseklet nagyobb mint beallitotthomerseklet+tolarencia akkor motornyitas szubrutin Ehhez tarolnom kellene a pill homersekletet is?
Szia! Látom az én verziómnál maradtál, örülök neki bár az csak egy szemléltető példának indult De ha már ennél maradtál és mivel ahogy elnézem te nem akarsz vele időt mérni így azt a részt ki lehet belőle szedni azzal is kisebb és átláthatóbb lesz. A menünél meg ahol ki lehet választani hogy mit szeretnél módosítani ha megnézed minden oszlopban ugyanaz van az utolsó 3 helyen (sz2= "lapozz... -tól a lcd displ.. print string...) ezeket tedd ki a többirányú elágazás elé és akkor nem kell minden oszlopba, az lcd clear is elég 1x a többirányú elágazás előtt. Ja meg amiket nem használsz változókat stringeket is gyomláld ki. ezeket még átírod és akkor már bele is fér a 16f877-be is
Elvesztem a részletekben...
...de küzdök... ...visszaléptem a kályhához... előző verzió... de ha volna időd egy gyors gyomlálásra ))) A lenti file már jól mukodik... A kettőből reszelek egyet épp...
Kicsit gazoltam meg alakítottam meg az új dolgaidat megcsináltam, pl a motoridőt és a mérésközt.. próbáld ki hogy jó e így
köszi...
mar csak azt vettem észre hogy ha a motort vezérelte már az egyik irányba akkor az ujbolmérés után már ugyanabba az irányba nem teszi meg ismét... pedig ha nem elég a nyitás még rá kellene nyitnia mégegyszer meg mégegyszer... (végálláskapcsoló állítja majd meg extrém esetben) na majd holnap megfejtem Mégegyszer köszi... Istenek vannak itt a fórumon...
Ja én meg azt hittem hogy ha ki van nyitva ne erőltesse tovább.. Akkor csak annyit kell csinálnod hogy a ha ki<>a feltételes elágazások igen ágait kihúzod az elágazás elé és törlöd az elágazást meg az a=ki számításokat ja meg az "a"változót is lehet.. Bár akkor nem értem minek kell a MOTORMOZGIDO változó
Nem teljesen nyitnám az ajtókat hanem csak résnyire majd ismét egy kicsit és így tovább...
És ha túlhűl akkor meg rázárok kicsit és megint figyelek... regulálódik igy és kevesebbet jár a motor... a MOTORMOZGIDO változóval lehet az optimális sebességét a hűlésnek beállítani (megfelelően kinyitni a sátrat - de nem is túlságosan) lehet hogy kész lesz a héten
Sziasztok
Most ismerkedem a flowcode-val és hát elakadtam egy kicsit. .ASM-be firkálgatok ezt azt ,de most a flowcode-ot is szeretném használni.Hogyan lehet biteket tesztelni egyszerüen ugy mint az asm-ben pl:btfss reg,bit vag btfsc reg,bit?Gondolom van valami jó megoldá,de a sample progik között nem találtam.
Így valahogy? Meg tettem bele olyat is hogy a tolerancia hasson a fényerőre is, ami azért kell hogy a váltó fényerőnél ne billegjen oda vissza ezen kívül tettem bele egy alapbeállítás betöltést is a könnyebb tesztelés érdekében
Szia!
Van benne egy olyan funkció hogy "c-kód beillesztése" mert szerintem ezzel a progival csak alap logikai dolgokat lehet megoldani és ha ez neked nem elég akkor lehet c kódot is megadni.
én is melóztam rajta...
de elkalandoztam az eagle telepítővel...
felvetődött bennem egy kérdés...
a progi most a relémeghuzásoknál illetve a mérések közötti várakozásnál nem frissíti az LCD-t --> nem aktuélis adatok jelennek meg (pl a hőmérséklet fényerő változik) hanem áll... feltételes ugrással vagy ciklussal helyettesítsem a delayt?
Vagy ez a probléma már csak megszakítással oldható meg?
Huuu..
C-ül nem nagyon tudod.Akkor megpróbálom máshogy feltenni a kérdést: Van 1 portunk mondjuk PORTB és egy másik az meg PORTC. A Bport-ra ráakasztok 8 kapcsolót a C-re pedig 8 LED-et.Ha a pl. a Bport 2. bitet 1be billentem(kapcsolóval) akkor szeretném a Cport 5. bit-et bekapcsolni.Azaz figyelnem kellene a Bport 2.bitet és ha 1 akkor kapcsoljam be a Cport 5.bit-et.Ezt hogy lehet okosan megoldani Flowcode-val? ASM-ben ez kb igy néz ki: [code=c]btfsc PORTB,2 bsf PORTC,5 bcf PORTB,5 Gondolom van valami frappáns megoldás erre is. Köszi
Nem
Csináld úgy hogy a késleltetés helyett beteszel egy feltételes elágazást ahol vizsgálod hogy a MOTORMOZGIDO nagyobb e mint pl "z" ami egy új változó lesz (ilyenkor kell elvileg mennie a motornak) , ha kisebb akkor értékszámítás z=z+1 és ebbe az ágba kell tenni a led on-t is ha nagyobb akkor értékszámítás z=0 és ebbe az ágba meg a led off kell ezzel azt éred el hogy nem áll meg a progid pl 10 másodpercre csak végigszalad megnézi hogy kell e még mennie a motornak és ha nem kikapcsolja vagy be attól függ mire van szükség..
Elakadtam...
Amit mondtál az bevált a motor üzemelési idejének beállításához de a késleltetésre (hogy MERESEKKOZOTT ideig ne nyúljon a motorokhoz) nem tudom belőni...
Ha jól értettem akkor így jó lesz..
Újracsináltam az egészet mert kezdett kicsit káoszos lenni remélem ez már mindent tud ami neked kell. Kicsit le lett egyszerűsítve mert elég 3 gomb ehhez a menühöz, és így belefér még egy 16F88-ba is.
Az elsőre én is gondoltam de ha már két gombot használok egyszerre akkor már nem lesz jó pl :ha a 2. és 1. bit 1 lesz akkor a be=3 és igy nem teljesül a feltétel. A másik megoldásra nem gondoltam KÖSZI ez járhatónak tünik ,de hogy tudok több bemenetet használni és hozzárendelni kimenetet.Pl.:B1->C2 ÉS B2->C4 stb... :confusedróbáltam de nem igazán müködik ugy ahogy én akarom.
1.bit 1
2.bit 1 3.bit 0 .... akkor be = 3 switch ugy néz ki hogy első elágazás 1 második elágazás 2 harmadik 4 és igy tovább 8 ,16,32,...128 de a be =3 és igy egyik sem teljesül,vagy rosszul gondolom ?
Közben rájöttem csak igy nagyon fogja enni a progi a ramot:minden egyes be-hez kell 1 uj változót dekralálni.
Oké értem a gondolatmenetd de az alap problémám még mindig megvan,ha például a bemeneteken szenzorok vannak mondjuk 8 db B1-B8 ig akkor már nagyon sok a elágazási lehetőség és igy ez nem használható,ezért akartam volna a bit tesztelést megvalositani.
Igen ez igaz csak én még mindig ASM-be gondolkozom és nem akarom teleszemetelni a ramot.Akkor nincs frappáns megoldás a bit tesztre.
Értem és akkor mi van ha a b7 kapcsoló kapcsolt állapotban van akkor már a kimeneten nincs változás.Én ugy gondolom hogy minden variációhoz legyen "számitás" akkor 255 variáció kell Gondoltam még arra is hogy maszkolom AND függvénnyel a bemenetet és akkor csak 1 bitet fog látni az elágazás csak ez elég bonyolult lesz igy
ASM-et is ezt nem tudtam ez igy már szuper akkor meg is próbálom.Köszi
Üdv... Most sikerült csak gép elé kerülnöm...
Nézem de valamiért nem vezérli a ledeket... ...vagy csak nálam?
Szia!
Csak nálad első indításkor nyomni kell neki egy default betöltést utána egy ment és kilépést , mert a ram első bekapcsoláskor random értéket vesz fel és az lehet hogy a progi szempontjából túl hosszú idő lenne vagy túl rövid és nem látnád a felvillanást. |
Bejelentkezés
Hirdetés |