Fórum témák
» Több friss téma |
Akkor így hivatkozzak rá?
Még az ANSELH-t is aláhúzza, de miért? A hozzászólás módosítva: Ápr 10, 2016
Inkább így: GPIO.B0, vagy egyszerűbben: GP0_bit.
ANSELH nincs a picben. Van ANSEL meg ADRESH. A hozzászólás módosítva: Ápr 10, 2016
Csak egy tipp:
Ha az adott PIC nél valamit másképp nevez adatlap alapján is és nem vagy biztos a MikroC ill MikroPascal - os elnevezésben, akkor túrd fel egy kicsit a fejlesztő környezetet. Én ugyan pascalozok de MikroC -nél is a "MikroC PRO for PIC/Defs" mappában megkeresed az aktuális PIC -ed hez tartozó filet. Esetedben pascal környezetben P12F683.mpas C ben talán P12F683.c . A tartalma (csak részlet): (Az utolsó két sort nézd.)
Ez nagyon jó hasznos kis trükk, köszönöm.
Sziasztok!
Én mikroc-ben szeretnék programozni egy pic16f877-est az alábbi kondíciókkal: PIC16F877 4Mhz 5db DS18B20 hőmérő 5db digitális bemenet úszókapcsolók jeleinek érzékelésére 4db digitális relés kimenet Az összeépített vezérlőnek hőmérsékletet, valamint úszókapcsolókat kell figyelnie, melyeket LCD-re is ki kell írnia. Az LCD-vel egyidejűleg a soros portra is be kell küldenie, mért hőmérsékleti adatokat, valamint a portról fogadnia kell bekapcsolási parancsot a relék meghúzásához. A mikroc helpje alapján összeraktam a kódot,de most tanácstalan vagyok hogy miért nem küldi megfelelően az adatokat.(lásd csatolt kép)
Sziasztok
Van egy PIC18F46k22 pickem és hát a mikroc nem tudja ezeket leforditani VDelay_us(ido); VDelay_ms(ido); ezt ismeri Delay_ms(1000); akkor az a bajom hogy nem 1 másodpercenként csinálja ha nem 5 másodpercenként . Ezek miért vannak???
VDelay_us() parancs nem létezik mikroC -ben Delay_us() viszont van. Olvasd végig a Help menü ide vonatkozó részét.
A Delay_ms(1000) akkor megy 5 másodpercig, ha a fordításkor beállított órajel ötszöröse a valós futtatáskori órajelnek. A hozzászólás módosítva: Jún 19, 2016
ha a fordításkor beállított órajel ötszöröse a valós futtatáskori órajelnek. ezt nem értem
![]()
Gondolom külső 4MHz Kvarc -ot használsz. A MikroC-ben a PIC konfigja véletlenül nem 20 MHz ?
Mert ebben az esetben kiszámolja a feljesztő környezet hány műveleti ciklus az 1 sec. És ezt a valóságban lassabban hajtja végre. A hozzászólás módosítva: Jún 19, 2016
belsöt használok
Esetleg egy megszakítás nem szól bele?
Még azt megteheted belső esetén, hogy a programod main részében is beállítod a belső osztillátorra vonatkozó beállításokat. A hozzászólás módosítva: Jún 19, 2016
semmi ennyi a program kód:
OSCON, OSCTUNE regisztereket jól állítottad be?
Elvileg a fejlesztő környezetnek be kéne állítani, de én 16-os sorozatnál a kód elején ennek allanére mindig beállítottam az OSCON regisztert. Lehet, hogy csak azért nem futottam bele ilyenbe.
Ennek a PIC-nek 16MHz a belső órajele, az OSCON registerben alapértelmezetten ezt 16-tal osztja. A PLL kell? Milyen frekvencián akarod hajtani?
16mhz en elég sztem ledkokáról van szó
64MHz
OSCCON.6=1; OSCTUNE.PLLEN=1; fejből azt hiszem, de nézz utána
ezt hova irjam ?? program elejére??
A hozzászólás módosítva: Jún 19, 2016
Ez egy 16 os és Pascalos projekt, de ott látod az elején mit kéne neked is C ben,
Bővebben: Link Fő Unit 30. sor. A hozzászólás módosítva: Jún 19, 2016
gondolom a main függvénybe.
64MHz=16MIPS
OSCCON.6=1; erre ir hibát
OSCCON = 1 elfodja de semmi... minél nagyobb óra jelre állitom annál lassabb ![]() A hozzászólás módosítva: Jún 19, 2016
Elnézést, de nincs mikroC fejlesztői környezetem, nézd meg a definiciós file-ba az OSCCON register-t (CTRL+D). Arra akartam utalni, hogy a 6. bitet kell 1-re állítani.
Átállítottam 1 mhzre a belsöt át nagyábból 1 másopercenkét mozog a led.
A keretrendszerben feltüntetett frekvenciaérték leginkább a fordítóprogramnak van szüksége, ebből számolja a Delay függvényt. Ennek nincs hatása a PIC oszcillátorára! Mint írtam alap esetben az órajele ennek a PIC-nek (16MHz/16) 1MHz, ha az *OSCTUNE.PLLEN=1 ezt a PLL 4-el szorozza. Ez esetben 4MHz-et kell a keretrendszerbe írni. Ha a OSCTUNE.PLLEN=0 (alapértelmezett) akkor nincs PLL szorzás. Ez esetben a keretrendszerbe 1MHz-et kell írni.
Azt hiszem mikroC alatt OSCCON.6=1; helyesen OSCCON.B6=1; vagy IRCF2_bit=1; ui. * A PIC doksija szerint 36. old. A PLL csak 4MHz felett használható A hozzászólás módosítva: Jún 19, 2016
OSCON.IRCF2 lesz a helyea formátum.
De ha a kriszrap a pont után nem kapkod a fejlesztő környezet megjeleníti a lehetséges választásokat.
Basszus tényleg
![]() Nagyon köszönöm ![]()
Beírom azt hogy "oszlopok(3)" és 1 ig számol miért??? A hozzászólás módosítva: Jún 20, 2016
|
Bejelentkezés
Hirdetés |