Fórum témák
» Több friss téma |
Ha nem kell túl nagy sebesség, akkor az MMC vagy SD kártya is megoldást jelenthet SPI kommunikációval.
Szia!
A MAPS ezt adta a Microchip-nél ( ha már PIC !) :SST25VF064C Bővebben: Link, ebből 4 db szerintem jó lehet! Steve
Az flash kártyát is inkább csak ott lehet hatékonyan használni, ahol megvannak a memória bufferek a túl gyakori újraírási műveletek elleni védelemhez, és akkor ki is kötöttem ugyan ott. A flash tippet köszönöm, természetesen észben tartom, mint lehetőséget, de most dinamikus ram kellene.
Szia!
PIC24FJ128GB206 (96k belső RAM) és a flash megoldást jelenthet.
Pic kontrollerek programozására, a programok nyomonkövetésére. Sajnos elavult: ("The MPLAB ICD 2 is not recommended for new designs and will not support new MCU or dsPIC devices released after September 2010.") Helyébe az ICD3 lépett...
És ezekbe és kell felprogramozot pic úgy irtva hogy tugyon programozni
Igen. Itt is van az oldalon egy ICD2, és pic lakik benne. Bővebben: Link :yes:
Kell bele felprogramozott pic: a soros vertióhoz egy 16F877(A), az USB -s verzióhoz egy 16F877(A) és egy 18F4550.
Jobban jársz egy PICKit2 -vel (vagy klónnal), PICKit3 -mal.
Ebay-en van, a Sure Electronics "klónozta", de a kérdésed értelmében az is "gyári"...
A kapcsolási rajza és a firmware is nyilvános, úgyhogy akár te is klónozhatod.
Ha 16F887-re tennék egy 32k külső kristályt, hogy tudjam órához használni, akkor a PWM modul mennyire maradna használható? Vagy tudja hozzá a belső oszcillátort használni?
A PWM modult a Timer2 hajtja, míg a kvarcról a Timer1 tud menni, így a kettő nem érinti egymást, használhatod a PWM modult a belső órajelről.
Hali!
Mégsem igazán működik a timer2 jelzőbit kiolvasás a Piccoló projectben. Az squarewave.c programnál maradva hova kell elhelyeznem a=PIR1bits.TMR2IF egyenlőséget ahhoz hogy a főprogramban használhassam az értékét? Az Watch-ban látom TMR2 csökkenését, a PIR1 2.bitjének változását, de nem tudom a jelzőbit értéket kiolvastatni. Üdv.
Megszakítási rutinba valami ilyesmi kellene:
Főprogramban meg
Az a változó természetesen globális kell, hogy legyen. Idézet: Nem tudom, hogy mi a csudát akarsz a programmegszakítást kérő jelzőbittel. Az eredeti kérdésfelvetésben nem arról volt szó, hogy hosszú késleltetéseket akarsz? Ehhez az interrupt kiszolgáló eljárásban kell egy számlálót csökkentgetni (ha nem nulla az értéke), nem a főprogramban. A főprogramban pedig előbb beállítod, hogy mennyi legyen a késleltetés, majd azt figyeled, hogy nullázódott-e már.„Az squarewave.c programnál maradva hova kell elhelyeznem a=PIR1bits.TMR2IF egyenlőséget ahhoz hogy a főprogramban használhassam az értékét?” Ha közben változott az elképzelésed, akkor egyeztessünk, hogy követni tudjam, mivel próbálkozol! Idézet: És volatile, nehogy a fordító kioptimalizálja a figyelését! „Az a változó természetesen globális kell, hogy legyen.”
Hali
Nem változott a feladat amit megakarok oldani: olyan áramkör amely a bemenet (k) változására, adott kimeneteket vezérli (ki-bekapcsolja) különböző késleltetésekkel. Csak a megoldásban nem ismertem fel azt az egyszerű dolgot hogy a timer2 jelzőbitje megszakítást okoz és a vezérlés a rutinba kerül, ahol már ugyis 1 a jelzőbit. Én user meg ott vizsgáltam az értékét. Végül is az eredmény ua. csak az én megoldásom felesleges. A problémát az okozta és azért nem működött mert nem volt globális a változó. Egyébként hogyan lehet a változót globálisnak és valetite-nek dekralárni;? Biztos egyszerű, de most nem tudok utána nézni és kipróbálni. Üdv.
Ha a program elején, a main() és minden más függvényen kívül deklarálod, akkor az globális lesz. Volatile pedig akkor lesz, ha a deklarálásnál a "volatile" varázsszót is megadod, ahogy ebben a hozzászólásban írtam.
Hello,
Ismét egetrengető problémám van. ASM-ben már tudtam 18f14k22-t kezelni, de valójában C18 compilerrel szeretnék dolgozni. Feltelepítettem. Beállítottam. Eredmény: lefordítja a forráskódot, elkészíti még a hex állományt is, de a "Programmer/Program" parancs hatására nem történik működékes dolog. Értsd: lefut a programozás, a rátöltött ASM programot tuti törli, Verify hiba nélkül lefut, de mégsem történik semmi. Kilépek MPLAB-ból, PICKIT2 indítom, hex-et rá tudom tölteni a PIC-re és működik is! Miért nem megy MPLAB alól, míg ASM-el meg megy és a hex állományt is legyártja a C18?? Ezer hála a válaszért.
Lehet, hogy csak rá kellene bökni a Programmer/Release for Reset vagy a Programmer/Set Vdd On menüpontra.
Kipróbáltam. Nem segít sajnos. Tettem próbát a PICKIT2 programmal is, bepipáltam a VDD ON gombot, de meg se nyikkan.
Olyan mintha MPLAB alatti rátöltés egy ismeretlen programot kódolna a PIC-be, de szabványosan, amit nem tudom mi és honnan veszi, de semmi kapcsolata a projektemmel.
Már nem tudlak követni. Lentebb még azt írtad, hogy a PICkit2 programjával felírva működik.
(Egyébként a PICkit2 programja is RESET-ben tudja tartani a mikrovezérlőt, ha nem vigyázol!)
Az ismeretlen eredetű program verzióját támasztja alá, hogy alapból 0xEF a lefordított programom, majd mindent kikommenteztem csak a main() maradt és így is 0xEF a mérete
A program: #include #pragma config WDTEN = OFF void main (void) { /*TRISC = 0x0; while (1){ PORTC = 0x01; } ;*/ }[i]
Bocs ha nem megfelelően írtam le:
Igen, a HEX filet kitallózva PICKIT2-vel fel tudom tölteni a mikrovezérlőre és működik is. Idézet: „Tettem próbát a PICKIT2 programmal is, bepipáltam a VDD ON gombot, de meg se nyikkan.” Ez arra vonatkozott, hogy MPLAB alatt hiba nélkül lefutott programozás után kiléptem, indítottam PICKIT2 progit és csak a tápot kapcsolatam a Starter panelra.
Elnézést az értetlenkedésért, de azt hol kell?
Találtam egy:MPLAB/Projekt/Build Configuration alatt Release vagy Debug választhatóságot , de egyikre állítva sem történik változás. |
Bejelentkezés
Hirdetés |