Fórum témák
» Több friss téma |
Minkét verziót próbáltam, mindkét esetben 5V-ot mértem a PIC lábain, a hibajelenség ugyanaz volt.
Ha elindul pár másodpercre akkor nem hiszem, hogy a PIC hibája. Vagy az összeállításban van a hiba, vagy a program. Én a programra tippelnék.
Feldobhatnád a kódot, valaki biztos ért a micropascalhoz, bár egy LED villogtatás nem hisze, hogy nagyon eltér a C-től. A hozzászólás módosítva: Nov 1, 2013
A program végtelenül egyszerű:
Az összeállítás, pedig a B portra vannak kötve a ledek 220 ohm-os ellenállásal.
Hát fél siker:
A helyzet az, hogy a PWM így tényleg jókor indul és el is éri a 100%-ot, de ha egyszer elindult akkor nem áll le többé, tehát hiába húzom le földre az a/D bemenetet akkor sem lesz 0% a kitöltés. A hozzászólás módosítva: Nov 1, 2013
Szia!
Ha az AD értéke kisebb mint 50, akkor mégis mi venné le a pwm kitölés értékét, ha visszaküldöd a main címkére?
Aham, kapisgálom, de a megoldást még nem tudom...
![]()
Ránézésre jó.
PortB elvileg nem osztozik semmivel ami alapbeállítással bekapcsolva lenne. Próbáld ki a kimeneteket egyenként. Egyszerre csak 1 LED-et villogtass. A hozzászólás módosítva: Nov 2, 2013
Így oldottam meg:
Működni működik, de nem tudom "szakmai" szempontból jó-e? ![]() A hozzászólás módosítva: Nov 2, 2013
Sziasztok!
Szeretnék segítséget kérni abban, hogy amit ebben a cikkben látunk spektrum analizátor(nem tudom milyen nevei vannak még), hogyan valósítható meg PIC-ben. A probléma az, hogy se ezt az MSGEQ7 nem szeretném használni(nincs lehetőségem beszerezni) meg sávszűrő komparátorokat sem szeretnék(hely igény miatt). Mint, ahogy Fizikus is említi lehetne FFT-vel is megvalósítani. A PIC-ben a sávszűrést csak FFT-vel tudom megvalósítani vagy van lehetőség másra is(az FFT nem igazán értem azért szeretném mással megoldani). Üdv Gábor!
ezt a variációt is próbáltam, de sehogy sem működik, pobáltam az PortA-ra átírni, de semmi.
Esetleg egy külső oscillator segíthet? Ez a PIC elég régi, még a sulis korszakomból maradt rajtam(kb 3éve, és azóta nem is volt bántva, csak volt a szekrényembe), kérdéses az előélete, sajnos a többit amit használhatnék nem találom... Tegnap este rendeltem új PIC-eket, de még ma újra megpróbálom, hátha benéztem valmait...
MCLR-t felhúztad tápra? Nem jó ha lebeg.
Olvasd vissza a PIC-ből a hexet és hasonlitsd össze, hogy jól írta e be.
működik
![]() Valami érintkezési gond lehet, mert ha teljesen lenyomom a PIC-et a próbapanelba, akkor nem működik, ha viszont, csak félig, akkor teljesen jól működik, nem értem a miért, a próbapanelt is csak párszor használtam. Köszönöm a hozzászólásokat. Üdv.
Ez a baja ezeknek a próbapaneleknek...
Így már én is jártam elég sokszor. Ráment összesen már egy jó pár napom ilyen hibák miatt.
![]()
Szia!
Az első kivonás után a maradékot viszont fel kell szorozni akkora számmal. hogy megkapd a PR2 regiszterbe írt számot. Ez a PIC18-as sorozatnál 2 utasítás a beépített szorzóáramkör miatt, de írhatsz saját függvényt is.
Szia! Köszi, közben megoldódott. Hp41C megadta az irányt, csak kicsit nehezen jöttem rá, hogy miként is kell alkalmazni.
![]()
Sziasztok !
Jelenleg a soros porton való kommunikációt próbálgatom rs232 segítségével Hyper Terminálra. A parancssor a következő : a=2 loop: serout2 pinout, 396, [dec3 a," " bin8 a, 13,10] pause 500 a=a+1 goto loop Ami eredményezi, hogy a definiált kimenetre 2400 baud-al először decimális formában három digittel, majd bináris formában nyolc digittel kiírja "a" változó értékét. Majd a változóhoz hozzáad 1-et és fél mp. szünet után a következő sorba ismét kiírja. Ebből annyi valósul meg hogy indításkor : 002 00000010 és innentől értelmezhetetlen karakterek. Ha újraindítom akkor ismét egy sor helyesen és aztán mindenféle karaktersorozat. Próbáltam az adatbitekkel és a stopbitek számával játszani de nem vezetett eredményre. A parancssor végen szerepelő a "13,10" ez mit jelent? sok próbálgatás után van egy olyan sejtésem hogy a 13-as szám az sort vált mert mikor ezt próbáltam változtatni akkor a képernyő különböző részeire írta, sajnos a rossz karaktereket. Üdv.
Az lenne a kérdésem, hogy hogyan lehet megoldani (ha meglehet egyáltalán), hogy két különböző portra kötött (PortB és PortC) ledsort futófényként működtessen a pic (16F877A), de eltérő sebességgel?
Igen: Kell hozzá egy periódikus megszakítás (timer), aminek az időzítéséből egész számú többszörösként kijön mindkét futófény lépési ideje. Továbbá két számláló, ami a megszakításokat számolja az egyik ill. a másik futófénynek és egy állapot regiszter. Kezdetben a számlálókat a sebesség szerinti értékre kell állítani, az állapotregisztert pedig 0 -ra. Fel kell programozni a timer megszakítást. A megszakítási rutin csökkenti a számlálók értékét, ha valamelyik elérte a 0 -t, az állapot regiszter egy bitjén jelzi (1 -re állítja) és újratölti a számlálót, majd visszatér. A főprogram pedig vár a jelzőbitekre. Ha valamelyik futófény jelzőbitjét 1 -nek olvassa, végrehajtja a lépését és törli a jelzőbitet.
Sziasztok!
Ha van egy struktúrám, hogyan tudnék pointerrel az első elemére mutatni? Azért kellene, hogy utána csak növelem a pointert, és a struktúra következő elemére kellene hogy mutasson. Megoldható ez? Így néz ki a struktúra:
A mutató valamilyen memóriacímre mutat, ennek legkisebb címezhető egysége a bájt. Biteket nem lehet mutatóval címezni.
Akkor sehogy nem megoldható, hogy hivatkozzak valameik elemére azon kívűl, hogy Variablebits.BIT0? pl számmal?
if ((Variables & Mask) == 0) ; ((Variables >> n) & 1)... formában, ahol a Mask csak 1biten tartalmaz 1 -et, n pedig a kezelni kívánt bit sorszáma.
A hozzászólás módosítva: Nov 4, 2013
Köszönöm! Hát ezen még elrágódok egy darabig az biztos...
Üdv!
Feltettem a gépemre az MPLAB X IDE v1.95-öt, és meglepve tapasztaltam hogy nem tartalmazza az ASM30 asszemblert. Én még az 1.2-es verziót használtam régen, abban benne volt alapból. Kicsit utánaolvastam, és azt írják hogy már az XC16 csomag tartalmazza ezt is. Hát én letöltöttem és feltelepítettem, de a fordítók között csak az XC16 látható, és az ASM30-at továbbra sem találja. Így még a régi cuccaimat sem tudom lefordítani, mert nem találja a hozzávalókat. Valaki tudna segíteni?
Üdv!
Megépitettem ezt: http://www.dextrel.net/diyzerocrosser.htm A kimenetet PIC lábra kötöttem, de nem működik a dolog. Sajnos oszcilloszkópom nincs, de tekintettel arra, hogy az opto kimenetét földelve a megszakítás lefut biztos vagyok benne, hogy az áramkör erősáramú oldalán van a probléma. Minden alkatrész a megadottak szerinti és jól is lett bekötve. Egyetlen dolog amire gyanakszom a C1 kondenzátor, amelyiknek nem teljesen értem a funkcióját. A 2db 220K ellenállás AC bemenet felöli oldalán 240 voltot mérek. A "kimeneteken" pedig nullát. Az egyik "bemenet" és a másik "kimenetén" 120Voltot. Tehát valami leterheli. A kondenzátorom nem új, sőt lehet vagy 30 éves, de nem merem nélküle kipróbálni az egészet, nehogy eldurranjanak a diódák, mert abból sajnos nincs több. Segitsetek hol lehet az áramkör buktatója?
Sziasztok!
Pointerekkel bajlódom. Egy függvénynek szeretnék átadni memóriacímeket, de valamiért nem működik. Mit csinálok rosszúl?? C30 fordítót használok. Az átadott változók értékét szeretném növelni egyel az alábbi módon. Próbáltam úgy is, hogy novel(&rl, &gl, &bl);
nem tudom, hogy mit akarsz, de szerintem r++, g++, b++ kellene (tehát csillag nélkül).
A hozzászólás módosítva: Nov 8, 2013
A csillagokat hagyd ki. Továbbá találkoztam olyan forditóval amelyik a i++ nem ette meg scak az i=i+1et
Azt szeretném, hogy amit átadok értéket, az egyel növelve legyen, amikor meghívom a függvényt. (nem a címet szeretném növelni)
|
Bejelentkezés
Hirdetés |