Fórum témák
» Több friss téma |
Köszönöm, igen minden áron meg akartam mondani. Így megy:
Sziasztok
Engem az érdekelne, hogy a PIC-ekben van ez az alacsony fogyasztású SLEEP mód. Ebből felébreszteni MCLR-el lehet, vagy ha túlszalad a WDT. Ez a túlszaladás mennyi idő lehet? Illetve azt nem lehet, hogy ki kapcsolom a WDT-t és akkor csak MCLR-re éled fel? Előre is köszönöm a válaszokat!
Az alacsony fogyasztású módból külső megszkítás zökkentheti ki a csipet. pl. egy gombnyomás, adat érkezése, vagy hasonló. Az adatlapban le van írva, hogy melyikben mi ébresztheti. Az mclr használata erre a célra botorság lenne, mert akkor minden kezdődik elölről. Akár ki is kapcsolhatnád.
Ez logikusnak tűnik, akkor utána nézek, melyik lábra kell kötni valamit, a wake-up -hoz.
Esetleg be tudnátok linkelni valamit, ami pontosan leírja, hogyan miket kell beírni a programba a SLEEP helyes használatához?
Van külön jelzőbit, hogy a reset bekapcsolási reset volt-e vagy sem...
Köszönöm szépen mindenkinek a segítséget.
Minden tippet alaposan át fogok nézni. A tanulni valóra nem ültem rá csak óra cserék miatt az októberi órák elmaradtak és ezt most novemberben az elmaradtal eggyütt ránk verték. A másik hasonló műsor az lett, hogy Architektúrát ami korábban 3 félév volt most beszorították 1 félévre, de a követelmény nem csökkent. A tanárnő már említette a társaságnak hogy komoly elszámolási gondok lesznek a vizsgán. Mégegyszer köszönök mindent.
Sziasztok ismerkedek az interruptok világával. A projectem lényege az lenne hogy egy led folyamatosan ég míg egy másik véletlenszerűen villog. A feladatom az az lenne hogy miközben villog a led egy gomb segítségével a másik folyamatosan világító ledet egy gomb segítségével ki be kapcsolgassam. Amit most csinál a program hogy egyszerre mind a két ledet ki be kapcsolja de nem tudom miért és mind a kettő csak világít egyfolytában.
Köszönöm itt megtaláltam amit kerestem!
Szegény kontroller ... Csak dolgozik feleslegesen:
Ez már beállítja a GIE és PEIE biteket - de az okok közül az RBIF biztosan nincs még törölve... Eztán
Ez még egyszer beállítja a GIE -t.
Ez még a nagy gonddal beállított a PEIE -t törli. Ettől aztán nem jon a timer megszakítás. Ez jól optimalizáló fordítóval egy andlw, de lehet osztás is
Nem egyszerűbb a (gomb & 1), ami mindig egy andlw... Amit ajánlanék: A projectben állítsd be a MpLab Simulátort és próbáld a programodat abban futtatva megnézni mit is csinál...
Köszönöm válaszodat átírtam amiket írtál már csak annyi a gondom vele hogy a timer-es rész csak akkor fut az első gombnyomás után ha nyomvatartom a gombot de mihelyt felengedem nem működik a random villogás
Kedves fórumtársak. Egyszerű kérdésem lenne:
Timer1 tud külön működni a CCP1-től? Egyszerre lehet használni a kettőt külön? Timer1-en szeretnék egy 32768-as kristályt számoltatni, CCP1-en pedig szeretném egy DCF77 óra megszakítását fogadni. A Timer0-án már van egy 8MHz-s kvarc. CCP2-t nem tudom HW megszakításként beállítani, mert ott a Timer1 órajelének a kivezetése van. (PIC16F887) Előre is köszi
A Timer1 tud működni a CCP modulok nélkül, de a CCP modulok csak PWM üzemmódban tudnak működni a Timer1 nélkül.
Igaz másik topikban van, de kérlek aki ráér és ért a pichez az nézzen erre rá.
Pic programozás és nem igazán találok rá jó megoldást Előre is köszönöm
Ugye *
* Azt hiszem, ez nem épp a te dolgod lenne .
Sziasztok!
Egy 3,3 V-os tápfeszt igényelő PIC-et szeretnék működtetni két db AA-s elemről. Kérdésem az lenne, hogy milyen tápstabilizátort vagy boostert tennétek elé. Amiket nézegettem az mind SMD tokozásban van, így macerás lenne az itthoni forrasztása, valamilyen PDIP-es vagy TO-s tokozás kellene nekem. Meg ugye egy elem az 1,5V gondolom ez a valóságban 1,2 vagy 1,3, tehát 2,6 V állna rendelkezésre. Egy RGB ledet szeretnék meghajtani vele, meg egy zümmert. Annyit csinálna, hogy 30 sec-ig világítana pirosan, majd 10 sec zöld. Szóval nem lesz nagy fogyasztása. Segítségeteket előre is köszi! Üdv LAC
Ha csak piros és zöld szín kell, akkor én bizony nem tennék semmi stabilizátort a kontroller elé, hanem hajtanám közvetlenül a két elemről. Fogsz egy valami LF típust, ami működik már 2V-ról is, neked nagy sebesség sem kell, így a tápfeszültség nem limitálja az órajelet. 2,5V táphoz már bőven lehet méretezni előtétellenállást piros és zöld ledhez is. Más lenne a helyzet, ha kék vagy fehér szín is kellene, mert azoknak kellene legalább 4V táp, hogy egy kis tartalék is maradjon.
Jó. Akkor nem bonyolítom túl a dolgot. Megy rá direktbe, aztán kész. Köszi a segítséget.
Azt meg szabad kerdezni, hogy ehhez minek rgb led?
Vannak sima ketszinu, baromi olcso piros/zold ledek...
Elég nyomós indok lehet pl. az, ha már megvan...
Sziasztok, az lenne a problémám, hogy van egy PIC16F628A típusu mikrovezérlőm ami nem működik, azt hiszem, hogy véletlenül nagyobb feszültség került rá (12V). A program nem fut rajta, mert a lábain nem jön ki semmi jel, ha beteszem a PICKIT2-be akkor felismeri, a programot ki tudja olvasni belőle, ha ugyanazt a programot írom bele akkor beleírja, ha törlöm a memoriáját akkor azt írja, hogy sikeresen törölve, de ha utána kiolvasom akkor meg mindig benne van, ha meg más programot akarok bele programozni akkor hibát ad ki,
ezt: Programming failed at Program Memory address 0x000000. Dobhatom el a PIC-et, vagy még van rá valami megoldás, hogy életre keltsem? Köszönöm előre is!
Probald meg LVP modban programozni.
Tul sok remeny nincs, ha az sem megy, akkor kuka. Legkozelebb jobban vigyazol.
Mekkora a programozás alatt a Vdd tápfeszültség? A 16F628A teljes törléséhez minimum 4.7V kell.
Köszönöm a válaszokat, megpróbálom LVP-ben is, majd megmérem a Vdd-t is, mert nem tudom mekkora.
Most kezdtem el PIC-elni és egy működő programon keresztül próbálok értelmezni dolgokat, mit miért csinált a programozó és most elakadtam egy részletnél kérlek benneteket segítsetek!
A kérdésem az, hogy az alábbi utasítás mit takar? movlw LOW SINE_TABLE_RAM A SINE_TABLE_RAM egy előre definiált adatregiszter a memória 31h címén. A LOW viszont sehol nincs definiálva, de a LOW SINE_TABLE_RAM sem, így nem értem, hogy ez a konstans hogy áll elő. Ha nagy butaságot kérdeztem, nézzétek el nekem, de szeretném megérteni. COPY_TABLE_TO_RAM BANKSEL SINE_TABLE_RAM BANKISEL SINE_TABLE_RAM movlw LOW SINE_TABLE_RAM movwf FSR movlw 0X13 movwf TEMP_LOC clrf TEMP_LOC_1 COPY_AGAIN movlw HIGHSINE_TABLE movwf PCLATH movf TEMP_LOC_1,W call SINE_TABLE movwf INDF INCF TEMP_LOC_1,F INCF FSR,F DECFSZ TEMP_LOC,F goto COPY_AGAIN movlw LOWSINE_TABLE_RAM ;FSR POINTS TO THE STARTING OF THE TABLE movwf FSR RETURN
A low() egy beépített függvény az argumentumának alsó 8 bitjével leírható számot adja vissza. ld. még high() a bit 15..8 , és az upper() pedig a 23..16 bitekkel leírható számot adja vissza. MpLab Asm Help...
MPASM dokumentációjában nézd meg a "Low, High, Upper operands" cím alatt! Egy memóriacím 8-bites értékekre történő szeletelésére szolgálnak. A műveleteket a fordító fordítási időben végzi el.
Köszönöm mindkettőtöknek a gyors választ. Tudok továbblépni.
Sziasztok!
Az MPLAB-ban ezt a hibaüzenetet kapom: Error [1300] stack frame too large Itt vannak a hibakódok. Mit jelent? Elfogyott a RAM? |
Bejelentkezés
Hirdetés |