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   455 / 1211
(#) foxi63 válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Szia!
Az 1millió utasítás (nop) biztosan több utasítási időt emészt fel, mert a decfsz utasítás is 2 ciklus alatt fut le.
A megfelelő program neked a TMR0 számláló használata megszakításban.
Amikor túlcsordul a TMR0 megszakítást okoz, és ekkor növel egy számlálót. Kis trükkel elérhető a pontos 1ms -os megszakítás, ebből kiépíthető 0,1 s vagy bármilyen időalapú jelzés.
A főprogramban meg csak ezt a jelzést kell figyelni, szabad marad szinte a teljes proci idő!
Esetleg segítek benne, ha kell.
üdv.Foxi
A hozzászólás módosítva: Okt 20, 2013
(#) kissi válasza foxi63 hozzászólására (») Okt 20, 2013 /
 
Még most kezdi, hagyj időt neki ( megemészteni a sok új dolgot és kellő biztonságot szerezni! ), majd ha problémába ütközik, akkor kérdez vagy keres
A hozzászólás módosítva: Okt 20, 2013
(#) SBahadurD válasza foxi63 hozzászólására (») Okt 20, 2013 /
 
Igen, ezért írtam, hogy kicsit több, mint egymillió. De ennek ellenére mégis rövidebb lett egy másodpercnél a kalibrálás után.
Ennél a kontrollernél (PIC16F505) nincsen megszakítás. Van benne egy fapados timer egység, de az sem tud megszakítást generálni. Természetesen ennek ellenére ezt használnám precíz időzitésekre tényleges alkalmazásokban, de azt is csak állandó regisztervizsgálattal.
(#) foxi63 válasza SBahadurD hozzászólására (») Okt 20, 2013 /
 
Szia!
Már megnéztem és én is láttam, hogy nincs megszakítás sajnos.
Állítsd be az MPLAB-ban : Debugger->Select tool-> Mplab sim., és ezután:
MPLAB->debugger->stopwatch alkalmazást, ami egy stopperóra, break pontokat teszel az adott programrészekre és megmutatja a pontos ciklusidőt...
A debugger->settings-ben pedig az órajel idejét..
A hozzászólás módosítva: Okt 20, 2013
(#) ElemElek hozzászólása Okt 20, 2013 /
 
PIC programozót készülök venni. A PICKit 2 és a PICKit 3 között gondolkodom. Az ár nem lényeges, kb 1000 Ft különbség van köztük. PICKit 3-al a legújabb PICek is mennek (a 2vel úgytudom nem), de sok rosszat hallotam róla innen. Valaki aki tájékozódott a témában tudd valamit mondani erről? Köszi
(#) usane válasza usane hozzászólására (») Okt 21, 2013 /
 
Na most kicsit összezavarodtam.
Ez azt mondja:
Idézet:
„In comparison, some digital only peripheral modules are not currently included in the peripheral
pin select feature. This is because the peripheralís function requires special I/O circuitry on a
specific port and cannot be easily connected to multiple pins. These modules include I2C,
speciality communication (Ethernet and USB), change notification inputs, RTCC alarm output
and all modules with analog inputs, such as the A/D Converter”
.
Ez meg azt:
Idézet:
„The peripherals managed by PPS are all digital-on
ly peripherals. These include general serial
communications (UART and SPI), general-purpose
timer clock inputs, timer-related peripherals
(Input Capture and Output Compare) and interrupt-on-change inputs.
In comparison, some digital-only peripheral modu
les are never included in the PPS feature. This
is because the peripheral’s func
tion requires special I/O circuitr
y on a specific port and cannot be
easily connected to multiple pins. These modules include I2C. A similar requirement excludes all
modules with analog inputs, such as the Analog-to-Digital Converter (ADC)”
.
Mit hagytam ki?
(#) icserny válasza usane hozzászólására (») Okt 21, 2013 /
 
A második dokumentumban a Table 30-1:Selectable Input Sources (Maps Input to Function) táblázatból az derül ki, hogy a CNxx bemenetek nem helyezhetők át (nem tartozik hozzájuk bejegyzés a táblázatban).
(#) usane válasza icserny hozzászólására (») Okt 21, 2013 /
 
Ok. Végülis a táplábakon kívül 1-2 lábat kivéve mindnek van CN funkciója, szóval valószínűleg nem lesz gond a lábösszekavarás.
(#) ativagyok hozzászólása Okt 24, 2013 /
 
Sziasztok!

PIC32MX250F128B mikrovezérlővel dolgozok. Az lenne a kérdésem, ha nem szeretném használni az USB modult, akkor mi a teendő a VBUS lábbal? Nem tudom értelmezni az adatlap erre vonatkozó részét.
(#) usane válasza ativagyok hozzászólására (») Okt 24, 2013 /
 
Hello!

Ez talán segít.
(#) ativagyok válasza usane hozzászólására (») Okt 24, 2013 /
 
Szia!

Köszönöm, közben találtam egy másik mikrovezérlőt (PIC32MX150F128B), amiben nincs USB modul, és a lábai helyett I/O portok vannak. Ez kézenfekvőbb lesz.
Üdv!
(#) Kovabe hozzászólása Okt 24, 2013 /
 
Sziasztok
egy UART emulátort probálok életre kelteni de hiányzik egy file :
Idézet:
„C18 - Low Pin Count USB Development Kit.hex”
ebben kérnék segitséget, ha valkinek megvan és átküldené azt megköszönném.
Üdv Kovács Gábor
(#) icserny válasza Kovabe hozzászólására (») Okt 25, 2013 /
 
A www.microchip.com/MAL tartalmazza (a Precompiled demos mappában). Az általad kért USB Device - CDC - Serial Emulator előrefordított változata bizonyára az alapértelmezett projektbeállításokkal van lefordítva (nem tartalmaz hardver adatfolyam vezérlést, HID bootloaderhez van fordítva, s a 115200 bit/s-nál nagyobb sebességek beállítására vonatkozó parancsokat figyelmen kívül hagyja.

Mellesleg a gyári HID bootloadert nem szeretem, mert időnként kikapcsoláskor kitörli a programot (vagy legalábbis beletöröl) amiatt, hogy a BOR nincs bekapcsolva. a honlapomról érdemes letölteni a javított változatot (a code_examples.zip csomag tartalmazza).
(#) Kovabe válasza icserny hozzászólására (») Okt 25, 2013 /
 
Szia
Köszönöm, igazábol a re bootloader-det használom csak a tesztpanel program hiányában szenvedek illetve flowcode-al bontogatom szárnyaim de mire egy ilyen progit össszehoznék adigra kb90éves lennék. Különben teljesen jó a cikked, csak ezt a HEX file-t hiányoltam.
(#) icserny válasza Kovabe hozzászólására (») Okt 25, 2013 /
 
Nem tudom, hogy mit és hol olvastál, de ebben a cikkben is azt írtam, hogy a Microchip Applications Librarry-t (röviden MAL) kell letölteni.
(#) Kovabe válasza icserny hozzászólására (») Okt 25, 2013 /
 
Aha szoval MAL, hát ez kimaradt az életemböl.
A hozzászólás módosítva: Okt 25, 2013
(#) Kovabe válasza icserny hozzászólására (») Okt 25, 2013 /
 
Win 7 alatt nem ismeri fel mint soros port, van erre valami driver?
(#) Kovabe válasza Kovabe hozzászólására (») Okt 25, 2013 /
 
Közben sikerült csak sokat gondolkodott a win de talált drivert.
(#) icserny válasza Kovabe hozzászólására (») Okt 25, 2013 /
 
Tulajdonképpen nem driver kell neki, hanem .inf állomány. Van a MAL-ban is, meg a honlapomról letöltött code_examples.zip-ben is.
(#) nox72 hozzászólása Okt 26, 2013 /
 
Sziasztok!

Van egy PIC16C711 pic-em. Régen fekszik és most szeretnék vele valamit kezdeni. Láttam a neten, hogy lahat belőle A/D átalakítót készíteni. Valami feszültségmérőt vagy valami mást. Van valakinek ehhez a pic-hez valami hex állománya?

Köszi előre is!

Üdv: Lali
(#) Kovabe válasza icserny hozzászólására (») Okt 26, 2013 /
 
Megtaláltam de az nem volt jó a win7-nek, de a win oldalrol vagy a fene tudja hogy honnét de talált magának valamit és tökéletesen müködik. Nagyon jó kis cucc, örülök hogy megosztottad mid a programot mind a kapcsolást, hihetetlen hogy néhány alkatrészböl mit lehet csinálni.
(#) kzteam hozzászólása Okt 27, 2013 /
 
Hello,

PICC 9.83-ban pic16f74-et programozok. Kérdésem a context save ebben a compilerben rendesen megtörténik-e (leírások szerint igen) vagy nekem kéne a mentéseket, visszaállításokat megcsinálni. Egyszerű TMR0 interrupt eddig ment, most plusz szubrutinnal megspékelve, hibás a programfutásom
(#) kzteam válasza kzteam hozzászólására (») Okt 27, 2013 /
 
Nos, kicsit továbbgondoltam a dolgot és belenéztem a disassembly listing-be: az isr() elején elmenti automatikusan a W-t,Statust,FSR-t,PCLATCH-ot+ a 7f címet???, a végén nem tölti vissza ezeket, illetve csak az eredeti 7f cím tartalmát a W-be. Mit lehet ilyenkor tenni?

  1. 118:               //*** Service Timer0 interrupt
  2. 119:               void interrupt isr(void)
  3. 120:               {    unsigned char a;
  4.    004    00FE     MOVWF 0x7e
  5.    005    0E03     SWAPF 0x3, W
  6.    006    1283     BCF 0x3, 0x5
  7.    007    1303     BCF 0x3, 0x6
  8.    008    00A3     MOVWF 0x23
  9.    009    0804     MOVF 0x4, W
  10.    00A    00A4     MOVWF 0x24
  11.    00B    080A     MOVF 0xa, W
  12.    00C    00A5     MOVWF 0x25
  13.    00D    087F     MOVF 0x7f, W
  14.    00E    00A6     MOVWF 0x26
  15.    00F    118A     BCF 0xa, 0x3
  16.    010    2B48     GOTO 0x348
  17. 121:                    if(reload == 0)
  18.    348    08D2     MOVF 0x52, F
  19.    349    1D03     BTFSS 0x3, 0x2
  20.    34A    2B4C     GOTO 0x34c
  21.    34B    2B4D     GOTO 0x34d
  22.    34C    2B59     GOTO 0x359
  23. 122:                    {       // Ide kell írni az időzítővel figyelt dolgokat 1 msec alapon
  24. 123:                            // Note this timing will contain a margin of error.
  25. 124:                           
  26. 125:                            check();
  27.    34D    118A     BCF 0xa, 0x3
  28.    34E    2243     CALL 0x243
  29.    34F    118A     BCF 0xa, 0x3
  30. 126:                            reload = 4;//RELOADS + 1;
  31.    350    3004     MOVLW 0x4
  32.    351    1283     BCF 0x3, 0x5
  33.    352    1303     BCF 0x3, 0x6
  34.    353    00A2     MOVWF 0x22
  35.    354    0822     MOVF 0x22, W
  36.    355    00D2     MOVWF 0x52
  37. 127:                            RB5=1-RB5;
  38.    356    3020     MOVLW 0x20
  39.    357    0686     XORWF 0x6, F
  40.    358    2B59     GOTO 0x359
  41. 128:                    }
  42. 129:                    reload--;
  43.    359    3001     MOVLW 0x1
  44.    35A    02D2     SUBWF 0x52, F
  45. 130:                    T0IF = 0;
  46.    35B    110B     BCF 0xb, 0x2
  47. 131:              
  48. 132:               }
  49.    35C    0826     MOVF 0x26, W
  50. 133:
A hozzászólás módosítva: Okt 27, 2013
(#) Beles hozzászólása Okt 29, 2013 /
 
Sziasztok!

Elfogyott az adatmemóriám egy dspicben. Lehet valahogyan a program memóriát használni adat memóriának? Van egy 256 elemű 3 dimenziós tömböm fix értékekkel, azt pl jó volna áttenni.C30 fordítót használok.
(#) icserny válasza Beles hozzászólására (») Okt 29, 2013 /
 
Elvileg a const előtag pont ezt csinálja. Például:

  1. const unsigned long int foo[2] = {100,1234};
A hozzászólás módosítva: Okt 29, 2013
(#) Beles válasza icserny hozzászólására (») Okt 29, 2013 /
 
És tényleg! Köszönöm a gyors választ!
Ha már itt tartunk, ha nem konstans változókat akarok, az is megoldható valahogy program memóriába?
A hozzászólás módosítva: Okt 29, 2013
(#) zenetom válasza Beles hozzászólására (») Okt 29, 2013 /
 
Szia!
Bár még nem foglalkoztam dsPIC-ekkel, de gondolom itt sem tesz jót a gyakori írás a program memóriánál. Konstans értékre egyértelműen a programmemóriát ajánlatos használni, de változót az adatmemóriában. Bár pár-százezer írást kibír azthiszem a flash memória is, de azt nem arra tervezték. Bár gondolom ezzel nem mondok újat, de ha már kigondoltam, leírom.
Persze ha csak viszonylag ritkán lenne rá szükség, akkor okés, a 18F-nél van is direkt erre a műveletre utasítás, melyet a C fordítók ki is használnak, mégpedig a táblaíró utasítások (TBLRD).

icserny: a "rom" fordítónak jelző szóval is lehet a programmemóriába pakolni, nem?
A hozzászólás módosítva: Okt 29, 2013
(#) icserny válasza zenetom hozzászólására (») Okt 30, 2013 /
 
Idézet:
„a "rom" fordítónak jelző szóval is lehet a programmemóriába pakolni, nem?”
A C18 és a C30, C32 fordítók eltérően viselkedek (az utóbbi kettő GCC alapú, a C18 nem). A rom tudomásom szerint csak a C18-nak jó.
(#) kzteam válasza kzteam hozzászólására (») Okt 30, 2013 /
 
Meg mindig a picc fordító isr kezelése miatt erdeklodom. Érdemes volna asm betétet írnom? Előre is kösz! (mobilról írtam, azért nincs ékezet mindenütt).
A hozzászólás módosítva: Okt 30, 2013
(#) zenetom válasza icserny hozzászólására (») Okt 30, 2013 /
 
Értem, bár le van írva nekem valahol, de gondoltam megkérdem.
Köszi a választ!
Következő: »»   455 / 1211
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