Fórum témák
» Több friss téma |
Köszönöm szépen kipróbálom.
Sziasztok, ma kezdtem el írni egy programot, ami kishiftel pár adatot.
A lényeg az, hogy az adatokat egy tömben tárolom.
Azt szeretném megcsinálni, hogy a shiftelős fügvény meghívása elött tudjam megadni a tömb értékeit, pl így ;
De ez így nem jó, sajnos nem tudom hogy kéne ezt megadni. CCS fordítót használok. Tudnátok segíteni.? Köszönöm!
Szia, szerintem így semmilyen C-ben nem lehet valós időben tömböt feltölteni.
Próbáld meg egyesével. Tehát:
Attól függ, honnan akarod feltölteni, vannak egyszerűbb módok is rá. Apropó, milyen típus az "int1" ? A hozzászólás módosítva: Jan 26, 2014
Dehogy is nem lehet! Már a tömb létrehozásakor definiálhatod a tömb elemeit:
Ki van próbálva CCS-ben, működik. Idézet: Tehát nem valós időben, hanem fordításkor. Már csak az a kérdés, hogy a kérdező mit is akar valójában... „Már a tömb létrehozásakor ...”
Gondolom azt, hogy a program futásakor a tömb elemei a tömbben legyenek.
Sziasztok
Azt meg csinálhatom hogy feltételese elágazásban adom meg data értékét?
Arra gondolok hogy ezt a feltöltést széttenném a programban és csak a végén használnám. A hozzászólás módosítva: Jan 26, 2014
A lényeg az , hogy van egy globális változóm(tömböm), amit a program indulásakor hozok létre. Van a main és a shiftelős fügvényem. A main fügvényben mielött meghívnám a shiftelős fügvényt, meg szeretném változtatni a tömb értékeit, amit zenetom írt, az sem lenne rossz, de kevés a programmemóra, és minnél takarékosabban kéne.
A hozzászólás módosítva: Jan 26, 2014
Alapvetően a lefoglalt tömb használja a helyet. Próbáld ki, amit írtam.
De a baj az , hogy a tied újrainicializálja, ami még nem is lenne rossz, de a tömb értékét két fügvény között kell mozgatnom.
Ha pedig simán ezt;
írom be neki, ez nem jó neki. Tehát amit én szeretnék, az valahogy így néz ki;
Tehát a main fügvényben a shift fügvény minden meghívása elött meg szeretném változtatni a globális adat változó értékeit.
Sziasztok!
A következőt kell megoldanom, Piccel, vagy ha nélküle javasoljátok, kérlek irányítsatok abba a topicba. Van egy tekercs ami feszültséget kap s áramot vesz fel, különböző ritmusban és mértékben. Ha túl sokáig folyik át rajta magas áram, felmelegszik s károsítja önmagát. Azonban amikor felmelegszik, változik az ellenállása. Az hogy a ráadott feszültségnél mennyi áramot vesz fel, ép az ellenállását mutatja. Vagyis ha a feszültség és áram szorzata kisebb egy bizonyos értéknél, akkor túl van melegedve. Olyan PIC létezik, amiben van feszültség és áram mérő funkció is és képes a mért értékeket összeszorozni és az eredmény függvényében x db ledet kigyújtani? Vagy ha nem PIC, akkor ezt a kérdést hogyan oldanátok meg? Köszönöm
Csinálsz egy függvényt, ami majd bepakolja a megfelelő biteket:
Mi ez, hogy különböző értékű feszültségeket/áramokat kap üzemszerűen, miközben túlmelegedik ?! Feszültség/áramgenerátor miért nem jöhet szóba ? PIC-el egyébként megoldható, mert tud feszültséget mérni (az árammérés is visszavezethető fesz.mérésre!), szorozni megint tud és programból még dönteni is !
Az a kérdés, hogy az elemek, amikkel fel akarod tölteni a tömböt, mi alapján jönnek létre? Mert az alapján lehet csak a legjobb megoldást leírni, addig csak találgatunk.
Ez azért nem jó, mert ezt a fordító nem tudja értelmezni, mert csak 1 elemnek lehet értéket adni. A hozzászólás módosítva: Jan 26, 2014
CCS-ben? Na ne már. Mondom, hogy kipróbáltam.
Programfutás közben?
Szerk.: tehát nem deklaráláskor. A hozzászólás módosítva: Jan 26, 2014
Az a háttere, hogy motor különböző fordulatokkal megy. És PWM.el van vezérelve. Mondjuk ez még gond lehet, de ennek van egy nagy előnye is. Rosszul írtam a különböző feszültség és áram értékeket. Helyesen fogalmazva egy kézi multiméter integrálja az adatokat s mikor a magasfrekis PWM-nél kicsi a kitöltési tényező akkor alacsonyabb fesz értéket és alacsonyabb áramfelvételt mutat.
Valójában ugyanannyi a feszültség, amit kap, de változó kitöltési tényezővel. Az áram is ugyanaz, de ahogy elmászik a hőmérséklet, egyre nagyobb áramokat vesz fel. de időben PWM által megszaggatva. Szóval elég lenne egy sima áram mérés, és a feszültség érték meg egy fix adat - feltéve, hogy a PIC képes ezt a PWM frekvenciájának a tempójában mérni. De lehet egyszerűbb, mint integrálni s utána abból szorozni. Sőt!!! Még csak nem is kell megszorozni a feszültséggel, hisz fix feszültség esetén az áramfelvétel értéke is maga a hőmérsékleti értéke, s felesleges ellenállás értékre, celsiusra stb. átszámítani, ennek az áram érték számértéknek megfelelően eldönthető mely ledek égjenek.. További gond, hogy merülés esetén csökken a feszültség (akkuról van táplálva) úgyhogy vagy azt is mérjük és mégis számolunk vagy olyankor hamis értéket kapunk. Lehet hogy szóba jöhet feszültség/áramgenerátor, az a baj nem értek hozzá, ezért kérdezek. Ez alatt tulajdonképpen mit értesz? Döntenie nem neki kell hanem annak aki a ledeket látva megtudja, hogy túl van melegedve. Max. azt kell eldöntenie mely ledeket gyújtja ki. Esetleg bizonyos érték fölött nem csak kigyújtja hanem villog is. Vagy ép többszínű ledet variál, de ez már programozás. Az első az érzékelés. Szerintem jó ötlet a motor hőmérsékletét egy hőmérővel való mérése helyett (aminek úgy adja át a hőt a motor) közvetlenül a motort használni hőmérőnek, annak is a tekercsét, úgy hogy az abban keletkező megnövekedett hő általi fizikai változásokat érzékeljük. Vélemény?
Persze, mert itt hozod létre a tömböt, értékadással.
Na majd utánanézek mik a lehetőségek, mert meg lehet adni, hogy program, vagy adatmemóriába kerüljön a tömb ..stb. Hjajj, csak gyakorolnom kéne ezt a cét..
Ha futás közben módosul bármely tag, természetesen arra kell hivatkozni/módosítani. Más a tömb létrehozása és más a (az új adatokkal való) feltöltése. Kezdem érteni, hogy mit kérdezett Icserny kolléga...
A memcpy eljárással lehet megoldani.
memcpy(forrás_tömb, cél_tömb, byteok_száma); Nem tudom, hogy CCS -ben van-e.
Üdvözlet. Azt szeretném megtudni hogy a 18f4550-em tudnám-e 48mhz-es kristályról járatni és akkor azzal a sebességgel dolgozna a pic avagy az csak az usb részére szól? Jelenleg 20mhz-es külső oszcillátorral megy de szeretném kihasználni a pic maximális sebességét.
Tudtok mutatni olyan topicra, cikkre mutató linket ahol PIC-el áramerősséget, feszültséget mértek?
Köszi
Csak a PLL szorzóját és az utóoszót kell állítanod:
#pragma config PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2 // CONFIG1L
Sziasztok!
Még eléggé új vagyok és szeretnék egy kis segítséget kérni tőletek! Itt a fórumon találtam egy fordulatszámmérő programozást PIC16f84-hez amit kimásoltam egy PIC simulator-ba kijavítottam benne 1 hibát amit írtak is benne hogy nem jó... de még is hibát ír ki és elég sokat ... mellékelnék egy képet hogy miről is van szó... hogy érthetőbb legyen ez egy dc56 11ewa kijelzőhöz kellene nekem ami egy opto kapcsolón keresztül mérné nekem egy tengely aktuális fordulatszámát ami percenként minimum 30-40et forog maximum meg végtelen az opto kapcsolót egy egérből szedtem...az opto kapcsoló vezérlőjén 35 lyuk van és az átmérője 18mm.... mellékelem a képet a programról (ha esetleg kell az egész akkor bemásolom) Előre is köszönöm válaszotok!
A regisztereket nem kell definiálni, mert a szimulátor már definiálta egy include fájlban, amikor kiválasztottad a pic típusát. Vagyis TMR0-tól EECON2-ig minden sort nyugodtan törölj ki a programból, nem kellenek.
töröltem 110 hibáról már csak 97 van
bemásolom a forrást és megtudod esetleg nézni nekem hogy mi az ami nem jó?
Nézzük.
Használd kód gombot. -moderátor- A hozzászólás módosítva: Jan 26, 2014
|
Bejelentkezés
Hirdetés |