Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A másik láb mire van állítva? Bemenetnek van állítva, és lóg a levegőben?
Vagy lehet h itt a hiba? amugy egy cerberes lenne a gép, szóval szerintem áthallás nincs, se rövidzár, se forrasztási hiba. A programot meg annyiszór átírtam, hogy nem is tudom melyiket mutassam, de egy egyszerű ledvillogtatás sem akar már működni.
A fordító meg érdekes, hogy pl a PORTA,(ide bármit írhatok nem szól érte) , szóval a vessző után nem szól bármilyen számot írok, akár több jegyűt ismegeszik. az init: LIST P=16F628 #INCLUDE "P16F628.INC" __CONFIG _INTRC_OSC_CLKOUT&_CP_OFF&_WDT_OFF&_LVP_OFF
A CCS -t nem nagyon ismerem, de láttam már néhány CCS forrást és nem nagyon tűnt ANSI kompatibilisnek. Nekem a C18 jön be. Azért fontos az ANSI kompatibilitás, mert C-ben rengeteg mindent lehet programozni és borzasztó zavaró, ha túl sok egyedi jelölést (nem szabványos megoldásokat) használ egy compliler.
Ráadásul itt jön elő az is, hogy ha veszel egy könyvet, azok többsége az ANSI C-t tárgyalja. Nekem a legjobban a Computerbooks - Programozzunk C nyelven könyve tetszett eddig. Egyébként a Vaterán, Teszveszen gyakran lehet találni teljesen új könyveket negyedáron. Néhány hete vettem Andrew Koenig - C csapdák és buktatók könyvét. Ez Kiskapu kiadás. Ez is jó könyv, de ez azoknak való, akik ismerik már a C nyelvet, de szeretnék mélyíteni a ismereteiket. A klasszikus C-s hibákat tárgyalja, amit gyakran elkövetnek a programozók. Összegzésül rengeteg C könyv van, szóval nem nehéz találni... Ha már az ANSI C megy, utána még el kell olvasni az általad választott C compiler doksiját, pl. C18 esetén a doc mappába van 3 pdf. Ezekben a PIC-es sajátosságok vannak leírva. Mindegyik compiler specifikus dokumentáció abból indul ki, hogy már ismered a C nyelvet, tehát ezek már nem tárgyalják az alapokat.
jól van beállítva...szerintem, amin nincs semmi kimenetnek veszem.
Neked nem kell CLOCKOUT. Az akkor kell, ha több PIC-et vagy mást szeretnél közös órajelen járatni. Ezért nem megy a RA6, ill. megy, csak nem úgy, ahogy szeretnéd.
köszönöm de akkor hogy kell beállítani a config részt ha a belső oszcillátort szeretném hasznáni?
Üdv!
néztem egy másik progihoz konverter részt, akárhogy próbáltam nem akart menni, lejet az ANSI kompatibilitás volt a gond. Tudsz esetleg linket ahonnan letölthető egy működő az ANSI kompatibilis verzió?
Most nem vagyok nagyon képben, milyen konverterről van szó?
Ha a C18 érdekel, azt ingyen letöltheted a microchip honlapjáról. Van benne némi limit, de nekem meggyőzödésem, hogy jobb limittel, mint nélküle. Konkrétan az extended utasításkészlet használata van korlátozva (időkorlát), de szerintem nem érdemes használni az extended utasításokat, mert vannak vele bajok.
köszönöm De nem jó..semmi ,szerintem halott..nem is tudom mért pic-kel akarom megcsinálni 84est amugy már programoztam ..meg atmega 88 ill 8-ast..majd azzal megcsinálom.
Most akkor PORTA vagy PORTB 5. és 6. láb? Mert azért az nem teljesen mindegy, és hol egyiket, hol másikat írod.
Mi az, hogy kimenetnek veszed? Kimenetté van beállítva vagy nem?
Mi az a konverter nálad?
Miért használtok olyan szavakat, amiket nem értetek(én se teszem, pedig van néhány. Inkább körülírom)? Compiler és a konverter nem ugyanaz! Ha már magyarul akarod, akkor fordítónak hívják. Gondolom nem AD konverterről kérdeztél, mivel ANSI-t emlegeted!
Sziasztok!
Van egy kis gondom... Egy telepes táplálású szerkenytyűt fejlesztgetek, és az egyik komparátorral akarom figyeltetni a tápfeszültséget. Ez idáig rendben is, volna. Ha átbillen a komparátor megszakítást generál és lefut az int. programja ami csinál amit csinál...stb stb. A gondom az hogy a belső referenciát akartam felhasználni a feladathoz, de némi méricskélés után rájöttem hogy a "referencia" értéke a tápfeszültség függvényében változik. Kérdésem: Ha ez így van (és nem a PIC em hibás...) akkor ez mitől " referencia"? És hogyan kéne (+ 1 stabilizátor vagy zener / ellenállás...stb nélkül) megoldani ezt a feladatot a belső feszültség referencia használatával?
én régebben ezt úgy oldottam meg, hogy leosztottam a pic feszét és bevezettem egy adc-re és ahogy ment le pic fesze úgy csökkent a különbség, így az adc-n mért fesz nőtt, látszólag.
Tehát ezek szerint akkor a belső referencia tápfeszültségtől való függése természetes a PIC ek esetében. Most hogy nézem a blokksémáját az adatlapban, nem is várható más tőle. Egy egyszerű soros ellenállás lánc + az engedélyezés. Mitől legyen stabil..? De akkor még mindíg nem értem hogy mitől hívják referenciának. Egy referencia attól referencia hogy az értéke állandó. Vagy nem jól gondolom? Mindenesetre jól megszivatott...
Ez az ADC s dolog nekem bonyinak tűnik, meg át kéne hozzá tervezni a panelt is. Az ADC lábai már foglaltak. Akkor már inkább belepókolok a kütyübe egy SOT23-5 méretű 3 V os low drop stabilizátort. Ezt a belső referenciát meg elfelejtem egyelőre. Legalábbis amíg meg nem tudom mitől igy működik és mire jó....
watt
A konverter egy program része lett volna, integerből csinált volna számot és vissza de vagy 3 nap szenvedés után feladtam NickE: Igen, a C18 érdekelne. Arról fogalmam sincs, hogy mi az extended utasításkészlet, külső utasításra tippelek, de majd kiderül. A fent említett C18 hoz van esetleg valami alapoktól indító szakirodalmad?
bocsi ha kicsit zavarosan írtam
szóval igen, kimenetnek van beállítva, és azért írtam egyszer portb-t máskor meg porta-t, mert mindegyikkel próbálkoztam. Nem tudtam életre kelteni a picek, így hát egy atmega8-assal (avr C-ben írva a progit) megoldottam a gondot és szépen működik. nem tudom mi lehet a hibás, lehet én..
Vannak olyan PIC-ek, amikben van band-gap referenciaforrás is, amit használni is tudsz A/D-nél vagy komparátornál. Ez tényleg egy fix referencia, elég kis függése van tápfesztől, hőmérséklettől.
Az általában a PIC-ekben használt "referencia"-kapcsolás az valóban az, amit írtál is, hogy a Vdd-t tudod valamilyen arányban leosztani. Egy stabil tápfeszről járatott cuccnál ez jó is tud lenni, mert a komparátor egyik lábára tudsz egy jól meghatározható "referencia"-pontot adni, amihez vizsgálod a külvilágot. Persze itt nem abszolút referenciáról van szó, ahogy már rá is jöttél. Egy másik lehetőség, amit már fel is vázoltál, hogy valamilyen stabilizátorral oldod meg a referenciafeszültség előállítását. Tudom javasolni a Microchip MCP1702-es stabilizátorcsaládját (létezik különböző feszültségekre, van SMD-ben is és TO92-ben is), ami elég kis drop-ú is, és a saját árama is nagyon alacsony, 1-2uA. Pont telepes táplálásra találták ki, pl. egy 9V-os elemről 3.3 vagy 5V-os rendszerek táplálására. A 3.3V-os változatát használtam már, kiváló darab.
Szerintem erre már válaszoltam elég bőven.
C-t rengeteg forrásból lehet tanulni, pl. azok a könyvek, amit írtam, de ha tudsz angolul, akkor beírod a googleba, hogy Teach yourself C és jönnek a SAMS könyvek. Ezek is jók. Magyar nyelven is van rengeteg könyv is, meg neten is találsz oktató anyagot, ha nem akarsz könyvet venni. A C18 sajátosságait sehonnan nem fogod tudni megtanulni, csak a hozzá letölthető doksikból. Ott van a Microchip honlapján.
Köszi a választ. Az említett stabilizátort nem ismerem, de körüljárom mert érdekel. Egyelőre egy LP2985/3.0 raktam bele mert az volt itthon. Ezt az LP sorozatot használom évek óta. Van 50 mA és 150 mA es változat is. +0,2 V tól már működik, de ez terhelés függő. Csak ajánlani tudom. Inkább az LP2985 öt érdemes használni mert az LP2980 as sorozat elég zajosra sikeredett. (De a gondolom a digit világban egy kis fehérzaj nem számít. )
Ez az MCP sorozat tényleg nagyon jó, már be is táraztam belőle. Ráadásul kb. 1/3 annyiba kerül mint az LP298X sorozat.
köszi
Sziasztok
egy 18F452 PWM moduljával foglalkozom. A kérdésem az,hogy az ismert kitöltési tényezőből úgy lesz-e a CCPR1L illetve CCP1CON <5:4> be töltendő 10bites érték,hogy a kitöltési tényező egyenlő a betöltendő érték decimálisan/1024? pl.: 50%-os kitöltési tényezőt akarok,akkor d'512'/1024,tehát CCPR1L-be 10000000,és CCP1CON <5:4>-be d'0'? köszi előre is üdv
A kitöltési tényező függ attól is, hogy a teljes periódus hogy van beállítva (PR2 regiszter). Gyakorlatilag a periódust a timer2 adja úgy, hogy 0-tól számol PR2-ig, majd kezdi újra, a PWM kimenetet pedig akkor billenti be, amikor ez a számláló eléri a CCPR1L által beállított értéket, és akkor kapcsolja ki, amikor a nullázás történik. Ha a periódust 100-ra állítod, akkor az 50%-os kitöltési tényezőhöz 50-es értékre lesz szükség, ha 256-ra, akkor 128 kell majd 50%-hoz.
A 10 bitet érdekesen vadássza össze amúgy, mert a timer2 8 bites, viszont egy előosztóról kapja az órajelét, és ennek az előosztónak az utolsó 2 bitje kerül még hozzá a 8 bithez, hogy a maximum 10 bites érték kialakuljon. Egyébként az adatlapban elég részletesen le vannak írva ezek, még a szükséges kalkulációk is meg vannak adva képletekkel.
köszi szépen.
Akkor jól értelmeztem a dolgot.Az zavart meg,hogy van egy forrásprogramom,amiben van 16 különböző kitöltési tényezőhöz tartozó hexa érték,ezeket az adatlap szerinti képletekkel visszaszámolom,de sehogy sem akar stimmelni a megadott kitöltési tényezőkkel. üdv.
Halihó! Rá tudna valaki mutatni egy (vagy több) szuperjó, letölthető PIC-es könyv linkjére? Nem bánom, ha torrent file, de annak a linkjét privátba kérném, ha lehet! Köszi! Kellemes pihenést mindenkinek!
Hi!
A következő klasszikus probléma megoldásához szeretnék segítséget kérni: Adott egy pic16f628-as kontroller, meg 5 db led. A feladat a ledek villogtatása 1s-os gyakorisággal bináris számlálóként. A vezérlő programot áramkörszerkesztő progival (parsic) csináltam, ami szépen előállítja az asm és hex fájlokat is. A működés közben elindul a felfelé számlálás, de az RA4-es lábon lévő led soha nem kapcsol be. Kipróbáltam más, ugyanebben a programban megírt, led villogtató kóddal is, de a helyzet nem javult. Most szeretnék írni egy C v. Asm kódot bármilyen led villogtatásra, akár olyat, amely egyszerre villogtatja az összes ledet, hogy megtudjam mi a baj. A portokat RA0-tól RA4-ig használjuk. A mikroC ledes példájához tartozó hex fájlt beégettem, de nem történt semmi. Erről tudja valaki, hogy mit csinál?: void main() { PORTA = 0; // Initialize PORTA TRISA = 0; // Configure PORTA as output while(1) { PORTA = ~PORTA; // toggle PORTA Delay_ms(1000); // one second delay } } A kvarc 4Mhz-en ketyeg. Aki a mikroC compilert v. az Mplab-ot ismeri és tud ilyen egyszerű led vezérlést, az kérem segítsen. Előre is kösz.
Itt van pl az
Elmer 160, aminel PDF-ben lehet letolteni fejezetenkent a konyvet, vagy a Mikroelektronika konyvek amit online lehet olvasni (en ugy szedtem le offline-ba, hogy Ctrl+C / Ctrl+V -vel OpenOffice.org -ba bemasoltam es azt kiexportaltam PDF-be, de lehet akar wget-tel stb leszedni es akkor offline lehet egy bongeszovel olvasni, avagy ez sem annyira rossz: Gooligum. Valahol volt egy magyar site is ami nem volt teljes de jo kiindulas volt ha jol emlekszem (de annak sajnos a nevere nem emlekszem, biztos tudja valaki mas). Amugy a mininova.org -on is korbe nezhetsz torrentekert...
Nézd meg az adatlapban az IO Ports résznél, hogy az RA4 lábnak van-e valami specifikussága!
|
Bejelentkezés
Hirdetés |