Fórum témák
» Több friss téma |
Ismér egy kérdés: kétszámjegyü számot hogy tudok helyiértékre bontani? Értem én hogy 12 = 1 és 2.
10*2+2=22... 12=10*1+2...
Nem használtam még Slave módban SPI-t PIC-ben, elvileg SS engedélyező láb nélkül is működnie kéne. Proteust nem használok, PIC-ben fejlesztek mindig...
szam=12
tizes=szam/10 egyes= szam-tizes*10
Pl: INTtoSTR , Left függvény eredménye lesz a tizes helyiérték, Right az egyes. Majd STRtoINT mindkettőre és már szét is vannak szedve.
10 biten a maximális érték 1023. Ha az azonosítók e felett vannak, akkor nem lehet keveredés. Pl. az első 1024, a második 1025 és így tovább. Igaz, ez jócskán megnöveli az adatforgalmat...
Pofon egyszerű! Az SPI CS jelekkel operál. Kiadod a jelet, onnantól indul a buli.
Sziasztok
Gondoltam megosztom veletek, hátha másnak is hasznos lesz! Atmega 8 TQFP tokozását beleraktam flowcodba (Működik az ADC 6-7 csatornája is) Szimulációban is tökéletesen működik! Továbbá beleraktam több megszakítást (ADC, Timer2 assyncron, Analog comparator, bár utóbbi nem működik jól) A fájlokat az FCD mappába kell belerakni
Egy 8bites CRC simán beférne. Olyan, amilyet az 1 Wire használ. Azt hiszem tettem fel egy példát. Egy bájtal lenne több az adat és nem kéne kérdez-feleleket játszani, csak ha indokolt.
Valamint mit jelent az, hogy menet közben? Csomagonként újraadsz, gondolom, nem lesz folyamatosan engedélyezve a csatona...!? A hozzászólás módosítva: Ápr 3, 2013
Köszi a választ de nekem szimpatikusabb a matematikai megközelités (azt értem), sajna nem vágom ezeket a dolgokat, hogy jobbra illetve balra de rajtavagyok hogy megfejtsem mi mit csinál.
Köszi
Valoszinü ezt fogom alkalmazni mert ezt értem és sima logika. A hozzászólás módosítva: Ápr 3, 2013
Ez se nagy ördöngösség, de persze a másik sokkal egyszerűbb és kevesebb helyet foglal.
Köszi de nem értem a logikát, a left illetve a right azt jelöli hogy melyik szám hol foglal helyet? És mi van akkor ha az érték 3 számjegyü? Persze ez nekem most nem lényeg de lehetséges dolog. Amugy már kezdem érteni a dolgot, föleg igy hogy csináltál nekem egy mintaprogramot.
Köszönöm
Excel-ben is vannak ilyen függvények. A left a szöveg bal oldalát adja vissza a megadott mennyiségig. Pl.:
left("valami",2) = "va" Ugyanígy a right is, csak az jobbról indít. Nem biztos, hogy ez a szintaktika a Flowcode-ban, csak hasraütöttem, de ez a lényege.
Korábban rengeteget foglalkoztunk, hogyan lehet számokat digitekre bontani, megjeleníteni, stb. Úgy emlékszem te akkor is itt voltál már...
Köszi, még a végén megtanulom használni az excelt is. Akkor igy már értem a dolgot csak tudás hiányában szenvedek.
Más vagyis közeli, szeretnék egy DS18b20-at kiolvasni és szegmenskijelzövel megjeleniteni, namármost az lehetséges hogy már alapból stringben olvasom a hömérsékletet, csak mert akkor leröviditteném a dolgot.
Abból nem tudod szövegként kiolvasni az eredményt. A kijelzőid hogyan kapcsolódnak a mikrovezérlőhöz? A beépített makrókkal (multiplexált) vagy direkt? Ettől függően kell szétbontanod a kapott eredményt.
Egyszerüen irom mert akkor tudom mit irok, a kapcsolodás ugy müködik hogy a szegmensek azonos lábon és az anod tranyon keresztül megy. A program amit idáig sikerült (megint nem annál a gépnél vagyok) az main-ben olvasssa a DS-t majd szegmens macro amiben elössször számolja a tizes karaktert majd megjelenitti agy ujjabb macroból ami maga az érték és utánna jön az egyes ami szintén igy müködik. Azért kell külön macro mert a direkt szegmenskijelzö nem akart müködni igy egyesével kapcsolom a szegmenseket de az müködik is mert 0-9-ig lépésenként tudok kijelezni.
Úgy tűnik, jól csinálod. Miért kellene neked ehhez szöveg?
Csak azért mert akkor nem kell átalakitanom hanem alpból azt olvasom de ugytünik nem lényeg mert akkora nagy helyet nem fogyaszt hogy bajt csináljon.
Végre valami amit jol csinálok Más projektben is vagyok igy fel is teszem a kérdést: ADC-n szeretnék mérni egy feszültségosztos feszt de nem jövök rá hogy mivel olvassam be, értem én byte vagy int vagy valami más?
Mert amit lehet egyszerűen azt lehet túlbonyolítva is
Igen nekem is vannak emlékeim de csak foszlányok és abból nem jöttem rá.
A másik dolog hogy ezzel a forummal is bajban vagyok mert nem tudom megfelelöen használni igy inkább kérdezek ha megakadok, különben folyamatosan olvasnék de nem haladnék elöre.
Ugyebár ezt a feszmérést is kitárgyaltuk de nem jutok dülörre hogy mi a leg megfelelöbb megoldás.
Még egy kérdés, a forumra feltöltöttél anno egy DS hömérö programot és ott volt benne egy 200ms-os késleltetés, az mindenképp kell bele?
Csak egy sima egyszerü 690-est használok semmi más nincs is benne, max kisebb feltételes elág és két kimenet kapcsolás lenne benne. Ennyit még elbir a cucc.
Teljesen egyedi a szegmens megoldás (kükön kapcsolgatom a kimeneteket) mert nem akart müködni a gyári flow megoldás.
Akkor nekilátok a timer-nek (tanulmányozás) Esetleg abban tudnál segiteni hogy annakidején valaki tett fel egy "Launch PIC timer calculator+ programot és ment is de most nem akar müködni, azt irja hogy ellenörizzem a website-on azz ujjabb verziot de nem találom valamiért. Idézet: „ADC-n szeretnék mérni egy feszültségosztos feszt de nem jövök rá hogy mivel olvassam be, értem én byte vagy int vagy valami más?” Ha az ADC eredményét byte-ként kéred ki, akkor az a változó, amibe beolvasod, legyen byte. Kivéve akkor, ha az eredménnyel további műveleteket akarsz csinálni, aminek az eredménye meghaladhatja a 255 -öt. Igazábol mindig a várható legnagyobb eredményhez kell igazítani a változót. Persze fel lehet venni Long típusú változót is, de az nagy pazarlás. Esetleg be sem fér a vezérlőbe a program a feleslegesen létrehozott változók miatt, vagy a feleslegesen nagy méretük miatt. A mellékletben láthatod, hogy melyik típusú változó mekkora lehet. Ha több adatot akarsz belegyömöszölni, akkor a változó túlcsordul és azután már nem lehet visszanyerni belőle az eredeti értéket, aláméretezni sem jó. Továbbá, sokkal kevesebb memóriát fogyaszt az, ha egy változót többször használsz mint az, ha több változót hozol létre, amit csak egyszer-kétszer használsz az egész program futása alatt. Én alapvetően nem vagyok mikrokontroller guru. Ha nincs a Flowcode, tuti bele sem kezdek, mert nekem a C nyelv már magas annyira, hogy a hobbiáramköreim kedvéért nem tanulom meg. Se időm, se kedvem hozzá. Viszont, programozni még Commodore +4-en kezdtem valamikor a műanyag előtti időkben, ott azért könnyen rá lehetett szokni a takarékosságra. Idézet: „Még egy kérdés, a forumra feltöltöttél anno egy DS hömérö programot és ott volt benne egy 200ms-os késleltetés, az mindenképp kell bele?” Azt igazábol csak azért tettem bele, hogy nem kérje ki olyan sűrűn a hőmérsékleti adatokat a DS-ből. A hőmérséklet ingadozására nem jellemző, hogy másodpercenként több tíz fokot esik vagy emelkedik. Ahol pedig igen, ott nyílván nem ilyen játékszerekkel mérik azt. A hozzászólás módosítva: Ápr 3, 2013
Idézet: „Gyári 4x7 szegmenses szerintem nem lesz jó mert késleltetéssel működik.” Azt hittem, hogy csak nekem nem szimpatikus a beépített 7Seg meghajtó...
Szerintem nem teljesen tesztelt ez a flow vagy mi nem értünk hozzá
Az elözzö kimerittö válaszodat pedig köszönöm és ugygondolom hogy meg is étettem.
Mert nekem még ez a freki számolgatás magas ott viszont megvolt a képlet minden értéke.
|
Bejelentkezés
Hirdetés |