Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   442 / 1320
(#) gyengus válasza vzsolo hozzászólására (») Márc 23, 2009 /
 
Néhány gondolat, bocs, ha valaki már írta:
- a bootloader alapból villogtat 2 ledet a különböző állapotainak megfelelően
- a pic Vusb lába és a föld között ott a 470nF tantál (nálam fóliával is jó volt) kondenzátor?

Rémlik, mintha a CDC firmware-el lett volna hasonló problémám, a win nem ismerte fel elsőre. De sajnos már nem emlékszem, hogyan oldottam meg. Azóta újabb verziójú framework-öt használok.
(#) benjami válasza icserny hozzászólására (») Márc 23, 2009 /
 
Igen, végül is a protect nem arra van hogy azt a területet üresen kell hagyni (ennek semmi értelme nem lenne), hanem arra hogy csak explicit módon olyan programot tegyünk oda amit szándékosan oda terveztünk, és implicit módon ne tudja más elfoglalni.
(#) vzsolo hozzászólása Márc 23, 2009 /
 
Huhú!
Ez aztán rohadt nehéz szülés volt, de hála Nektek, sikerült!
0800-tól kezdi el írni a programot, és tudom is törölni.
Köszönöm a sok segítséget, és türelmet!
A felkiáltójelezéses balhé még áll, de legalább folytathatom a fejlesztést...
(#) icserny válasza vzsolo hozzászólására (») Márc 23, 2009 /
 
Hurrá!

A kapcsolás hogy néz ki? Ugye, mindkét VDD és VSS be van kötve? Csak azért kérdezem, mert a hivatkozott cikkben szereplő rajzon nincs bekötve a 11. és a 12. láb (DIP tokozás szerint számozás).
(#) vzsolo válasza icserny hozzászólására (») Márc 23, 2009 /
 
Nincs túlbonyolítva, lényegében az mint ami a cikkben van, csak be van kötve mindkét Vdd és Vss láb, a többi pedig tüskékre van kivezetve, és hogy gyengusnak is válaszoljak, a Vusb, föld között ott a kondi.
(#) benjami válasza vzsolo hozzászólására (») Márc 23, 2009 /
 
A tanulság az, hogy legközelebb a gyári demo-t (pl. demo02) kell először kipróbálni, mert azzal elsőre jó lett volna. Mi viszont szegényebbek lettünk volna egy jó kis rejtvényfejtéssel
(#) Ven hozzászólása Márc 23, 2009 /
 
Sziasztok!
c30-ban szeretnék konvertálni számokat string-re. A _itoaQ15 függvény alkalmas is lenne rá, de alkalmazva ezt a hibát kapom: undefined reference to `_itoaQ15'
Link step failed.
Na most így hívom meg:
#include
......
char strings[10];
_itoaQ15(1,strings);

A helyzet, hogy megtaláltam a függvény deklarációját a libq.h file-ban, de a definícióját viszont sehol.
Szerintetek mi a probléma?
(#) watt válasza Ven hozzászólására (») Márc 24, 2009 /
 
Be include-olod a szükséges fájlt? (Ez biztosan nem alapértelmezett.) A helpben a függvény leírásánál meg kéne legyen, hogy milyen fájl kell.
(#) icserny válasza Ven hozzászólására (») Márc 24, 2009 /
 
A forrásfájlba kell egy #include "libq.h", a linkernek meg kell adni egy -lq opciót, ami belinkeli a libq-coff.a könyvtárból a megfelelő függvényeket.

Gondolom, hogy a linker keresési útvonalában pedig benne kell, hogy legyen a ...\C30\lib\PIC24F (vagy amilyen mikrovezérlő családot használsz) mellett a ....\C30\lib útvonal is, ahol a libq-coff.a lakozik.

Végül is a Helpben nagyjából le van írva, csak egy kicsit sokáig tartott, mire megértettem...
(#) lczandris hozzászólása Márc 24, 2009 /
 
Sziasztok!

Most ismerkedek a Winpic800 programmal, és a port I/O bit konfigurációnál van egy olyan lehetőség hogy használjon Mclr-t. Gondolom ez a lehetőség a MCLR/Vpp lábat hivatott földre kapcsolni, ezzel resetelve a PIC-et, de ezt mikor követi el a program? A Vpp rákapcsolása előtt, vagy a program feltöltése után. A másik kérdésem csak annyi lenne, hogy programozás közben a programozásban nem érintett port lábak milyen állapotba kerülnek?
Előre is köszönöm a válaszokat!
Banday
(#) icserny válasza lczandris hozzászólására (») Márc 24, 2009 /
 
Egy dolog kimaradt a megfontolásból/kérdésből! Hogy milyen égetőt használsz....

A WINPIC800 ugyanis egy PC-n futó szoftver, tehát nem fog semmit sem földre húzni,anélkül, hogy valami hardvert oda ne tennél a PC és a PIC közé. Na, ettől a hardvertől sok minden függ!

Ha pl. a Watt-féle mini LPT égetőt rakod oda, akkor az MCLR lábra te kapcsolod kézzel a VPP feszültséget, az áramkörben tehát nincs olyan resetelő funkció, amit a WINPIC800 kapcsolgatni tudna. (még szerencse!)

Más égetőben lehet ilyen funkció, s akkor gondolom,beállítható, hogy alacsony vagy magas legyen az alapállapot (amikor éppen nem programoz). Tehát előtte és utána is - gondolom én.

Idézet:
„A másik kérdésem csak annyi lenne, hogy programozás közben a programozásban nem érintett port lábak milyen állapotba kerülnek?”

Elvileg "lebegő" állapotba.
(#) Ven válasza icserny hozzászólására (») Márc 24, 2009 /
 
Kösz a választ, de nem jutottam tovább. Amit leírtál én nem találtam meg a help-ben, egy-két helyen valami kis morzsát max. -lq opcióról meg semmit. Elmagyaráznád nekem mit kell csinálnom pontosan, vagy hogy a help-ben hol van ez? Köszi!
(#) watt válasza Ven hozzászólására (») Márc 24, 2009 /
 
Elmondom mit csináltam. Felmentem a microchip oldalára, beírtam a keresőbe, hogy C30. Az első találatot kinyitottam, és a doksik között ráböktem a 16-Bit Language Tools Libraries pdf-re. Beírtam a keresőjébe hogy itoaQ15. Azt hiszem minden le van írva, ami kell, pl. az, hogy azt a libq.h-t kell include-olni a program elején. Esetleg még ez elérési utat érdemes beállítani a projectben(zöld fogaskerék ikon), és ha kell, akkor a headerekhez felvenni a project ablakba a fájlt, de ha jól emlékszem, oda már nem kellett, de ártani nem árt.
Kicsit több önállóságot javaslok!
(#) Ven válasza watt hozzászólására (») Márc 24, 2009 /
 
Ezt én is meg tudtam magamtól csinálni. Ha beteszem include-ba a header-t akkor is ugyanazt a hibát írja ki. Ja és az elérési útvonalakat is beállítottam.
Próbáld ki!
(#) icserny válasza Ven hozzászólására (») Márc 24, 2009 /
 
Pontosan nem tudom elmagyarázni, mert azóta máshol, más számítógép és operációs rendszer előtt ülök. A lényeg nagy vonalakban:

#include "libq.h" a forráskódba kell.

Az -lq opció a Project Options/Project menüben a linkernek kell. A lapján alul be lehet pipálni, hogy egyéni opciók (is) legyenek, s akkor abba a sorba, amit automatikusan feltölt és szerkeszthetővé tesz, írd be a sor végére.

Ha netán nem találná meg a libq-coff.a könyvtári állományt, akkor ugyancsak a project options/project menüben az elérési útvonalak között a linker számára a C:\Program Files\Microchip\C30\lib útvonalat is hozzá kell adni. (Vagy ahhová nálad telepítve van).

A Help természetesen a C30 telepítési könyvtárában van a doc alkönyvtárban. Fixpontos könyvtár vagy valami ehhez hasonló a Help tartalomjegyzékében a kötet (lila könyvecske) neve.

Idézet:
„Ha beteszem include-ba a header-t akkor is ugyanazt a hibát írja ki.”

Mondom: -lq is kell!!!
(#) Ven válasza icserny hozzászólására (») Márc 24, 2009 /
 
Köszi ez az! Az -lq hiányzott. Ezek szerint az előbb rossz helyre tettem be. Hol olvastál erről a -lq-ról? A helpekben rákerestem, de nem talált rá semmit.
(#) watt válasza Ven hozzászólására (») Márc 24, 2009 /
 
Nálam nem volt ilyen gond egyszer sem, gondolom másképp sikerült a telepítés, vagy ilyesmi. De látom közben megoldódott...
(#) icserny válasza Ven hozzászólására (») Márc 24, 2009 /
 
Az előbb említett help írja, hogy -l vagy --library opcióval csatolni kell a könyvtárakat (kivíve a helpben felsoroltakat, amelyek hivatalból csatolódnak).

GCC-nél pedig (a C30 is GCC-re épül) alap dolog, hogy libxxx könyvtárat -lxxx opció megadásával lehet csatolni.
(#) Beles hozzászólása Márc 24, 2009 /
 
hali! Valaki tudna segíteni nekem, pic16f871-el hogyan tudnék egy ledet villogtatni, de úgy értem, hogy halványítani, aztán meg erősíteni. Remélem érthető. Azt kéne tudnom, milyen modullal kéne ezt megvalósítani, meg a beállításokat hozzá nagyából. Ha jól tudom ccp modullal lehet valahogy
(#) watt válasza Beles hozzászólására (») Márc 24, 2009 /
 
Nézd meg az adatlapban a PWM körüli regisztereket.
(#) watt válasza Ven hozzászólására (») Márc 24, 2009 /
 
Ráértem és megnéztem, neked volt igazad, nekem sem ment -lq nélkül! Ne haragudj, nem volt igazam!
(#) icserny válasza Beles hozzászólására (») Márc 24, 2009 /
 
(#) Beles válasza icserny hozzászólására (») Márc 24, 2009 /
 
Hali! Kezd összeállni a kép, csak egy dolgot nem találok (lehet már túl fáradt vagyok), hogy hol kell beállítani azt, melyik port hányas lába legyen a kimenet?
(#) potyo válasza Beles hozzászólására (») Márc 24, 2009 /
 
Nem lehet állítani, fix.
(#) Beles válasza potyo hozzászólására (») Márc 24, 2009 /
 
De akkor hol jön ki? A PORTB,3-on?
(#) potyo válasza Beles hozzászólására (») Márc 24, 2009 /
 
Leírom, hogy hogyan néztem meg, hogy hol jön ki. Elgörgettem az adatlapot a PWM modulról szóló részhez. Ott megnéztem a blokksémát, amin be van jelölve, hogy CCP1 jelzésű lábon megy ki a PWM kimenet. Ezután elmentem a Pin Diagram nevű részhez, ott pedig megnéztem, hogy a CCP1 láb az melyik a tokon.
(#) Blint hozzászólása Márc 24, 2009 /
 
Sziasztok!

Ha benne vagyok a megszakítási rutinban, akkor, ha törlöm az INTF flag-et, és utána bejön a megszakítási rutin alatt még egy felfutó él (arra érzékeny).

Akkor beáll újra az INTF flag, csak értelemszerűen nem generál még egy megszakítást?

Blint
(#) watt válasza Blint hozzászólására (») Márc 24, 2009 /
 
A flag beáll, és amikor vége a megszakításnak, újra megszakít. Az nem túl jó, ha állandósul ez a folyamat.
(#) Blint válasza watt hozzászólására (») Márc 24, 2009 /
 
Persze, nem akarok egy szép végtelen ciklust csinálni, a végén gondoskodom a flag újbóli törléséről.

Köszönöm a választ!
Blint
(#) potyo válasza Blint hozzászólására (») Márc 24, 2009 /
 
Igen, beáll, és amikor lefut a megszakítási rutin (tehát elér a RETFIE utasításig), akkor ismét ugrik a megszakítási vektorra, tehát belép a rutinba, és lereagálja a következő alkalmat is. De ha azelőtt jön újabb felfutó él, mielőtt törölnéd az előzőhöz tartozó INTF bitet, akkor már a következőt nem fogja lereagálni, mert INTF törlésével megszüntetted az okot, ami miatt ismét belépne a megszakítási rutinba.

A megszakítási rutin ezért a lehető legrövidebb kell, hogy legyen, csak amit muszáj abban csinálni, azt kell abban csinálni.
Következő: »»   442 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem