Fórum témák
» Több friss téma |
Idézet: Igen.„A +-Vref tulajdonképpen miért kell? ezek a tartományok között végez méréseket a konverter?” Idézet: Igen. Pl. 0 - 2 V-ig akarod mérni a feszültséget de a Vref+ 5 V-on van. Ilyenkor az ADC több, mint fele felbontását elbukod. „Ha nem kell a teljes tápfesz tartomány, akkor pontosabb lesz a felbontás?”
Köszi!
Még egy kérdésem lenne: Mi szerint kell megválasztani a mintavételezési frekvenciát? Én DC jelszintet szeretnék digitalizálni, ezért a sávszélesség nem kritikus.
Szaisztok olyan problémába ütköztem hogy a pwmem lassan íllitja be az értéket.
Azt érzékelem szakatottan állitja a pwm ent a potmétertekerése képest. PIC18f46k22 röl van szó. MikroC be programozom . És idömultiplexes kijelzés alkalmazok.
Ha szükséges kirajzol alprogramot is megmutatom . Nem értem miért szaggatotta pwm beállítás ötlet valakinek?? Egy másik kérdésem is lenne ennek a pic nek an4 e csak kb 500 érték ig add értéket ezt hol lehet egváltoztatni??? A hozzászólás módosítva: Szept 9, 2017
Gondolom azért nem kapok választ mert érthetettlen elnézést megprobálom újból.
PIC18f46k22-töt használom. Olyan problémám van amikor kirajzolom az effektet akkor potencióméterrel szeretném a szint kalibrálni. A probléma az hogy levan maradva a potméterhez képest pwm kitöltés vagy is tekerem a potmétert kb 1 seces után beállítja a fényerőt. Shiftregiszter blanklábát pwmezem (74hc595). MikroC be programozom . És idömultiplexes kijelzés alkalmazok.
A másik kérdésem AN4 láb csak 500 értékig tud értéket felvenni ennek mi az oka?? Segítséget elöre köszönöm remélem érthetöbb ![]()
A szinkeveres és a kirajzol függvények mennyire időigényesek ? Előbb mind a 5 színkeverésnek és a kirajzolnak is le kell futnia mire életbe lép az ADC érték megváltozása.
Javaslom tedd az ADC-t egy interruptba.
Sziasztok!
Egy elég könnyűnek tűnő kérdésem lenne: Hogyan tudnék egy 8 bites változó értékét egy kimenetre sorosan kiküldeni? Például a 170-es decimális értéknél a kimeneten mondjuk 1ms-os "bitidővel" (?) jelenjen meg ez: 10101010.
bits = 8;
do { // Bit vizsgálat szerint be kell állítani a kimeneti bitet: if (data & 1) Kimenet = 1; else Kimenet = 0; // Léptetni kell az adatot data >>= 1; waitms(1); // Mindezt egy 8 -as ciklusban végezni } while (--data); A hozzászólás módosítva: Szept 13, 2017
Mivel a végtelen ciklusodban csupa olyan függvényhívás van amiről semmit sem tudunk....
Mit vártál, gondolatolvasók a fórumtagok? Más téma: én nem használnék egy nyolcbites mikrovezérlőnél 9 paraméterrel meghívandó függvényt, inkább egy (globális) struktúrába raknám az értékeket és úgy hívnám meg azt a szinkeverest.
while(--bits);
A hozzászólás módosítva: Szept 13, 2017
Basszus ugy emlékeztem hogy válaszoltam "silent15" elnézést amugy sikerült megoldásával.
Többször kellet lekérdezni az adc-t... Idézet: „inkább egy (globális) struktúrába raknám az értékeket és úgy hívnám meg azt a szinkeverest.” Nem értem mire gondolsz. A hozzászólás módosítva: Szept 13, 2017
Arra gondol, hogy a fordító a függvények paramétereit a verembe teszi le, és egy 8 bites pic-nek nem szokott nagy méretű verem memóriája lenni. Neked kell figyelned rá, hogy ne verem túlcsordulással szálljon el a programod.
Arra kell figyelned kriszap hogy 31-nél több függvényhívásod ne legyen, ilyen mély a verem az adott PIC-nek. (Bár kétlem hogy megközelítenéd ezt az értéket).
Ha a jövőben elkezdi egymásba ágyazni azokat a függvényeket, amik 9 paramétert pakolnak le a verembe (például rájuk fut egy interrupt, amibe beledrótoz egy újabb függvényhívást), akkor egyetlen pillanat alatt el is fogyott a verem.
Túl sok az a 9 paraméter függvényhívásonként átadni. Elhiszem, hogy kényelmes, de 8 biten olyasminek nincsen helye. Bad practice. Megnézed az mla-s kódmintákat 8 bitre, sehol egy deka függvényparaméter sincsen, minden globális változókban van, és nem véletlenül.
PIC16Fxxx : Nincs lehetőség adatot a stack- re írni, a paraméter átadás memória területen történik. Nem a paraméterek száma, hanem a függvények hívási mélységére van korlát - a HW stack 8 szintű. Ezt a 8 szintet értinti a megszakítás és a belőle hívott eljárások "mélysége".
PIC16F1xxx : Elvileg hozzáférhető a HW stack... PIC18: A paraméter átadás a (C18) FSR2 regiszter segítségével történik, a stack méretét a fordítás során megadhatjuk. ...
Hello! Lenne pár kérdésem pic programozással kapcsolatban, elszeretném kezdeni tanulni mert megtetszett.
Milyen eszközök kellenek ahhoz, hogy tudjak itthon programozni mikrovezérlőt? (Ha jóltudom csak egy pickit adapter és maga a mikrovezérlő.) Milyen szoftverrel lehet programozni? Milyen típusú mikrovezérlővel lenne jó elkezdeni programozni tanulni / van-e valami jó starter kit,amit ajánlanál, mert neked bejött, stb.? Esetleg Győr környékén valaki tud áruházat, ahol ezeket belehetne szerezni? Válaszotokat előre is köszi! ![]()
Szia!
Én a pic12f629 mikrovezérlővel kezdtem a barátkozást. Sok jó tutorial van hozzá assembly nyelven, de az xc8-cal vígan tudod C-ben is programozni. Van sajátossága, amire oda kell figyelni (OSCCAL értéke kiütődhet belőle és ilyenkor újra kell írni bele), de ezzel együtt nagyon egyszerű használni. 8 lába van, kapható SMD és DIP tokozásban is. Testvére a pic12f675, annyi különbség van köztük, hogy ez utóbbin már van analóg láb is. PICKit2 könnyedén programozza. Ha utána tovább akarsz lépni és nem csak barátkozni ezzel a világgal, akkor már jöhet a microchip pic keresője, ahol a paramétereket meghatározva tudsz választani az adott projekthez illő vezérlőt. Én most a pic18f25j50 lehetőségeit kezdem használni, azért esett rá a választásom, mert van benne két MSSP modul is, s míg egyiken SPI-t akartam, a másikon I2C-t. Azóta persze a projekt átalakult (mivel elérhetőbbek lettek a kijelzők), s már elég lesz az I2C is, de attól még ez megmaradt az USB támogatásával és a tágas memóriájával (s nem mellesleg relatíve olcsó is) ![]() A pic18f25j50-hez ha nem is fejlesztőpanelt, de hasonlót készítettem magamnak. Ezt dugdosós próbapanelbe lehet bedugni (élére állítva), az összes lába ki van vezetve, van rajta egy táprész, meg az USB-hez szükséges minimum alkatrészek egy külső oszcival. Tervezem, hogy legyártatom a panelt a kínaiakkal, de az általam levasalt és kimart panel egyelőre remekül működik, azon játszom vele mielőtt "kész projekt lenne belőle". A hozzászólás módosítva: Szept 16, 2017
Sziasztok!
Tudnátok javasolni egy a PIC18F14K22 höz hasonló jó tulajdonságokkal bíró PIC-et csak magasabb lábszámmal? Főképpen saját magam szorakoztatására elkezdtem "tervezgetni " egy demoboard-ot, és biza rá kellett jöjjek hogy a 20láb elég kevés egy kompakt board-hoz! Köszönöm!
A PIC18F14K22 a "K22" család tagja. Az adatlapban benne van, milyen típusok tartoznak bele. Létezik 28, 40, 44, meg 6x lábú.
Mennyivel jobb lenne ha a kezem járna a szám előtt....
Jogos, Köszönöm!
Sziasztok!
Tudna valaki segíteni hogy lehet beállítani PIC18F26k22?: 2400 baud 8E1. A 2400 megy, de hogy mi az a 8E1 nem találom az adatlapban.
A hozzászólás módosítva: Szept 17, 2017
8 bit, Even parity, 1 Stop bit. Ha minden igaz.
A 2400 a sebesség, a 8 az adatbitek száma, az E a páratlan paritás, az 1 a stopbitek száma.
1. Eldönteni, hogy BRGH bit értékét. 2. Az órajel és a BRGH függvényében a SPBRGH, SPBRG és a BAUDCON regiszterek beállítása. 3. TXSTA beállítása. Mivel a formátumban van paritásbit, a TX9 -et 1 -re kell állítani. 4. RCSTA beállítása, SPEN maradjon 0. Mivel a formátumban van paritásbit, a RX9 -et 1 -re kell állítani. A modul mindig 1 stopbittel dolgozik. 5. Megszakítás beállítása. 6. Az SPEN bit 1 -re állítása. Írni kell egy paritás számoló rutint. Vételnél ki kell olvasni a RCSTA -t, értékét elmenteni, a mentett értéket vizsgálni. A RX9D bit tartalmazza a vett paritás bitet. RCREG kiolvasása, paritás számítás, összevetés a mentett RX9D bittel, hibajelzés paritáshibánál. Adásnál az adni kívánt adat paritásának kiszámolása, beírása a TX9D bitre, az adat beírása a TXREG -ne. A hozzászólás módosítva: Szept 17, 2017
Köszönöm.
Mivel a 2400 már megy, így gondolom az első kettő jó megvan? A paritás rutinra írnál bővebben?
Paritás:
1. Megszámolod az adat bitjei közül hány darab 1 van. 2. 256 elemű táblázatba letárolod a paritást, az adattal címezve máris kiolvasható. 3. A byte -ot 4 bites részekre szeded és csak 16 elemű táblázatot használsz. Az adat paritását a két fél paritásának kizáró vagy kapcsolatával kaphatod meg. 4. Miért nem kérdezed a Gooooogle -t
Köszönöm, úgy látom ez már nem kezdő kategória.
|
Bejelentkezés
Hirdetés |