Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   222 / 1320
(#) Soulskater válasza trudnai hozzászólására (») Máj 30, 2008 /
 
Azthiszem igazad van!!
elmélyülök a 887esben!
csak kicsit riasztó volt első látásra a demo board
(#) watt válasza Soulskater hozzászólására (») Máj 31, 2008 /
 
Ha a -demo board doksijában- a 35. oldalon megnézed a rajzot, láthatod, hogy halál egyszerű az egész. Vannak LED-ek, amik most neked kellenek, és még kristály is van rajta, ha a belső oszci után azt is ki akarod próbálni. Azt kell csak megnézned, hogy a LED-ek melyik lábra kapcsolódnak és milyen polaritással, és ennek megfelelően megírni a LED villogtató első programodat. Először az is elég, ha csak kigyullad, mondjuk minden második....
(#) watt válasza trudnai hozzászólására (») Máj 31, 2008 /
 
Lenne egy kérdésem a STACK-el kapcsolatban. Ezt a területet a linker fájlban jelölik ki, és 0x100 hosszú. Ez nálam a 0x300 tól kezdődik. Elvileg innek kezdődően hozza létre a fordító a két karakterláncnak a helyet, illetve minden subrutinnak itt osztja ki a lokális változóknak is a terültetet. Egy subrutinban deklarált változó, ha jól tudom addig él, amíg a rutin is él. Gondolom attól, hogy meghív még lejjebb lévő rutinokat, az nem jelenti azt, hogy már nincs szükség a létrehozott területekre?
Úgy gondolom, hogy itt az USB firmware kutyul el valamit, és nem maga a fordító. Próbáltam debuggolni, de eddig nem jöttem rá, hol változik meg a tartalom. Majd ma...

A másik, hogy nem értettem milyen jelentősége van annak, hogy a karakter típusú tömbök a valóságban hosszabbak? Azt sem, hogy most mi jelentősége lenne annak, hogy egy ilyen típusú változót hol hozok létre és hol használok(ha csak a subban van szükség rá, akkor miért hoznám létre globálisnak, hogy pazaroljam a RAM-ot?) Ennek nem szabadna így megváltoznia szerintem semmiképpen! A fordítónak tudnia kéne mit hová osztott ki, és csak felszabadítás után oszthatna ki rá más változókat. A gyanúm az, hogy nálam nem teljesen korrekt a linker kiosztás az 512 puffer miatt, vagy az USB firmware valahogy nincs jól megírva és direkt címzéssel rontja el a területet, ami nem a fordító hibája.
(#) qwer85 hozzászólása Máj 31, 2008 /
 
Hello mindenki..

Lenn egy rövid kérdésem:

pic16f877 40PIN P-DIP tokozású mikrokontrollerhez milyen gyári programozót érdemes venni?

A microchip honlapján azt írja hogy a DV164120 PICkit2 StarterKit támogatja a pic16f877
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nod...010242

de a DV164120 adatlapján az van, hogy:

"Low pin count demo board supporting 8/14/20-pin mid range PIC microcontrollers"

akkor most hogy van ez?

Elöre is kösz a válaszokat.
(#) trudnai válasza watt hozzászólására (») Máj 31, 2008 /
 
Na raneztem a DCD fw-re, es ertem mi a baj...

Jol irod, nem kellene, hogy stack elmasszon, es teljesen korrektul irtad le. A gond nem ez, hanem ha megnezed a cdc.h-t, akkor lathatod, hogy a mUSBUSARTTxRam fuggveny nem is fuggveny hanem makro, de nem is ez az igazi gond, hanem az, hogy ez csupan elokesziti a transfert, de az nem tortenik ezen a ponton meg meg...

A main-ben valahol vagy interruptban pl van egy CDCTxService fuggvenyhivas minden bizonnyal, es az intezi a transfert, de akkor mar a fuggvenyed reg kilepett, azaz a stack terulet ahova a dolgaid pakolva lettek felszabadult es nyilvan mas dolgokra lett felhasznalva valahol mashol...
(#) watt válasza trudnai hozzászólására (») Máj 31, 2008 /
 
Köszönöm, hogy megnézted! Én még ennyire nem értek a C-hez, de most hogy leírtad pontosan értem mi a gond!
Tanulság, hogy a CDC-vel nem küldhetek ki lokális változóból adatot, csak globálisból, vagy rom-ból.
Még egyszer köszi!
(#) watt hozzászólása Máj 31, 2008 /
 
Lenne még egy kérdésem.
Próbálok 512 bájtnyi memóriaterületet lefoglalni. Ezt tudtommal csak a char típussal tehetem meg, mert nincs olyan a C18-ban, hogy byte típus, vagy mégis?
Ha a linkerben beállítok egy területet, pl. 0x600..0x7FF, akkor ide csak 511 hosszú char deklarálható, mivel a 512. a nullkarakter helye.
Még is a MC firmware-ban láttam, hogy ugyanerre a helyre 512bájtot deklarál, és le is fordul hiba nélkül. Hogy csinálják? csatoltam az említett firmware-t(komplett work)
jut eszembe, az msd_buffer[512] ről van szó...

MCHPMSD.ZIP
    
(#) watt válasza qwer85 hozzászólására (») Máj 31, 2008 /
 
A PICKit2 minden lényeges PIC-et tud programozni, és nagyon sok, és egyre több PIC-et debuggolni. Tökéletes választás szerintem.