Fórum témák
» Több friss téma |
Idézet: „leg könnyebben használható” A legkönyebben használható sosem a leggyorsabb, ezt te is tudod már, hiszen amit ass-ben megírsz röviden az C-ben hoszabb. Nos nem tudom miben írták a PLC szoftverét, de ha C-ben akkor nyilván ha egy 3. nyelvet alakítanak ki belőle ami kényelemre alapul az még lasabb lesz. Ha ass-ben írták akkor ahogy pajti2 is mondta balfékek.
74hc595 nél a 13 lábat(OE) pwmezem nem a lacht lábat az baj lehet??
Az output enable vezérli a kimenetet, azzal tudod ki/bekapcsolni a meghajtást. Bajt nem jelent, de ha időnként bekapcsolgatod az eszközt, ne csodálkozz rajta, ha működik
![]()
Lacht ott kellene pwmezni nem a "blank" lábat?
Van rajta egy master reset a shift register-hez, a 10-es. Azt ha lehuzigálod, kitörölgeted a shift register-t. Az a szándékod?
Ha minden igaz meg van a gond.
idömultiplexem és a pwmenem nincs összhangba igy elöfordulhat az hogy vibrál a led és nem tudom 100% an a ledet elsötétiteni. SZERINTEM. hát megrobálom a C kódot beszurni hogy átlátható legyen.
Megprobáltam le karcsúsitani a kódót.A prbléma az hogy ha 255 állítom az értéket a ledek kicsit villágítanak még pedig mérés alapján nem kellen... Ha valaki tud segíteni kérem segítsen köszönöm. Idézet: „Van rajta egy master reset a shift register-hez, a 10-es. Azt ha lehuzigálod, kitörölgeted a shift register-t. Az a szándékod?” Azt tudom de én csak annyit akarok hogy engedélyezem a shiftlábait és tiltom ennyit.
Ha a labon kikapcsolom a pwmete es a labat 1 be vagy nullaba billentem akkor jo de pwnel pedig marad a hiba jelenseg .Ugy hogy szoftveres a hiba... Csak nem tudom miert.... Ha valakinek van otlete megkoszonnem ha segitene . Koszonom
Szerintem te az OE labat szeretned kapcsolni (13-as, invertalt). Az engedelyezi a kimeneteket, a shift regiszter kozben a hatterben valtozatlan marad.
Igen úgy szeretném csak közbe idömultiplexelés is van....
De sajnos még mindig az a baj hogy a ledek fényerejét nem tudom 0-ra vinni. Manuálisan pedig tudom amikor a láb egy 1 vagy 0 (0v-5v)értéket adom.
Egy kapcsrajz lenne jobb, mert a jelek szerint valami fogalom zavar van, és el kellene kerülni a továbbiakat.
És ha a PWM-et rajta hagyod és a bemenetet tartod nullán. Vagyis a bemenetre fix nullákat küldesz? Meg szkóppal rá kéne mérni arra a teljes kitöltésre tényleg teljes-e? Ha fix 0 bemenettel jó és tényleg teljes kitöltés a teljes kitöltés akkor biztos, hogy nincs szinkronban a multiplex a PWM-el. Ha van 2 csatonás szkópod akkor még össze is nézheted a jeleket is abból is kiderül, hogy valószínűleg szinkron hiba.
Egy kicsit javítom az előző gondolatomat. Azt mondtad teljes kitöltésnél is van fény?Ez egy LED-re vagy az összesre vonatkozik? Mert ha egy LED-re akkor az egyértelmű. Ha az összesre egyszerre akkor vagy a PWN nem teljes(ami szofver hiba), vagy valami áramköri huncutság van a dologban.
A hozzászólás módosítva: Okt 3, 2017
Kapcsolást megrajzolom.
Idézet: „És ha a PWM-et rajta hagyod és a bemenetet tartod nullán. Vagyis a bemenetre fix nullákat küldesz? Meg szkóppal rá kéne mérni arra a teljes kitöltésre tényleg teljes-e? Ha fix 0 bemenettel jó és tényleg teljes kitöltés a teljes kitöltés akkor biztos, hogy nincs szinkronban a multiplex a PWM-el. Ha van 2 csatonás szkópod akkor még össze is nézheted a jeleket is abból is kiderül, hogy valószínűleg szinkron hiba.” Kiengettem rá a 5v-0v akkor teljesen jó volt de amikor pwmet állítottam rá és nem volt időmultiplexelve akkor pedig nem tudtam a ledeket teljesen ki offolni. Mintha a pwm a teljes kitöltést nem tudná......
Hát akkor nézz rá szkóppal arra pwm-re. Valam nem jó a programban. Ez mikroC igaz?
Nézd meg valahol nem indítod e ujra a PWM-et valamelyik ciklusban. Melyik PIC is ez?
Ha jól csinálom amikor pic indul beállítom a 5khz pwmet és teljes kitöltésre állítom kezdésnek és a ciklusba csak a kitöltésekkel játszom nem állítom meg a pwmet csak kitöltést variálom ennyi a kódom feljebb található.
Nem tudjuk a magas szintű nyelven írt forrásból, hogy milyen értékeket állít be a programod a TxCON, PRx, CCPRxL és CCPRxH regiszterekbe. De ilyen problémával már küzdöttünk egyszer...
Ha a CCPRxL > PR2, a CCPx modul kimenete nem megy alalcsony, ha a CCPRxL = 0, akkor nem megy magas szintre. Mutasd meg, milyen kódot fordít a C a sorokhoz.
Nem nagyon olvasgattam vissza mhogyan is áll ez össze, de BCM-el nem lett volna egyszerűbb?
PWM 2 néztem meg és ezeket az eredményeket kaptam:
Egy sort lefelejtettem:
Semmit se véltoztatott az értékeken...Se ha 0 írtam se ha 1 est.
Nem tudok úgy segíteni, ha nem ismerem a programot. Hála a magas szintű nyelveknek a forrás listája nem tartalmazza azokat az értékeket, amik végül a megfelelő SFR -be kerülnek. Néhány hónapja pontosan ezzel a problémával küzdöttünk és bebizonyosodott, hogy a Mikroelektronika C PWM függvénykönyvtára meglehetősen speciálisan kezeli az értékeket.
A kérdés az, hogy ez a sor mire fordul le:
Lehet elbaltásztam holnap újra megprobálom csak az lenne a fő kérdés melyik értékeket figyeljem amit feljebb emlitettél??
Legjobb lenne, ha egy char típusú változót adnál meg paraméternek:
Rendben ugy lesz de miert jobb a char tipus tudom mi az csak miert jobb ugy??
Sziasztok... csak nem hagy nyugodni a gondolat... ugyhogy tovább töröm a fejem..
A cél amit meg szeretnék valósítani az egy Master PIC és 5-6 slave PIC ( szenzorok lennének rajta, klasszikus SmartHome projekt!) Mindezzel nem is lenne gond mert mondjuk kábelesen egy I2C protokollal megoldható, de én valahogy kanóc nélkül szeretném! Egy forumtárs felvetése alapján gndolkodtam sima 433 modulokon RS232 protokollal és a mondatba elrejteni az azonosítást de még egy kicsit homályos ez nekem! Esetleg van ötletetek erre vagy más tipusú megvalósításra? Köszönöm
Ha az átadott érték konstans, a fordító a belőle származó értékeket már a fordításkor kiszámolhatja és azokat töltheti be a SFR -ekbe. Ha az átadott paraméter változó, csak a függvény hívásoknál kap tényleges értéket, a kódnak "számolnia" kell az SFR -ekbe törtendő értéket.
Teljesen szűz projectbe beállítottam az értékeke és ezeket az eredményeket kaptam.:
Duty(0):
Duty(255):
Az a bizonyos eb a másodikban van elhantolva:
A PWM 10 bites felbontású. A kitöltés felső 8 bitje a CCPRxL regiszter 8 bitje, az alsó két bit a CCPRxH 5.4 bitjei. A 1023/1024*100% -hoz a CCCRxH register 5.4 bitjeit is 1 -re kellene állítani. Idézet egy 18F adatlapjából: Idézet: „If the PWM duty cycle value is longer than the PWM period, the CCP1 pin will not be cleared.” Próbáld meg nagyobb számmal elérni, hogy a CCPRxL -be 199 -nél nagyobb szám kerüljön. A paraméter átadás bírni fogja a 255 -nél nagyobb értéket is.
|
Bejelentkezés
Hirdetés |