Fórum témák
» Több friss téma |
Ez így nem lesz jó. A high_byte felső 4 bitje a szemét, a végén ÉS-elnie kell 0x0fff-el. Csak szerintem felcserélte a két változó nevét. Ha a high_byte alsó 4 bitje a szemét, akkor be kell kapcsolnia az LSB First bitet az AD-ben.
BenőAladár:
Példa: x : zagyva high_byte : 0bxxxx1010 low_byte : 0b11001100 (unsigned int) high_byte) << 8) után ez lesz : 0bxxxx101000000000 low_byte-ot VAGY utasítással hozzá adod : 0bxxxx101011001100 ÉS 0x0fff (0b0000111111111111) után ez lesz: 0b0000101011001100 A legfelső 4 bit mindig 0 lesz, mert 0x0fff-el kimaszkoltad. A hozzászólás módosítva: Feb 19, 2019
Sziasztok!
Abban kérném segítségeteket, hogy egy 4byte számnál, hogy tudom visszanyerni az eredeti 1byte számokat, mind a négyet? Bluetooth-n keresztül küldöm ki a számokat, 4db 1 byte számot, egymás után. A fogadó oldalon pedig 1db 4byte hosszú változóba fogadom. Ami eddig sikerült, az az 1. és 4. byte visszakódolása. a 2. és 3.-al nem boldogulok. Ami nem jöhet szóba, az a bit léptetés, shiftelés... ezt nem tudja a program. Példa: Küldés: byte1=01 byte2=02 byte3=03 byte4=04 (dec=16843009) Fogadás: 4databyte=16843009 byte1=remainder of 4databyte/256, így megkapom eredménynek a 01-et. byte4=quotient of 1databyte/16777216(ez 2 a 24.en), így megkapom eredménynek a 04-et. byte2 ??? byte3 ??? Amivel meg kellene oldani, az a remainder (maradék) és a quotient (hányados) parancsok, valamint a matematikai műveletek állnak még rendelkezésre. Amihez szeretném használni, az az app invertor androidos fejlesztő program. A léptetés jobbra vagy balra nem játszik, sajnos... Köszönöm előre is ha tudtok segíteni. Peti
Nem egészen értem. Ez egy PIC-es téma. Minden fordító és PIC tud shiftelni. Ha nincs PIC a vevői oldalon akkor nem ide tartozik a kérdés. Mit mihez és hogyan akarsz küldeni, összekötni???
![]() Ha választ is akarsz akor pedig konkretizálj. Az, hogy bluetoothal küldöd nem sok info. Gondolom az egyik oldal telefon.(adó vagy vevő). Mi van a másik oldalon? A hozzászólás módosítva: Feb 21, 2019
Milyen nyelven programozod az adót és a vevőt? Netalán C -ben?
Ha C-ben: Készíts egy u_n_i_o_n -t (alázúzás nékül, csak a fórum motor üres hozzászólást tesz be, ha nincs aláhúzás benne)
Az adóban:
A vevőben:
Avagy:
A hozzászólás módosítva: Feb 21, 2019
Talán így:
osztod 16777216, egész rész=byte4 maradékot osztod, 65536 egész rész=byte3 maradékot osztod 256, egész rész=byte2 maradék=byte1
Köszönöm.
Valóban nem PIC-es téma. Csak matematikai... A vevő oldalon van egy androidos program, amit én írok és a telefonomon futtattatom. Mivel nincs app invertor fórum (bár lehet, hogy érdemes lenne egyet létrehozni), ezért bátorkodtam itt feltenni a kérdést. Mivel az app invertorban kötött műveletek vannak, és nincs a szzámoknál shiftelési művelet, így kénytelen vagyok tisztán matematikai műveletekkel megoldani a feladatot. Lentebb Lamprologus értette a kérdésemet, és meg is válaszolt.
Köszönöm fáradozásodat.
Sajnos nem C-ben programozom, ygx ez a lehetősé csak kontrollerben jó, nálam az applikációban nem.
Köszönöm!
Erre gondoltam, ki is próbálom. ![]()
Köszi- Működik!
![]() Üdv Peti
Még egy ok, hogy hardveren bogármentesítsünk és a szimulátort kerüljük.
16F18857 - ADCC modul. Az átlagoló módot próbálgattam szimulátoron, mert a fene se gondolná, hogy nem jó. Stimulus-al megadtam, hogy az ADRESH:ADRESL egyenlő legyen 1023-al. Az ADFLTR regiszter a kimenetem, de az első lépésnél már 16368 kerül bele, holott oda is 1023 kellene kerüljön, mint ahogy az ADACC-be. A következő ciklussal csökken az értéke, holott növekednie kellene. A végén ezt a számot osztja, hogy megkapjuk az átlagot. De mivel teljesen rossz, ezért az eredmény is az. Már nem is tudom hányszor néztem át a beállításokat és mindig jónak tűnt (mert az is). Kínomban előtúrtam a hardvert, ott érdekes módon jól működik.
Üdv!
Egyirányú szintillesztéshez megerősítésre van szükségem, hátha valamit kihagyok. Mindkét esetben bal oldal a 12V be, jobb oldal az 5V ki. A csatolt BSS 138-at tudom, hogy működik. Kérdések: Ha a bejövő jelem 0 vagy 12V (induktív szenzor) akkor a 12V felhúzást elvileg elhagyhatom. A másik ugyanez a 12V-ról 5V-ra csak P-FET-el. Ennek is működnie kellene. Melyik a jobb megoldás és miért?
Sziasztok!
Mivel még mindig sokszor látom, hogy valaki PICkit 2 klónt akar építeni. Akinek nem lényeg, hogy ő építse esetleg spórolni akar rajta: MPLAB Snap és most még akciós is. Bár powert nem tud adni csak programozó.
Bocsánat, hogy nem tudok azonnal reagálni mindig.
Tovább fejlődtem megértettem amit írtatok és ki is próbáltam: Az eredmény a következő:
A maximális értéke 4080-ig megy el az ua változónak és lépésenként 16-ot lép tehát a TLC2543 adatlapja szerint viszont 0.0012V-ként kellene 1-el növekednie. Erre nem jövök rá egyenlőre még mi okozhatja. A referenciafeszültsége az AD-nek 5,04V. Körülbelül 0.5V-ként újrakezdődik a számlálás és a maximális 5.04V-nál már megakad a 4080-as értéken.. Valahogy azt akarom elérni, hogy 1-esével számoljon és szépen 0-4095 értékig menjen el. A hozzászólás módosítva: Feb 23, 2019
Sziasztok!
PIC18F14K22-vel próbálok összehozni UART kommunikációt. Az alábbi kódrészlet kifogástalanul működik 16F877A-val, de a 18F-re alkalmazva hibás adatokat küld. Már átnyálaztam az adatlapokat és egyszerűen nem látom a különbséget, hogy az egyiken miért működik és a másikon miért nem.
A hozzászólás módosítva: Feb 23, 2019
Ajánlom az alábbiakat átnézni a Snap leírásában mielőtt kidobná valaki a PICkit2 -jét.
A résztelet képként is csatolom. Programmable Vpp: No. Programable Vdd: No. A Vpp generátor hiánya miatt a legnépszerűbb típusokat nem kezeli. MpLabX 5.10 DeviceSupport.htm állomány szerint alig található tesztelt (zöld) típus a Snap sorában. A Snap csak MpLabX alál kezelhető, forrása nem áll rendelkezésre. A PICkit2 -t fel lehet okositani szinte minden Microchip, Atmel, SST típus kezelésére. Egyébként a PICkit4 is akciós február 28 -ig.
Szia!
Ez a felokosítás érdekel! Hol találok erről bővebb leírást, vagy el tudod küldeni emailban (ha magyarul lenne az jó lenne ![]() Teljes körűen használható lesz? Köszi
Ebben és a PICkit2 továbbfejlesztése topikban is tettem már fel bővített Pk2DeviceFile.dat állományt.
PICkit2 Device File Editor Vigyázat: Part és Script duplikálás után az állományt menteni és visszatölteni kell, a tömb elemek a visszatöltés után válnak egyedivé. A PICkit2 firmware és a kezelő program forrása letölthető, módosítható. Nem lesz teljes körű, az MpLab ill. MpLabX programok alól nem lesz kezelhető és a nyomkövetés (debug) sem oldható meg az újonnan felvett típusokra. De firmware letöltés nélkül lehet különböző családok tagjait programozni.
Még mindig sok a sárga kocka. Főleg a 8 és 16 biteseknél, de azért csábító.
Idézet: „Még mindig sok a sárga kocka.” Snap esetében az 5.10 Device Support állományában összesen 14 zöld típus szerepel. A PICkit4 jobban áll (~360). Még mindig a PICkit3 vezet.
Két ellenállás, mint feszültségosztó nem jó?
Meg tudod mondani, hogy mit értesz első 4 bit-en? Én felső 4 bit-et írtam, ami a 7., 6., 5., 4. bit-et jelenti. Lásd kép. Mert ha fordítva van, akkor meg kell fordítanod az adatkiküldési irányt.
Illetve tudsz pár példát írni, hogy mi jön? Pl.: 0V-nál és 5V-nál, meg a felénél mondjuk.
Ebből indultam ki tehát egyet beszélünk azt hiszem tehát a felső 4 bit ahogy az órajelen jelöltem.
5.04V-ot kap az AD a referencia bemenetén. 5.04V-nál 4080 a kapott érték decimálisra konvertálva a fent használt sprintf-kódal 327mV-nál ugrál 144-160-176 érték között mozog ebben a három lépésben (ez az alap egy nyúlásmérő van rákötve egy müv.erősítővel, ebből is látszik, hogy 16-osával ugrik ) 1.00V-nál 688-704-720 között ugrál ebben a három lépésben kb 630mV-ként eléri a 4080-as értéket és kezdi előröl a számolást. A hozzászólás módosítva: Feb 24, 2019
Így valóban 4080, az elejéről lemaszkolsz 4 értékes bitet, a végére pedig 4 nulla kerül, ergo a max érték 0xFF0. ua-t el kell tolni jobbra 4-el és maszkolni sem kell.
A hozzászólás módosítva: Feb 24, 2019
Ez lesz a megoldás! Ez az ábra honnan van? Az eredeti adatlapban nem láttam.
Viszont le van írva, amin szépen át is siklottunk. Ha lerajzolták volna, már rég meglenne a megoldás. Idézet: „With bits D3 and D2 set to 11, the 16-bit data-length mode is selected, which allows convenient communication with 16-bit serial interfaces. In the 16-bit mode, the result of the current conversion is output as a 16-bit serial data stream during the next I/O cycle with the four LSBs always reset to 0 (pad bits).”
Elméletileg igen. Belső óráról jár.
A hozzászólás módosítva: Feb 24, 2019
Uppsz!
![]() ![]() Nem kell feltétlenül rám hallgatni. Ki kell próbálni minden javaslatot.
Még a Config bitek és az OSCCON lehet rosszul beállítva. Engedélyezd az órajel kimenetet, ha azt megméred kiderül mennyin jár.
|
Bejelentkezés
Hirdetés |