Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   880 / 1210
(#) Ashen16 válasza Hp41C hozzászólására (») Dec 1, 2016 /
 
Nagyon szépen köszönöm, ezek alapján talán el tudok indulni. Igen a változók címét átraktam már az volt az első.
(#) kriszrap hozzászólása Dec 2, 2016 /
 
Sziasztok!
Van egy pic16f628 interupot szeretnek az oramban(ajanlottak)
Az egyik folyamat az idot vegezne a masik pl beallitasokat.
MikroC be szeretnem meg valositani.Hogy an nezneki a program kod ???
(#) Hp41C válasza kriszrap hozzászólására (») Dec 2, 2016 /
 
(#) Hp41C válasza Ashen16 hozzászólására (») Dec 2, 2016 /
 
Nem éri meg az átírás, inkább egy 16F628A -t kellene beruházni.
A hozzászólás módosítva: Dec 2, 2016
(#) kriszrap válasza Hp41C hozzászólására (») Dec 2, 2016 /
 
  1. void main()
  2. {
  3.   TRISC = 0; // To configure PORTC as output port
  4.   OPTION_REG.INTEDG = 1; // Set Rising Edge Trigger for INT
  5.   INTCON.GIE = 1; // Enable The Global Interrupt
  6.   INTCON.INTE = 1; // Enable INT
  7.   while(1)
  8.   {
  9.     PORTC = 0x00; //Set some value at PortD
  10.   }
  11. }
  12.  
  13. void interrupt() //  ISR
  14. {
  15.  INTCON.INTF=0; // Clear the interrupt 0 flag
  16.  PORTC=~PORTC; // Invert (Toggle) the value at PortD
  17.  Delay_ms(1000); // Delay for 1 sec
  18. }

Kerdesek
Mikor aktivalodik az interup fugveny kod alapjan??
INTCON.INTF=0; // Clear the interrupt 0 flag ezzel kikapcsom az interupot ?? Ez mindig kell?
A hozzászólás módosítva: Dec 2, 2016
(#) Hp41C válasza kriszrap hozzászólására (») Dec 2, 2016 /
 
Idézet:
„Mikor aktivalodik az interup fugveny kod alapjan??”

Akkor, amikor az engedélyezett lehetőségek közül legalább egy aktív. Ebben a kódban csak egy lehetőség van engedélyezve a 6. sorban - az RB0/INT láb változás megszakítás. Így akkor lesz aktív kérés, ha az RB0/INT lábaon felfutó él (OPTION_REG.INTEDG = 1 keletkezik.

Idézet:
„INTCON.INTF=0; // Clear the interrupt 0 flag ezzel kikapcsom az interupot ?”

Nem a megszakítás kérését tiltja le, hanem a megszakítás okát. Ez mindig kell, hiszen ameddig egy akítv kérés van, minduntalan a megszakítási rutin fut le újra éa újra. Kivétel persze van: RCIF, TXIF: az adatregiszter olvasása (RCREG) vagy írása (TXERG) törli.

Egy másik lehetőség, hogy az engedélyezést töröljük. Példánkban, ha az INTCON.INTE bitet 0 -ra állítod, nem okoz az RB0/INT láb felfutó éle megyszakítást.
(#) kriszrap válasza Hp41C hozzászólására (») Dec 2, 2016 /
 
Huuu... Ooo akkor azt hogy tudnam megoldani hogy interup 1secenkent megszakitsa a masik szalat hogy frissitse az orat ????
(#) kriszrap válasza kriszrap hozzászólására (») Dec 2, 2016 /
 
Vagy hogy tudnam feltetelnek adni az 1secet??
(#) Ashen16 válasza Hp41C hozzászólására (») Dec 2, 2016 /
 
Az a gondom,hogy kötelezően azzal a PIC-el kell megcsinálni, nem választhatok.
(#) kriszrap hozzászólása Dec 2, 2016 /
 
Még 1 kérdésem lenne.
A célom az lenne hogy ADC használnék PWM re minnél nagyobb ADC értéke annélnagyobb kitöltés lenne.
Szerintem a potis fele teljesen jó szerintem de a fotoellenállást igy kell rákötni???

16f628.jpg
    
(#) Hp41C válasza kriszrap hozzászólására (») Dec 2, 2016 /
 
Több megoldás is szóba jöhet:
1 - Timer 1, külső 32.768kHz quartz -cal, T1 oszcillátorral. A T1mer1 egy 16 bites számlálóval rendelkezik és minden 0xFFFF -ről 0x0000 -ra forduláskor megszakítás kérhető. Ez azonban 2 sec -enként történne meg (0x10000 = 65536 = 2 * 32768). Ha minden Timer1 megszakításban a TMR1H 7. bitjét 1 -re állítod, máris másodpercenként lesz kérés. Timer1 írásánál azonban van egy kis probléma (ld. Timer1 Errata).

2 - Nem másodpercenként, hanem sűrűbben történik megszakítás és a megszakítások számát figyelve már másodpercenként hajtunk csak végre utasításokat. Timer2 előosztója Fosc /4 frekvenciát kap a bemenetére és 1, 4, 16 osztást tud csinálni, a Timer2 számlálója 8 bites, 0.. (PR2-1) -if számol majd visszaáll 0 -ra. Ekkor megszakítást is tud kérni (utóosztó is van hozzá, de most tekintsünk el a használatától). Ha 1/4 előosztót és PR2 = 250 - 1 beállítást használsz, az órajel periódusidejénak négyezerszerese telik el két Timer2 megszakítás között (Fosc = 20MHz esetében 5kHz azaz 200us). Ötezer megszakítás keletkezik egy másodperc alatt. Egy számlálót kell léptetni minden Timer2 megszakítás lekezelése során, amikor a számláló elérte az 5000 -et, nullázni kell és jelezni kell, hogy le kell futtani a másodpercenként végrehajtandó utasítássorozatot.
(#) Hp41C válasza kriszrap hozzászólására (») Dec 2, 2016 /
 
A 16F627(A), 16F628(A), 16F648A -nak csak komparátor egysége van, melynek bemenetei a RA0, RA1, RA2, RA3 lehet. Bővebben az adatlap 10. fejezetében...
(#) Hp41C válasza Ashen16 hozzászólására (») Dec 2, 2016 / 1
 
Letöltöd a PIC DiaAsm programot. Visszafordítod a hex -et 16F84 beállítással. A keletkező asm állományt átszerkeszted (komparátor és A/D kikapcsolása, RAM terület címzése), a 16F887 include állományait hivatkozod meg, beállítod a 16F887 konfigurációs bitjeit. Lefordítod, szimulálod, javítgatod, beprogramozod, teszteled, javítgatod, .... és máris kész van..
(#) kriszrap válasza Hp41C hozzászólására (») Dec 2, 2016 /
 
Rendben
Idézet:
„A 16F627(A), 16F628(A), 16F648A -nak csak komparátor egysége van, melynek bemenetei a RA0, RA1, RA2, RA3 lehet. Bővebben az adatlap 10. fejezetében...”


Okés átkötöm de a fotoellenálást igy kössembe???
(#) Ashen16 válasza Hp41C hozzászólására (») Dec 2, 2016 /
 
Nem teljesen értem miért fordítsam vissza a hex fájlt? Megvan asm-ben a kód. Van erre alkalmas szimulációs program?
(#) Hp41C válasza Ashen16 hozzászólására (») Dec 2, 2016 /
 
MpLabX a modernebb és az MpLab8 a Microchip oldaláról ingyenesen letölthető. Debugger -nek állítsd be az MpLab Sim -et.
(#) treshold hozzászólása Dec 2, 2016 /
 
PIC18F27K40-et szeretnék szoftverezni. Ez egy új PIC
Van egy PICKIT2-m és most vettem egy PICKIT3-at.
Sajnos utóbbi sem ismeri, nincs a listában.
PICKIT3 Konfig:
Application Version: 3.10.00
Device File Version: 1.62.15
OS Firmware Version: 2.00.05

Van valami újabb verzió, vagy hogy tudnám megoldani?
A hozzászólás módosítva: Dec 2, 2016
(#) kriszrap válasza Hp41C hozzászólására (») Dec 2, 2016 /
 
Idézet:
„Több megoldás is szóba jöhet:
1 - Timer 1, külső 32.768kHz quartz -cal, T1 oszcillátorral. A T1mer1 egy 16 bites számlálóval rendelkezik és minden 0xFFFF -ről 0x0000 -ra forduláskor megszakítás kérhető. Ez azonban 2 sec -enként történne meg (0x10000 = 65536 = 2 * 32768). Ha minden Timer1 megszakításban a TMR1H 7. bitjét 1 -re állítod, máris másodpercenként lesz kérés. Timer1 írásánál azonban van egy kis probléma (ld. Timer1 Errata).

2 - Nem másodpercenként, hanem sűrűbben történik megszakítás és a megszakítások számát figyelve már másodpercenként hajtunk csak végre utasításokat. Timer2 előosztója Fosc /4 frekvenciát kap a bemenetére és 1, 4, 16 osztást tud csinálni, a Timer2 számlálója 8 bites, 0.. (PR2-1) -if számol majd visszaáll 0 -ra. Ekkor megszakítást is tud kérni (utóosztó is van hozzá, de most tekintsünk el a használatától). Ha 1/4 előosztót és PR2 = 250 - 1 beállítást használsz, az órajel periódusidejénak négyezerszerese telik el két Timer2 megszakítás között (Fosc = 20MHz esetében 5kHz azaz 200us). Ötezer megszakítás keletkezik egy másodperc alatt. Egy számlálót kell léptetni minden Timer2 megszakítás lekezelése során, amikor a számláló elérte az 5000 -et, nullázni kell és jelezni kell, hogy le kell futtani a másodpercenként végrehajtandó utasítássorozatot.”


4mhz kristaly nagyon keves lesz sztem nem ??? Melyik lenne igy celszeru???? Nem tudom hogy csinaljam melyiket valasztanad ???
A hozzászólás módosítva: Dec 2, 2016
(#) gyoran válasza kriszrap hozzászólására (») Dec 2, 2016 /
 
Elnézést, hogy beleszólok a beszégetésetekbe, de nekem az a véleményem, hogy
az 1. megoldás akkor jó, ha nem kell sok i/o láb, de a PIC sokat kell teljesítsen más feladatokban.
A 2. megoldás jobban terheli a processzort (alapesetben persze az 5000 megszakítás / mp 1 mio utasítás / mp -nél smafu) viszont minden láb szabad, nem kell külön alkatrész. Ha egyébként a PIC nem sokat csinál, én ezt választanám.
(#) fotomen32 hozzászólása Dec 3, 2016 /
 
Üdv
Segítséget szeretnék kérni abban hogy karácsonyra akarok csinálni ajándékba egy kis led-es karácsonyfát
amin villogó ledek vannak amit egy pic12f629 vezérelne.De sajnos programot nem tudok írni.Lenne e itt valaki aki megtudná írni a programot?Annyi a kapcsolás hogy van 6db led a pic 6 lábán a másik végük a GND.A program pedig egymás után bekapcsolja a ledeket majd kikapcsolja úgy hogy elhalványodnak gondolom valamien pvm-mel lehetne megoldani ennyit kellene tudnia.A kínaiak árulnak hasonlót LED METEOR LIGHT néven.Igy néz ki csak én kicsiben szeretném megcsinálni.
https://www.youtube.com/watch?v=4GDYSab-RFU
Előre is köszönöm a segítséget.
(#) eSDi válasza treshold hozzászólására (») Dec 3, 2016 /
 
Üdv!

A PK2-nek helyben bővítjük a tudását. Bővebben: Link

A PK3-hoz nem tudom mit használsz, mert van a programból olyan, mint ami a PK2-höz van. Ez már nincs támogatva (Microchip-nél is archívban van). Az utolsó a 3.10-es verzió belőle. Helyette az MPLAB X-et és MPLAB IPE-t használj (viszont ebből is volt 3.10-es verzió, ami nem ismerte a fent megnevezett uC-t). A legújabb viszont ismeri, töltsd le.
(#) treshold válasza eSDi hozzászólására (») Dec 3, 2016 /
 
Tudnál segíteni, hol érem el ezt a legújabb 3.10-es verziót (link)?
Böngészem de nem találom
Köszönöm
A hozzászólás módosítva: Dec 3, 2016
(#) Pali79 válasza fotomen32 hozzászólására (») Dec 3, 2016 /
 
Szia! Mivel ennyi PWM csatorna nincs PIC-ben főleg nem abban amit mutattál csak szoftveres PWM-mel lehet megoldani, az nem annyira egyszerű
(#) zenetom válasza fotomen32 hozzászólására (») Dec 3, 2016 /
 
A 12F629/675-nek csak 5 lába használható kimenetként. Ugyanis a GP3/MCLR láb csak bemenet lehet.
(#) fotomen32 válasza zenetom hozzászólására (») Dec 3, 2016 /
 
Köszönöm az infót.
Akkor legyen 5 led del.
A 629 hez azért ragaszkodom mert ez van ithol még 10db.
Ha nem lehet megoldani a pvm-et akkor megoldanám fénypatak ként ehhez a progi annyi lenne hogy csak 4 led van és azok egymás után gyúlnak ki és alszanak el lényegében egy 4 led es futófény.
(#) fotomen32 válasza fotomen32 hozzászólására (») Dec 3, 2016 /
 
Találtam még ithol 16f628a ezzel esetleg 8-10 led-es változatban megoldható lenne a meteor light változat?
(#) mrobi válasza Pali79 hozzászólására (») Dec 3, 2016 /
 
Annyira nem is bonyolult: 8 csatornás szoftveres pwm.
(#) makait1 hozzászólása Dec 3, 2016 /
 
Sziasztok
A microC PRO for PIC v.6.4.0 program nem fogadja el és hibaüzenetet ír ki a az ANSEL ill. ANSELH regiszterek nullázásakor. Tudna valaki segíteni mi lehet a probléma?
(#) Bakman válasza makait1 hozzászólására (») Dec 3, 2016 /
 
Melyik PIC? Mi a pontos hibaüzenet?
(#) Hp41C válasza treshold hozzászólására (») Dec 3, 2016 /
 
Ne keresd, nem érdemes használni.
Csak az MpLabX vagy belőle az IPE fogja kezelni.
Következő: »»   880 / 1210
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem