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! ![]() ![]() 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 |