Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Esetleg ezt nézd meg: http://eng-serve.com/pic/pic_timer.html
Próbáltam növelni, de nem segít. Viszont ha csökkentem a AAvarage[] tömb méretét akkor lefut rendben. Kevés a memória a stack számára?
Egy ilyen összegzés nem kellene, hogy tömbmérettől függő mennyiségű stacket használjon, hacsak nem valami rekurzív megoldásról van szó. Lehet, hogy a program szerkezetével van inkább gond, nem az összegzéssel, csak szerencsétlen módon épp itt bukik ki.
Idézet: Nem tudom, ez akkor derülne ki, ha meg tudnád növelni a méretét és lefutna a program... Az említett tömbödön kívül mi foglalja még az adatmemóriát? Ha jól látom, a 2K-ból 1802 bájt foglalt... „Kevés a memória a stack számára?”
Üdv!
A PIC18F8722-es család komparátor moduláról lenne egy kérdésem. Az adatlap szerint (mellékletben) 8 féle működési módja van. Ezek közül egyikben sem látok olyat, ahol egyszerre lehet belső komparátor referenciát használni (CVref) és egy külső lábra kapcsolni aszinkron a komparátor kimenetét. Lehetséges mégis valahogyan egyszerre a két fícsör használata? (Ha esetleg valakinek van ilyenje és ki tudná próbálni az nagyon jó lenne, de ötleteket is szívesen várok.) (A PIC18F24K20-ban ez teljesen érthetően és rugalmasan működik, csak nekem két UART modulra van szükségem és EEPROM-ra. A többi típusnál ezek hibádznak.) Köszi előre is! Balázs
A programban lévő LCD modul használ egy buffert, hogy ne kelljen visszaolvasni adatot az LCDről, ez 1024bájt, csak a gyorsabb képernyőkezelés miatt használtam.
szilva: Összesen 5 tömb van, ha 5 eleműek akkor lefut a prg, ha 20 akkor már nem. Kicsit átnéztem a változókat és sikerült egy kis helyet megtakaírtanom, 1előre ezzel megoldódott. Köszi nektek
Sziasztok
PIC 12F629 írásakor "Invalid Osccal"-t ír ki a PK2 programja, meg visszaolvasáskor a kód se stimmel egészen. Lehet, rosszul lett konfigurálva a oscillator, de fura, mert törlés után is írja ezt a hibát. Hogy lehet orvosolni ezt a hibát? üdv
A Tools menüben OSCCAL/Auto regenerate nekem már segített egyszer, hasonló probléma esetén.
Szia!
Minap én is küzdöttem egy kanyart ezzel. Meg előtte is volt bajom, de azt a jdm alapú programozó szoftver és hardver okozta a 12F-nél. A utóbbi esetben ezt a hibát, meg a programozó lábakat terhelő ledek okozták, leforrasztva megoldódott a probléma. (A jdm-el eltolt PICeket, nálam is az auto regenerate hozta vissza.)
Szia
Köszi, sikerült.
Szia!
Az adatlapban a "Comparator Voltage Reference Module" fejezetben (23-2 ábrán) láthatóan a belső referencia az RF5 lábon kihozható. Ez a láb 22-1 ábra szerint felhasználható a komparátor(ok) bemeneteként. A komparátor(ok) (001, 011, 101 mód) kimenete a RF2 ill. RF1 lábra hozhatók ki. A 110 módban a komparátorok + bemenete a kontrolleren belül is összeköthető a Vref modullal... Szia Idézet: --> az "auto regenerate" az mi ?„A jdm-el eltolt PICeket, nálam is az auto regenerate hozta vissza.” Steve
A programmemória végén van egy érték eltárolva, amivel gyárilag bekalibrálták a belső oszcillátort (talán) 1%-on belüli pontosságra. Ezt a fejlettebb égetők (ICD2, Pickit2) írás előtt kiolvassák, majd visszaírják, így nem veszik el a gyári kalibrációs adat. JDM és hasonló egyszerűbb égetők viszont nem olvassák ki írás előtt, így az adat elveszik. A Pickit2 tud olyat, hogy a kontroller kimenetén méri az órajelet, és így utólag újra létrehozza ezt a kalibrációs értéket - ez az auto regenerate. Nem egy nagy tragédia egyébként az sem, ha nincs visszaállítva, pontos időzítést igénylő feladathoz úgyis kvarcot használunk, amihez meg nem kell a pontos időzítés, az meg általában simán elvan egy közepes beállítással, amivel alapból is indul a kontroller - hogy 4 helyett 3,7 vagy 4,3MHz-en fut, az gyakran lényegtelen.
Egyébként egyes piceknél ezt az értéket úgy kell programból kiolvasni a programmemória végéről és beírni a megfelelő regiszterbe. Vagyis ha ezt nem csinálod meg, akkor hiába áll ott a kalibrációs érték, nem lesz használva.
Köszi szépen!
Azt hittem így nem fog működni, tehát az RF5 láb vagy analóg bemenet (komparátor) vagy analóg kimenet (feszültség referencia), és hogy "összeakad" a kettő funkció. Köszi még1x! Szép napot! Balázs
Bocsánat a pongyola fogalmazásért. Potyo fórumtárs korrektül megválaszolta, köszönöm neki
Üdv.
Keresgettem a fórumon a problémámra megoldást, de nem találtam megfelelőt. Ha figyelmetlen voltam ezúttal kérek elnézést! Szeretnék építeni egy 4 csatornás DMX vezérlésű Dimmert. Az áramkör felépítésével semilyen kérdésem nincs, csak a PIC-be égetendő programmal! Elkészítettem a programot, számtalanszor leszimuláltam, de amikor beégedtem egy próbapanelba nem azt vártam amit csinált. Szépen elindul az eleje egy szabadon futó számláló az 50Hz hálózati feszhez szinkronba szépen komparál, de mikor adok neki DMX jelet belekerül egy végtelen ciklusba. Pedig a szimulációba nem tudtam olyan feltételt adni ami ilyen ciklusba lökte volna! Interruptal kezeli le a DMX jelet, felteszem a programrészletet! A segítséget előre is köszönöm.
Köszi, ezt ismertem ( már a kalibrációs értéket, a saját kalibrálást én még nem használtam!), csak nem tudtam, hogy így hívják .
Egyébként ilyen esetben én azt csináltam, hogy különböző OSC_CAL értékeknél megmértem egy kiadott jel frekvenciáját ( periódus idejét ) és a megfelelő értékkel indítottam a programot, nem a gyári értéket hívtam elő! Kösz a segítséget! Steve
Köszönöm a választ, de már láttam a PDF-et, tulajdonképpen az volt a minta. Nemtudom miért nem működik
Üdv!
Köszönöm a segítséget, így már világos a dolog.
Hello!
Abban kellene nekem segítség, hogy a PIC16f628-as processzor A.3-as portjának a programozása során kell e beállítani valamit a port irányon kívül. A problémám: Egy nyomógombot szeretnék figyelni ezen a biten. A nyomógomb 0V-ra húzza a portlábat alapállapotában 5V-ra van téve. Ha a programban megpróbálom figyelni ezt a lábat akkor nem hajlandó csinálni semmit.(egy 7szegmenses kijelzős óra) Kijelző kép sincs olyankor. Segítséget előre is köszi.
Bocsi megint én vagyok. Most sikerült elérnem hogy a program már fut ha figyeltetem vele az A.3-as portot. De most folyamatosan azt hiszi hogy a nyomógombot nyomom.
Egyszerűen nem tudom mi lehet a baja az A.4-es biten lévő nyomógomb tökéletesen működik.
Szia!
Már sokszor leírtuk, ki kell kapcsolni a komparátorokat: a CMCON regiszterbe 7 -et kell írni (ld. adatlap 9-1 ábra). Szia
Hali
A PIC-ek portjai altalaban tobbfunkciosak. A RESET utan beall egy bizonyos funkciora, es utana a hasznalat szerint ezeket a beallitasokat meg kell valtoztatni. Ez vilagosan le van irva az eszkoz adatlapjaban. A Te esetedben a '628 PORTA also 4 bitje comparator funkciohoz van hozzarendelve. Az adatlap vilagosan ir errol. (40300b 27. oldal). A RESET utan comparatorkent van konfiguralva a RA0->RA3. Tehat nem fog mukodni mint digitalis bemenet. A digatalissa varazslashoz be kell irni a CMCON regiszterbe a "7" erteket es utana a PORTA hasznalhato digitalis be/ki-kent a TRISA beallitasatol fuggoen. Udv Vili
Örök hála működik. Köszi a segítséget.
Sziasztok!
Lenne egy olyan problémám, hogy az MPLAB 8,40 nem hajlandó nekem lefordítani a következő kódot: Idézet: „Reset_Vector org 0x00 GOTO START HI_INT_VECTOR org 0x008 ;Magas prioritású megszakítás címe GOTO IT_H_SERVICE ;Ugrás a magas megszakítást kiszolgáló rutinra LOW_INT_VECTOR org 0x018 ;Alacsoy prioritású megszakítás címe GOTO IT_L_SERVICE ;Ugrás az alacsony megszakítást kiszolgáló rutinra” A GOTO START sorra két hibát is kiír nekem, amit nem igazán értek: Idézet: „...ASM 57 : Overwriting previous address contents (0000)... ...ASM 57 : Overwriting previous address contents (0001)” Találtam neten leírást amiben csak a címek vannak megadva, de akkor is ugyanezt a hibát adta ki a GOTO START sorra. Remélem valaki segíteni tud, amit előre is köszönök.
Nyilvan van mas kod is a programodban a 0-s helyen. A teljes forrast kuldd el (csatold a Filemelleklet segitsegevel) es akkor abbol kiderul mivel utkozik.
Íme, ő lenne az.
Ez az első programom. Köszi a segítséget.
Szia!
A 17. sorban benn maradt egy utasítás, ami a 0 címre fordul.... Szia
Az előzőn felül két start címkéd is van. Igaz, egyik kisbetűs, a másik nagybetűs, de inkább írd át az egyiket.
|
Bejelentkezés
Hirdetés |