Fórum témák
» Több friss téma |
Heló!
dspic30f3011 nél hogyan tudom azt megcsinálni, hogy a printf parancs az uart2re írjon? Köszi a válaszokat előre is.
Melyik fordító?Bár a c30-ban is meg az XC16-ban is ugyanaz azt hiszem.
#include <libpic30.h> main() { __C30_UART = 2; A hozzászólás módosítva: Nov 13, 2017
Sziasztok!
Találkozott már valaki azzal a problémával, hogy az mplab xc8 fordítónál, ha digitális bemeneteket állítok be, akkor azt figyelmen kívül hagyja? Mintha nem is foglalkozna a nyomógombbal.... Egyébként egy bináris ledes számlálót készítettem, gombnyomásra számol visszafelé, majd kigyújt egy ledet, és azt 10 sec-ig égni hagyja. Szinte biztos, hogy nem a hw-ben van a hiba.... PIC16F628A a mikrokontroller... Köszi a segítségeteket! Más probléma: Kétszínű (ellenparalell tipusú, és közös katódú is érdekel) ledet mikrovez. lábra rá lehet kötni? Nyilván úgy, hogy mindkét színt használhassam. Próbáltam már, ugyanennél a fordítónál/controllernél, de ez sem sikerült. Mintha lenne valami baja az A portnak... Furcsán működik.
Szia !
Idézet: „Mintha nem is foglalkozna a nyomógombbal....” Az analóg lábakat ki kell kapcsolni ( CMCON regiszterbe tegyél 7 -et ! ) ! Idézet: „Kétszínű (ellenparalell tipusú, és közös katódú is érdekel) ledet mikrovez. lábra rá lehet kötni?” Persze, de hogyan szeretnéd, mert nem mindenféleképpen ![]() A hozzászólás módosítva: Nov 14, 2017
És tényleg! Köszönöm! Ez volt a probléma!
Az antiparallel verzióra gondoltam, ha logikai 1 van a kimeneten az egyik szín "ég", ha 0 akkor a másik ![]() Itt láttam már ilyet: Bővebben: Link Ezek mennyire valid-ak?
Ezt próbáltam már. Hibát nem ír ki, de nem működik, lehet máshol lesz a gond akkor.
A port kimenetre egy invertert kötnék, a port kimenete és az inverter kimenete közé kötném a sorba kötött ellenállást és a duo led -et.
Sziasztok.
Azt szeretném ezzel 4 kapcsolot szeretnék használni egy ADC lábon. Vagy inkább használjak 4 külön lábat??
Jó a példa csak itt ha két gombot nyomsz le akkor nem tudod be azonositani hogy melyik kettőt nyomták le. Nem?
Így csináld. Az A/D konvertert 8 bitesre állítsd, így ADRESH minden bitje egy gombnak felel meg.
Pic ad-je a gyakorlatban necces annyira pontosan mérni. Ha nem extrém zavarvédettre építenek egy kapcsolást (az amatőr gyakorlat jellemzően nem arról híres), jobb csak a maximum 5 felső bitre számítani (vagy még annyira se), és a többit hibatűrésre feláldozni.
Az adott kapcsolást egyébként nem teljesen úgy használták a régi időkben. Ahhoz, hogy ott bitenként helyiértéket kaphass, váltókapcsolókat kellene a gombok pozíciójába raknod, ami 5V hiányában fixen 0V-ra húzza le az adott pozíciót. Anélkül nincsen meg az impedanciacsatolás (kimeneti ponton 1K-s forrásimpedancia). A jelzett pontra is jobb lenne egy jelkövető műveleti erősítő kapu (relatíve végtelen nagy bemeneti impedancia) impedanciacsatolónak, mert a pic ad bemenete sokkal jobban terhel, és úgy csak még tovább csökkenti a felhasználható mérési tartományt.
Én inkább gomb mátrixot használnék, ha van annyi láb rá. Ha nincs, választani nagyobb pic-et, vagy feldobni még egyet a panelra.
Ha ad-ben akarsz bízni, előbb nem ártana pár példa kapcsolással eljátszadozni mindenféle környezetben (hosszabb drótot rákötni parazita antennának, és megsétáltatni kicsit az áramkört, meg tapics felületet rakni nyákra, amihez hozzányúlkálsz, stb), hogy lásd, mennyire megbízható az, amit te sziklaszilárd ténynek hiszel, és csak utána arra hagyatkozni, amikor már biztosan tudod, hogy bírni fog annyit stabilitásra. Idézet: „Az adott kapcsolást egyébként nem teljesen úgy használták a régi időkben. Ahhoz, hogy ott bitenként helyiértéket kaphass, váltókapcsolókat kellene a gombok pozíciójába raknod, ami 5V hiányában fixen 0V-ra húzza le az adott pozíciót. Anélkül nincsen meg az impedanciacsatolás (kimeneti ponton 1K-s forrásimpedancia)” Igazad van. Én csak emlékezetből dobtam össze ezt a rajzot, és ez ugrott be elsőre. De az elv attól még működőképes, főleg ha tényleg nem 8, csak 4, vagy 5 gombra terjed. De a mellékelt ábrával biztosabban kivitelezhető.
Ha ilyen alacsony felbontású eredményre van szükség nem kell ennyire precíznek lenni. Ha nagyobb a távolság a zavarok okozhatnak gondot, de közelebb nem kell komoly szűrés. Használtam már üzemmód váltáshoz ilyen 3k-s 10 állású potit, de I2C címbeállításhoz is sima feszültségosztót csak a felső 4 bitet használva.
Hmm láttam több megoldást és montátok hogy nagyon pici az esélye hogy adc vel pont akkorát mérjek ammekorát számolok.
Ezért eldobom az ötletett hogy egyszerre két gombot nyomjak. Ezért szoftveresen azt fogom csinálni hogy pár % os türést bele rakok pl 170-160 értéknél fel 100-50 le stb...
Nem kell ilyen szűk értékben gondolkodni, ha veszed a mért érték felső 4 bitjét, nem igaz, hogy az AD nem tud 16 értéket stabilan megkülönböztetni, főleg ha a számított értékek nem pont a határok közelébe esnek.
Nem tudom ilyen potit hol lehet kapni, én is bontottam valamiből.
Ha jól látom, ez egy normál forgó kódkapcsoló és csináltak hozzá egy ellenállás hálót, annak a paneljára van ráforrasztva. A fekete pacák az ellenállások.
Idézet: „Vpp first programming entry módszer” Erről olvasnék mi is a lényege ? ha a program memória elején át van programozva az ICSPCLK és/vagy ICSPDAT akkor panelról nem lehet kiolvasni a megszokott eljárással. Ez mit jelent? Fel sem ismeri ID re ? És hogy ezt hogy is lehet csinálni ? a PK nak kell biztosítani a Vdd.... és még ? Kössz
Van egy ilyen opció a programozó szoftverbe. Ha bekapcsolod akkor először a programozó lábat kapcsolja be és csak utána a tápfeszt. Ez főleg akkor hasznos, ha a programozó láb használva van a programban és kimenetre van kapcsolva már az elején. Ilyenkor a tápfesz bekapcsolásával elkezd futni a program a PIC-ben és nem lehet átkapcsolni programozásra.
Adva van egy alkalmas (Vpp first entry -t ismerő, önmagát programozni képes) PIC, ami már fel van programozva, a MCLR bemenet le van tiltva (digitális bemenetne van beállítva), a program a 0. címen a banksel TRISx, utána a clrf TRISx utasítással. (x azt a portot jelöli, amin a PGC és a PGD láb vezérelhető.) Később (azért elég az elején) módosítja a programtárat vagy az adat memóriát. A kontroller belső órajelről jár vagy a panelon ki van építve az oszcillátor.
Hogyan is lehet ezt a kontrollert törölni? Ha bekapcsoljuk a Vdd tápot a program elindul, kimenetté állítja a PGC és PGD vonalakat. A MCLR alacsony szintjére nem reagál. A Vpp bekapcsolásakor a PGD és PGC vonalak meghajtása nem változik. Nem tudja felvenni a kapcsolatot a programozó a kontrollerrel. Ha elsőre sikerül felprogramozni, az ellenőrzés már nem fog menni... Ha a Vpp feszültséget kapcsoljuk be elsőre, a kontroller egyből programozási módba lép a Vdd bekapcsolásakor. A program biztosan nem indul el. Miért kell a Vpp first programming entry módszer esetén a programozónak biztosítania a Vdd tápot? A Vpp bekapcsolása után kell a Vdd -t is bekapcsolni. Van olyan típus is, amelyiknél a Vpp first programming entry -vel indított programozást a Vpp last programming exit módon kell befelyezni. Az időzítést a programozó végzi. Azonban a programozó nem tud bármilyen Vdd -t biztosítani. Pl. A panelt 1.8V -os kontrollerhez tervezték és 2.0V -ról működik. Olyan alkatrészeket is tartalmaz, amelynek mondjuk 2.4V a absolute maximum tápfeszültsége. A PICkit2 esetében az előállítható minimális Vdd 2.5V.
Köszönöm mindkettőtöknek a bő választ.
Namost Vpp és Mclr ugyanarról a lábról van szó. Ha a Pickit nél az alsó pipát is bejelöljük, akkor A Vpp t leküldi alacsony szintre. A Vpp first prg. módszer szerint alacsony szinten lenne bekapcsolva ? Ha ez már megvan azután kapja meg a Vdd tápot ? Vagy ha Vpp re feszültség kell akkor, hogy kell előkészíteni ? Kössz A hozzászólás módosítva: Nov 17, 2017
A Vpp feszültséget a PICkit állítja elő, nem igényel előkészítést. Ezért van az, hogy ilyen esetben a Vdd -t is a PICkit -nek kell biztosítani ill. csak a PICkit biztosíthatja.
Nem az alsó pipa határozza meg a MCLR / Vpp láb állapotát a programozás / ellenőrzés alatt. A programozási algoritmus által előírt kezdő állapot beállításával indul minden programozási módba léptetés. Vdd first entry: --- Lehet külső tápról biztosított Vdd mellett is programozni. (Törléshez ill. teljes törléshez min. Vdd érték van előírva). A kezdő állapot (PGD = 0, PGC = 0, MCLR/Vpp = 0, Vdd = 0) után a Vdd -t kapcsolja be, aztán egyéb lépések következhetnek, közben valahol a MCLR is beáll magas vagy Vpp szintre. Vpp first entry: --- Nem lehet külső tápról biztosított Vdd. A kezdő állapot (PGD = 0, PGC = 0, MCLR/Vpp = 0, Vdd = 0) után a Vpp -t kapcsolja be, aztán egyéb lépések következhetnek közben a Vdd -t is bekapcsolja. Mivel a Vdd kapcsolását a programozó végzi, az általa biztosított feszültség táplálja az egész panelt.
Kössz
ezt a 18LF8490 et még a Vpp first entry sen se lehet kiolvasni. A nyákon úgy mérem a PGC PGD lábak semmi másra nincsenek kötve. Az Mclr en mérek 2k felhúzó ellenállást csak az van kötve a 3 ból. Ahogy én néztem át a pdf leírást, nem láttam direkt az LF nek eszköz ID ket. Frekitáblázatnál látszik nagyon különböznek LF és F. Egy elvérzés erre rácsatlakozni.
Sziasztok PC tábon lévö 5v os labat használnám pic üzemeltetésre problémákat okozhat???
A PC tápon időnként akkora tüske-zuhanások vannak, hogy ihaj. Ha pic-et arról hajtanál, tegyél a táp után egy diódát, és egy legalább 10µF kondit (mennyi áramot enne az a pic?).
Ne feledkezz meg egy biztosíték beiktatásáról. A PC táp elég nagy áramot tud leadni, mire ráébredsz a hibára, az áramköröd már el is égett.
|
Bejelentkezés
Hirdetés |