Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Nekem nincs időm/kedvem alaposan átnézni az alkalmazási mintapéldát, de te nézd meg alaposabban, mert szerintem valamit félreérthettél benne! Én úgy láttam, hogy akkor törli a lapot, amikor lefoglalja, használatba veszi, nem pedig akkor, amikor abban hasznos adatot tárol.
Remélem valaki rákukkant erre a témára még... A következő kódnak a lényege az lenne, hogy ha cnt eléri a 200-at akkor RA.0-t LO-ba állítja. Na de. cnt-t a programon belül lenullázzom többször is, az elágazásban lévő feltétel
Íme a teljes kód:
Idézet: Leárazták a Microstick-et is, de meggondolandó, hogy azt érdemes-e választani, vagy az új Microstick II-t, ami több (állítólag minden 28 lábú PIC24, dsPIC33 és PIC32) típust támogat. Az indulókészletben négy mikrovezérlő található, melyek közül kettő (PIC24FJ64GB002, PIC32MX220F032) USB képes.„Microchip 20-40%-os év végi akció 2012.01.05 -ig...” Ha valaki a kezébe kaparint, nézze már meg, hogy ennek a PC-hez csatlakoztatásakor csak egy HID eszköz jelenik meg, vagy ad virtuális soros portot is? (Fizikailag minden megvolt hozzá a Microstick I.-ben is, mégsem csinálták meg a lusta szoftveresek!).
Szia!
Idézet: Ezek ÉRTÉKADÁSOK, nem feltételek!!„(cnt = 200) and (futes = true) then” Steve
A forrás pascal nem C...
C nem nincs :=, <>, procedure, begin, end, stb... Idézet: „idézet: ?(cnt = 200) and (futes = true) then? Ezek ÉRTÉKADÁSOK, nem feltételek!!” Ez Pascal (vagy JAL?) , szoval itt az egyenloseg jel ('=') az 'if' feltetelben nem ertek adas, hanem ossze hasonlitas (ez C-ben lenne problema, nalad nem ez a baj szerintem). Most csak igy feluletesen atnezve a programod: A 'cnt' egy timeout ertek szeretne lenni? Magyaran, hogyha nem erkezik meg valami a kommunikacios csatornan idoben, akkor tudjal valamit csinalni? Nem tudom, hogy hogyan lehet megadni a Pascalnak (JAL-nak?), hogy a megszakitasod-ban hasznalt valtozok volatile-ok legyenek, azaz ne probalja meg kioptimalizalni a fordito? Ennek olvass utana elso korben szerintem.
Szia!
Biztos jó ez a sor?
Ez letörli a GIE bitet is...
Sziasztok!
A következő problémával fordulnék hozzátok: 4db dsPIC30F4012-t kellene együtt elindítani változó tápfeszültség felfutási idők mellett. Próbáltam simán delay-el, brown-out változtatásokkal, +64ms POR van jelenleg beállítva, de úgy tapasztaltam, van amelyik elindul, van amelyik nem és a fizikai reset sem különösképpen indítja el. Mintha letapadna, a dsPIC-ekkel csak most ismerkedem, remélem Ti már találkoztatok hasonló problémával. Esetleg valami tanácsot tudnátok adni? Előre is köszönöm a válaszotok! Üdvözlettel, Balázs
Bocs, ezt elnéztem, előtte C-t nézegettem...
Steve
Sajnos nem értek még annyira a PIC programozáshoz. Sok hiba volt a programban amiket nagy nehezen meg tudtam oldani, rájöttem mit rontottam el, de itt egyszerűen nem tudom. Akárhogy nézem a pic adatlapját nem tudom mit rontok el. Már ott elszakad a cérna, hogy ha a cnt-nek 0 értéket adok, ez miért nem történik meg? A timer használatát azt a mikropascal példaprogramokból próbáltam összeollózni, de ezek szerint azokkal sem stimmel valami...
Szia!
Készíts egy projectet a kontrollerhez az MpLab programmal, töltsd be a lefordított hex -et. Állítsd be az MpSim -et debuggernek. Tegyél töréspontot a 4 címre (és oda ahova még szeretnél). Lépésenként tudod végrehajtani a kódodat, lehet futtatni is töréspontig. A Watch ablakban megtekintheted a változóidat - persze előbb ki kell deríteni melyik változó melyik címen van... A net -ről letöltött programokat ne tekintsük biztosan működőknek - sok hajszálat kímélünk meg, ha átnézzük őket...
A mikropascal debuggerjében már megcsináltam ezt, ott "futes" értéke amikor kellett igaz volt, illetve hamis amikor azt az értéket adtam neki. A cnt értéke az "interrupt"-ban változik az a rész viszont nem fut le. de ha a főprogramban növelem az értékét akkor ez meg is történik illetve ha 0-ba állítom ez is teljesül. Azt nem értem miért van az, hogy egyszer belép a szóban forgó elágazásba, egyszer meg nem.
A mP példaprogramjai közt így néz ki a timer kezelése 16f628-ban: (nekem 16f628a van, nem tudom ez jelent-e valamit ilyen szempontból)
Ez alapján próbáltam a sajátomat is életre kelteni, de nem sikerült. "Bizonytalanul" működik ez a része.
Sziasztok!
Közben megoldódott a dolog. Hogy tanulságos legyen, az volt a baj, hogy a PLL nem működött 20MHz-es kristállyal. Kikapcsolva a PLL-t már működött szépen. Sajnos adatlap nem elolvasási hiba volt részemről. Ezenkívül ajánlatos a tápot rendesen szűrni és pufferelni a dsPIC-nek. Jó munkát kívánok mindenkinek!
Sziasztok
Egy olyan kérdésem lenne, hogy neten szinte minden kapcsolás forrás fájlját hex-ben teszik fel. Én mikroc-ben szoktam programozni. Meg lehet valahogy, hogy a hex fájlt átvigyem c++ környezetbe?
Szevasztok!
LM335-ös hőérzékelővel készítek hőmérőt és elérkeztem egy olyan ponthoz amit nem nagyon tudok megcsinálni. A hőmérséklet negatív kijelzéséről lenne szó. Az alábbi programban látható hogy hogyan alakítom át a beolvasott értéket C fokra:
A temp1_cal értéke 2731 mivel a beolvasott ADC értéket szorzom öttel ekkor a hőmérsékletet Kelvinben kapom meg és ebből kivonom a 2731-et és megkapom a Celsius hőmérsékletet. Itt kéne valahogyan megoldani, hogy ha a beolvasott érték szorozva öttel kisebb lenne mint a 2731 akkor kitegyen egy negatív jelet a kijelzőre és számoljon tovább. Tehát ne mindenféle hibás karaktert kapjak hanem amint eléri a 0-át és átmenne negatívba vegye le az előjelet és a megkapott számot írja ki a kijelzőmre.
Szervusz!
Most nem igazán tudtam követni, hogy mikor megy és mikor nem. (debuggerben vagy nélküle) De ha lehetséges az, hogy a megszakítás kétszer vagy többször is le tud futni mielőtt a cnt változó értékét vizsgálod, akkor az "IF (cnt=200)" nem mindig fog teljesülni, mert közben már 200-nál nagyobb lehet a cnt értéke. Ha ez így van, akkor a feltétel vizsgálatban ne engedd 200 fölé nőni a cnt értékét...
- Az 5. sor után írd be a következőket:
if (temp<0) { uart_send(ord("-")); temp:=-temp; } - A TXREG nem írható akármikor, csak ha a PIR1.TXIF == 1. Ez a jelzőbit a TXREG íraás után automatikusan törlődik. Máshová: procedure uart_send(byte ch); begin while(TXIE) do: TXREG := ch; end;> Idézet: A helyzet az, hogy ez nem a forrásfájl, s ebből nem is állítható helyre a forráskód. „neten szinte minden kapcsolás forrás fájlját hex-ben teszik fel”
Van valakinek ötlete arra, hogy a 18FxxK80-as családot hogyan lehetne PK2-vel programozni? Nekem gyári van, de nem támogatott a K80.
Idézet: helyesen a "megszakításban" ne engedd 200 fölé nőni a cnt értékét. „feltétel vizsgálatban”
Support List szerint PIC18F26K80 támogatva van, esetleg egy "device file" frissítés segíthet
Szia!
Köszönöm a gyors választ, nem vettem észre. Sajnos nekem attól több láb kell, egész konkrétan a 18F46K80 programozására keresek megoldást. A vicc, hogy a chip már itthon van, nem is gondoltam volna, hogy gyári programozóval nem fogom tudni beírni a programot.
Sajnos firmware frissítés nélkül nem fog menni... Ugyanis a programozási leírásukban nem szerepel a teljes törlés (chip erase). A területeket egyedileg kell törölni, amihez tartozó batch nem fér el a PICKit2 egy batch számára fenntartott helyén.
Vegyünk PICKit3 -at, most év végi akció van...
Hol van év végi akció? A csipkednél néztem, ott nem láttam akciós árat PK3-ra.
Itt... PICkit 3 Debug Express @ 13.280 Ft+áfa
A PK3 Debug Express az egy programozó + egy demo board, nem? Nekem a kiegészítő panel csak plusz költség most. A programozó az 10700+ÁFA. De az nem akciós ár.
Azt jól gondolom, hogy a programozó az debug-olni is tud?
Köszönöm. Akkor nekem csak programozó kell. Sajna az nem akciós.
Sziasztok! Most kezdtem a PIC-el foglalkozni és az lenne a kérdésem hogy ha pl én egy PIC-es led vilogtatót akarok készíteni, akkor azt mivel tudom beprogramozn? Mi kellene hozzá? esetleg ehez van valamiféle kapcsolási rajz hogy megépíthessem?
Idézet: Akkor nem a haladólnak való topikot kellett volna választani! „Most kezdtem a PIC-el foglalkozni” Idézet: Bármivel, ami az adott PIC programozási (értsd: "programbeégetés") specifikációjának megfelel. JDM programozóval ne próbálkozz!„egy PIC-es led vilogtatót akarok készíteni, akkor azt mivel tudom beprogramozni?” Idézet: Mármint a programozóhoz? Igen, a "Kapcsolások" szekció PIC rovatában, pl. LPT mini két változatban. „esetleg ehhez van valamiféle kapcsolási rajz hogy megépíthessem?” |
Bejelentkezés
Hirdetés |