Fórum témák
» Több friss téma |
Sziasztok.
Érdeklődöm, tudja valaki DSPIC33EP256GP506 B-portját ha olvasni szeretném RB4 től RB11-ig a TRIS-en kívül kell még mást is állítani. Jelenleg ezekből 1bitet, az RB8-at csak írni tudom.
Így működik: ANSELB=0;
Igaz egyenként nem sikerült állítani pl: az ANSB8-at nem ismeri az xc16.
Miért nem nézed meg az adott típus header fájlját (p33EP256GP506.h) ? Az alapján az ANSELBbits.ANSB8 -t ismernie kell.
Igaz, fordítja az ANSELBbits.ANSB8-at lehet rosszul írtam ezért nem ismerte a fordító.
Köszönöm.
Gondolom XC16-ot használsz
Itt úgy lett elkészítve a fordító, hogy nincs lehetőség, mint a 8 bites PIC-eknél, hogy az adott bit nevét írod egyedül. Itt ha bitre (struktúra) hivatkozol akkor struktúranév . és a struktúra elem pl.: ANSELxbits.ANSxy (csak, hogy a későbbiekben ne legyen problémád ebből).
Szia!
Igen XC16-ot használok és DSPIC33-at, pontosabban még most ismerkedek velük, így jó tudni az alapvető dolgokat - van belölük bőven.
Sracok, segitseget kell kernem ebben a topicban, mivel elakadtam egy 18F4525-os orajel-beallitasaban. Belso, 8MHz-es oscillatort allitottam be es PLL-t szeretnek hasznalni. Ez nem akar menni. Az adatlapban 2.4.6 alatt leirtakat betartom, nincs valtozas akar 0 akar 1 a PLLEN bit.
A config bitek ellenorizve, jo a 1000 vagy a 1001 beallitas a FOSC biteknel. Rosszul csinalok valamit? Az adatlap szerint kepes kell legyen ra. Bar megszakitasbol nezem az irled0 allapotat, de az oscillator abrajan azt latom, hogy a timerek is a fo orajelforrasrol mukodnek, nincsenek kivul a pll hataskoren. Probaltam mar 4MHz-n is. (A mov egy sima macro, ami movlw/movwf parossal mukodik.) Elore is koszi, ha valaki mar talalkozott ilyennel vagy tud okosat mondani, mit probaljak meg ki.
Sziasztok!
Segítségetekre lenne szükségem. Van ez a programkód azt meglehetne oldani esetleg hogy gomb nyomásra kiírja a maximum illetve a minimum hőmérsékletet? Köszönöm a segítséget előre is!
Szia, gondolom csak elírtad a fejezet címet, mert ha nem akkor rosszat állítottál be (2.4.6 - RCIO mód). Neked a 2.6.4 fejezet kell (INTOSC), aminek a végén megemlítik, hogy:
"Additionally, the PLL will only function when the selected output frequency is either 4 MHz or 8 MHz (OSCCON<6:4> = 111 or 110). If both of these conditions are not met, the PLL is disabled. The PLLEN control bit is only functional in those internal oscillator modes where the PLL is available. In all other modes, it is forced to ‘0’ and is effectively unavailable." Amúgy a BORV csak 2 kellene legyen és nem 25... Leteszteltem mplab-ban a következő kódot (a te beállításaiddal) és minden tökéletesen működik:
Ebben a példában minden port kapcsolgatás 4 utasítás ciklus (16 órajel ciklus) ami 32MHz (8MHz x4PLL) esetén 0.5us. Mplab szimulátorában is és Proteus-ban is ennyi, úgy, hogy jók a beállítások. Ha van oszcilloszkópod akkor próbáld a legegyszerűbb megoldást, csak egy egyszerű port kapcsolgatást és nézzed a jelet, majd ha ez jó akkor jöhet a többi is (megszakítások...).
Koszonom, Attila, persze eliras.
Szkoppal neztem, eppen ez a gondom, hogy akar van pllen, akar nincs, mindig ugyanannyi a megszakitas szamlalojanak futasi ideje. En egy egyszeru : bsf portbit bcf portbit goto 10 utasitassort alkalmaztam es 1MHz korul mertem a portbit negyszogjelet, ha irq nem volt. De adja az Uristen, hogy ne a PIC legyen rossz, mert az osszes laba be van forrasztva es o egy DIP44-es tokozasu ize.
Feltételezem, hogy tudsz valamennyire programozni.
A lényeg az lenne, hogy kellene 2 globális változót létrehozni, amibe tárolod a maximum és minimum hőmérsékleteket. Használhatod a PIC Eprom memóriáját is az adatok elmentésére és tárolására, így ha elmegy az áram vagy kikapcsolod a készüléket, akkor sem felejti el az utoljára elmentett minimum és maximum értékeket. A továbbiakban pedig egy meghatározott időközzel vizsgálgatod az éppen aktuális hőmérsékletet. A program indulásánál feltöltöd a két változót amit majd a programon belül folyamatosan vizsgálhatsz. Pl:
Nyilván az első indulásnál, ha még nincs érvényes adat a PIC memóriájába elmentve, akkor ugyan az lesz az eljárás mint a sima változónál, vagy is fel kell tölteni az aktuálisan mért hőmintával. Aztán jöhet a mérés és kiértékelés + mentés. A feltétel rendszert úgy kell megírnod, hogy a méréseknél vizsgálja meg mind a 2 elmentett értéket. Pl:
Más eseteben kiírod a régit. A gombnyomásra kiírás meg gondolom menni fog, csak egy sima feltétel. Pl:
Nyilván a változókat típusa aszerint fog változni, hogy miképpen akarod az adatokat kezelni, float, int, char...stb. A gombnál feltételezem, hogy bemenetként van definiálva és fel van huzva 5v-ra egy 10k-os ellenállással. Remélem tudtam segíteni. Én C18-as vagyok, így a kódok struktúrája változhat. A hozzászólás módosítva: Okt 5, 2015
Valaszolok sajat magamnak. Megneztem az interneten es mas is kuzdott ezzel a problemaval.
A megoldas az, hogy a HULYE mikrocsipp NEM az Internal Oscillatort keri beallitani az Osccon regiszterben, MIKENT AZ AZ ADATLAPBAN SZEREPEL, hanem a Primary Oscillatort. Mas is szivott miatta es mas is eppen ilyen duhos volt a megoldasra. Am ok meg 2007-ben tettek ezt - azota sem javitottak ki az adatlapban...
Sziasztok!
Elsősorban Hp41C-hez szól a kérdés, mert az alap program tőle származik, de ha másnak van ötlete, ne tartsa magában! PIC16F628A-val próbálok összehozni szoftveres I2C kommunikációt, de valamiért nem megy. Rengeteg példaprogramot megnéztem, de egyikkel sem boldogultam. Most a mellékletben lévő progival próbálkoztam, de ez sem működik nálam. A lényege annyi lenne, hogy a START jel után az 10001000 címre elküldi egymás után a forrásban szereplő byte-okat. A mellékelt képen látszik ahogy a PK2 logic analyzer-rel vizsgáltam a jeleket. Az ellenállások a vonalon megvannak, a feszültségek rendben vannak. A kérdés, hogy rontom el? A hozzászólás módosítva: Okt 5, 2015
Kezdetnek annyit látok, hogy az RB4 és RB5 kimenetnek van beálltva az inicializáló részben. Az I2C vonalakat nyitott kollektorosan kell meghajtani. A PIC esetében csak akkor állítjuk kimenetnek, ha alacsony szintet szeretnénk vele tartani a vonalon, magas szint eléréséhez a lábat bemenetnek állítjuk.
Sziasztok!
Van egy PIC-em ami 3,3V-ról működik és van egy TC35-ös GSM modulom ami szintén 3,3V-os. Jól tudom hogy ebben az esetben nem kell szintillesztés a soros vonalra (Tx/Rx)? Simán összekötöm és kész?
Siman ossze lehet kotni. Kell ugyelni, hogy a TX/RX labak keresztbe legyenek kotve. TX lab az RX-re es az RX a TX-re.
Köszi! A keresztbe kötés itt nem működik jelen esetben, mert Tx-Tx, Rx-Rx-el működik. Keresztbe kötés esetén nincs kommunikáció. A szintillesztést azért kérdeztem mert néha hülye karakterek jelennek meg.
Az I2C vonalakat közvetlenül kötötted a PICkit2 bemeneteire? A PICkit2 PGC és PGD vonalain 4k7 lehúzó ellenállások vannak. Így a felhúzó ellenállás és a beépített 4k7 egy feszültségosztót képez, ami megakadályozhatja a vonalon a magas szint kialakulását. A cikkben ajánlottam egy 74HC(T)125 meghajtóra épülő illesztőt a PICkit2 elé...
Igen közvetlenül kötöttem rá. Olvastam a cikket, tudok az illesztőről, de még nem csináltam meg. Este átállítom a TRIS regisztert bemenetre, kíváncsi leszek, úgy is egyből látszik, hogy működik-e vagy sem.
Átállítottam bemenetre a lábakat, de semmi változás. Azon gondolkodtam, hogy az időzítéssel nem lehet-e gond? Nálam a PIC belső 4 MHz-ről megy és a slave adatlapjában max. 100 kbits/s órajel van írva.
Meg kellene vizsgálni a jelalakot... Ilyen nincs véletlenül kéznél?
A hozzászólás módosítva: Okt 6, 2015
Olyan nincs sajnos, csak egycsatornás digiszkóp.
Sziasztok !
PIC / EPROM-gurukhoz szeretnék szólni Van egy zenei cuccom (egy Motu Timepiece 8x8 midi interface / USB verzió), amiben a régebbi firmware (2.0.0, amint a képen is látszik, egy Atmel chip) és régebbi "usb chip"-nek nevezett valami (v 1.1) van (állítólag ez egy EPROM, de nincs rajta UV ablakocska..) ..ámde az újabb (2.0.1 firmware és 1.32-es usb chip) az, ami hajlandó Intel procikkal is működni (tehát PC-vel, illetve újabb, Intel-es Mac-kel). A gyár régebben kínált upgrade-et, de már nem. Mivel ez így-is úgy-is egy régebbi cucc, nem éri meg súlyos tízezreket költeni ennek a két chipnek a lemásolására, de engem azért érdekelne, hogy egyáltalán meg lehet-e csinálni, milyen chip kéne hozzá, stb.. Csatolok két fotót az én cuccomban lévő két chipről, amiről szó van. Köszönöm előre is !! Z
Ez PIC topik, az Atmel teljesen más tészta.
Meg lehet csinalni PIC-el is, csak a belso program az, ami a lelke az egesznek es ez lemasolhatatlan. Itt elsosorban ezt kell megfizetni. Ha ez ismert lenne, siman atirhato barmilyen, USB-s mikrokontrollerre, pl. PIC-re is..
De maga a hardver nem hiszem, hogy kulonosen bonyolult lenne.
Van rá többféle megoldás is. Vannak nyílt MIDI megoldások, Atmelre és PIC-re is. A legjobban akkor járnál, ha kiváltanád egy saját programmal. A MIDI leírása elég precíz, könnyen leprogramozható - hacsak nem valami nagyon spéci a cucc- mert erről kevesebbet írtál. Én egy másik mikrokontrollert - sikerrel úgy is kiváltottam, hogy más gyártó termékét raktam bele egy adapterpanellel. Egy 8bites mikrokontrollert váltottam ki 32 bitessel. Röhögve megcsinálja azt a feladatot, igaz kicsit molyolni kellett a lábak kiosztásával a jelszintekkel és a szoftverrel.
Szia Balázs ! Válaszolok alább, "új hozzászólás"-ban, próbálok képet is csatolni.
Egy Motu Timepiece-ről van szó (alább csatolok egy fotót a belsejéről, és a két chipről, amiről szó van - az első fotón még látszik a rajtuk lévő fehér címke, ezeket később levakartam, hogy látszódjon a chip-ek típusjelzése).
Az egyik a firmware chip (az Atmel), erre már találtam egy havert, aki viszonylag egyszerűen le tudja másolni. A másik viszont (a vékonyabbik) az "usb chip", a guru haver szerint ez egy mikrokontroller, ami valószínűleg védve van kiolvasás ellen (?).. és azt mondja hogy azt ő nem tudja programozni.. :-/ De gondolom, hogy ez azért nem űrtechnológia.. .. és hátha akad itt valaki, akinek akadnak jó meglátásai / ötletei A Motu gyárat természetesen már kérdeztem (de nem voltak túlságosan segítőkészek ... )
Az ATMEL chip az adatlapja szerint egy egyszer programozható EPROM (64kB). Azért nincs rajta ablak, mert nem törölhető (ennélfogva nem újraírható).
A keskeny chip elvileg lehet Cypress CY7C64013 USB képes mikrovezérlő, de ha nem tudod specifikálni, hogy mit csináljon, akkor egy Snóbli díja programozó sem fogja megírni rá a programot. Egy biztos: ez a téma ebben a topikba nem való: se nem PIC, se nem kezdőknek való. |
Bejelentkezés
Hirdetés |