Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1088 / 1319
(#) trudnai válasza baloka hozzászólására (») Aug 17, 2012 /
 
Modositani lehet! Barmikor torolheted a teljes PIC tartalmat! Csak kiolvasni nem fogod tudni... Ha Modositas ellen is vedeni akarod, akkor egy OTP-s valtozatot kell valasztanod amit csak egyszer es kizarolag egyetlenegyszer lehet irni... (ill az sem teljesen igaz, mivel ugye az 1-eseket egeted at 0-sokka az egetes soran, tehat meg mindig lehet barbalkodni...)
(#) Krisszes hozzászólása Aug 20, 2012 /
 
Sziasztok!

Azt szeretném kérdezni, hogy egy .hex fájlt hogy tudok visszafordítani assemblyre vagy C-re?
(#) isvarga válasza Krisszes hozzászólására (») Aug 20, 2012 /
 
Szia !
Megnyitod az MPLAB-ot.
Importálod a hex-et.
Wiev menübe a programmemóriát bepipálod ,és kész.
ASM-lesz benne.
(#) vilmosd válasza Krisszes hozzászólására (») Aug 20, 2012 /
 
Vegulis a MPLAB tartalmaz disassemblert, ami ASM-re forditja a HEX allomanyt. C-re nem igen van.
(#) Krisszes válasza isvarga hozzászólására (») Aug 20, 2012 /
 
akkor nem kell új projekt hozzá?

a hex-et importáltam de a program memória üres marad (biztos van program a PIC-ben, ez a hexen is látszik)
(#) isvarga válasza Krisszes hozzászólására (») Aug 20, 2012 /
 
Védelemmel van ellátva a PIC (ha megpróbáltad kiolvasni), sajnos itt megállt a tudományom. Én úgy értettem ,hogy hex fájlod van. Érdemben a tartalmát amúgy is csak kinyomtatni lehet , szerkeszteni nem.
(#) Krisszes válasza isvarga hozzászólására (») Aug 20, 2012 /
 
Köszönöm a segítséget. Sikerült, Immáron ASM formátumban a program.
(#) e-chipmunk hozzászólása Aug 21, 2012 1 /
 
Sziasztok!
Nemrég kaptam kézhez egy pic18f2320 nevű eszközt. Programot szeretnék rátölteni. Átnéztem az alkatrészspecifikációt, de nem tudom, hogy kezdjek hozzá! Annyira jöttem rá, hogy az 1., 19., 27., és 28. lábat kell használjam. Valaki valami ötletet tudna adni?
(#) vilmosd válasza e-chipmunk hozzászólására (») Aug 21, 2012 / 1
 
A programozasi leiras. Persze ez alapjan nem eppen konnyu megcsinalni, viszont van keszen kaphato programozo eszkoz, pl PicKit2, amivel a PC-rol lehet programozni ezt, es meg nagyon sok mas eszkozt is.
(#) pontazok hozzászólása Aug 21, 2012 /
 
Sziasztok.

Valaki foglalkozik itt TFT kijelzős érintőpanelekkel?
Egy-két példaprogramot szívesen megnéznék ha esetleg akad valakinek. Lehetőleg C-nyelven.
(#) e-chipmunk válasza vilmosd hozzászólására (») Aug 21, 2012 /
 
Köszönöm!
(#) Krisszes hozzászólása Aug 23, 2012 /
 
Sziasztok,

Azt szeretném kérdezni, hogy a PIC24F sorozatnak az összes tápot be kell kötni?
(#) _vl_ válasza Krisszes hozzászólására (») Aug 23, 2012 /
 
Mindegyik CPU mindegyik tápját be kell kötni.
De ez általában a CPU data sheet-jének az elején le is van írva.
(#) Krisszes válasza _vl_ hozzászólására (») Aug 23, 2012 /
 
Köszönöm szépen a választ.
(#) Krisszes hozzászólása Aug 24, 2012 /
 
Sziasztok,
A PIC24f-nél a szoftveres késleltetéseket nekem kell megírni?
Arra gondolok, hogy mint a 18f-nél olyan, hogy timers.h nem találok. Ez azért van mert a fordító "demó"?
(#) icserny válasza Krisszes hozzászólására (») Aug 25, 2012 /
 
Idézet:
„A PIC24f-nél a szoftveres késleltetéseket nekem kell megírni?”
Csak akkor, ha a __delay32, __delay_us és __delay_ms nem elégíti ki az igényeidet. Leírását lásd: a C30 DOC könyvtárában levő hlpLib30.chm állományban (delay kulcsszó)!
(#) Amarton hozzászólása Aug 25, 2012 /
 
Van egy pic32 demo boardom.
Elvileg 80Mhz-en megy a pic.
C-ben kipróbáltam, hogy 1 ciklus mennyi idő alatt fut le:
  1. #include <plib.h>
  2.  
  3. // Configuration Bits
  4. #pragma config FNOSC    = PRIPLL        // Oscillator Selection
  5. #pragma config FPLLIDIV = DIV_2         // PLL Input Divider (PIC32 Starter Kit: use divide by 2 only)
  6. #pragma config FPLLMUL  = MUL_20        // PLL Multiplier
  7. #pragma config FPLLODIV = DIV_1         // PLL Output Divider
  8. #pragma config FPBDIV   = DIV_1         // Peripheral Clock divisor
  9. #pragma config FWDTEN   = OFF           // Watchdog Timer
  10. #pragma config WDTPS    = PS1           // Watchdog Timer Postscale
  11. #pragma config FCKSM    = CSDCMD        // Clock Switching & Fail Safe Clock Monitor
  12. #pragma config OSCIOFNC = OFF           // CLKO Enable
  13. #pragma config POSCMOD  = XT            // Primary Oscillator
  14. #pragma config IESO     = OFF           // Internal/External Switch-over
  15. #pragma config FSOSCEN  = OFF           // Secondary Oscillator Enable
  16. #pragma config CP       = OFF           // Code Protect
  17. #pragma config BWP      = OFF           // Boot Flash Write Protect
  18. #pragma config PWP      = OFF           // Program Flash Write Protect
  19. #pragma config ICESEL   = ICS_PGx2      // ICE/ICD Comm Channel Select
  20. #pragma config DEBUG    = OFF           // Debugger Disabled for Starter Kit
  21.  
  22. //  The following is used by the main application
  23. #define SYS_FREQ(80000000)
  24.  
  25. // IOPORT bit masks can be found in ports.h
  26. #define CONFIG          (CN_ON)
  27. #define PINS            (CN16_ENABLE)
  28. #define PULLUPS         (CN15_PULLUP_ENABLE | CN16_PULLUP_ENABLE)
  29. #define INTERRUPT       (CHANGE_INT_ON | CHANGE_INT_PRI_2)
  30.  
  31. int main(void)
  32. {
  33.  
  34.     unsigned int last_sw_state = 1;
  35.     float InterPol;
  36.  
  37.    SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
  38.  
  39.         PORTSetPinsDigitalOut(IOPORT_D, BIT_0 | BIT_1);
  40.  
  41.         PORTClearBits(IOPORT_D, BIT_0 | BIT_1);
  42.  
  43.         PORTSetPinsDigitalIn(IOPORT_D, BIT_6 | BIT_7);
  44.  
  45.         mCNOpen(CONFIG, PINS, PULLUPS);
  46.  
  47.    while(1)
  48.    {
  49. PORTSetBits(IOPORT_D, BIT_0);
  50. PORTClearBits(IOPORT_D, BIT_0);
  51.     }
  52.  
  53. }

450ns lett a periódus idő.

80Mhz-et ezt egy kicsit sokallom.
Mit lehet tenni, hogy gyorsabb legyen?
(#) Stefan válasza Amarton hozzászólására (») Aug 25, 2012 /
 
Ezt a 450ns-ot szkópon nézted? Az 36 utasításciklus, tényleg kcisit sok, meg kellene nézni mit csinál az a makró, ha maszkolással oldja meg a bit állítást, akkor sok utasítás kell neki. Próbáld meg ezt, elvileg így a led 40Mhz en villog, a while ciklushoz tartozó részek kivételével...
  1. while(1)
  2.    {
  3. LATDINV = 0x00000001;
  4. LATDINV = 0x00000001;
  5. LATDINV = 0x00000001;
  6. LATDINV = 0x00000001;
  7. LATDINV = 0x00000001;
  8. LATDINV = 0x00000001;
  9.     }
(#) Amarton válasza Stefan hozzászólására (») Aug 25, 2012 /
 
Így már sokkal jobb lett
A 25Mhz-es szkóp már nem tudja mérni a jelet.
Lehet letölteni a pic32 C fordítóhoz egy összefoglalót, hogy ezeket az utasításokat megtaláljam?
A függvényes megvan, hanem ez az egyszerűsített dolog érdekelne.
(#) Stefan válasza Amarton hozzászólására (») Aug 25, 2012 /
 
Én is mostanában kezdtem el foglalkozni a PIC32 szériával, érdemes kihagyni a szerintem a gyári függvényeket ahol lehet, adatlapból és application note-okból, meg az adott perifériához tartozó reference manual-okból mindent ki lehet hámozni. Ha megnézed a head file-t akkor abban látod, hogy minden regiszterhez tartozik 3 másik is. Ez esetben LATD, LATDCLR, LATDSET, LATDINV, a nevükből a működésük szerintem már egyértelmű .
A makró valószínű a hagyományos LATD = LATD & 0x01; re bővül ki, míg a LATDINV = 0x01; sokkal kevesebb asm utasításra fordul.
Gondolom Te is "Lite" módban használod a fordítót, valószínú a pro verzió ezeket az optimalizálásokat megcsinálja...

ui: Miután átírtam a kódomat az ilyen maszkolások helyett INV SET CLR alkalmazására, kb 15% al kevesebb lett a program memória
(#) Krisszes válasza icserny hozzászólására (») Aug 25, 2012 /
 
Köszönöm az információt. (Idáig a pic18-al foglalatoskodtam és, hát elég nagy különbségeket vélek felfedezni) de a 16 bit az 16 bit.
(#) trudnai válasza Stefan hozzászólására (») Aug 25, 2012 /
 
Idézet:
„ui: Miután átírtam a kódomat az ilyen maszkolások helyett INV SET CLR alkalmazására, kb 15% al kevesebb lett a program memória”


De nem csak az az elonye ezeknek, hogy kevesebb utasitasra fordul, hanem, hogy egyszerre tobb bitet manipulalhatsz.
(#) compaqamplifier hozzászólása Aug 25, 2012 /
 
16 bites pic vagy avr az van-e?
(#) trudnai válasza compaqamplifier hozzászólására (») Aug 25, 2012 /
 
Ugy tudom 8 es 32 bites van csak, de a 8 bitesnek is vannak 16 bites aritmetikai muveletei. Amugy ezt az AVR Miertekben kellene kerdezni!
(#) compaqamplifier válasza trudnai hozzászólására (») Aug 26, 2012 /
 
32 bites is jó jönne.
(#) trudnai válasza compaqamplifier hozzászólására (») Aug 26, 2012 /
 
Ja en meg most latom azt irtad "PIC *vagy* AVR" -- valamiert csak az AVR szot vettem eszre, elnezest!

PIC-bol termeszetesen van 16 bites, a dsPIC ill a PIC24 sorozatok a neked valok.

Ezzel a MAPS nevu eszkozzel tudod kivalasztani a megfelelo PIC tipust. Pl a 8 es 32 bites pipakat leveszed (mindegyik utan kicsit kell csak varni mire a valtozas megjelenik a kepernyodon). Aztan kivalasztod mire van szukseged, hany labra, vagy I/O-ra vag milyen funkciokra stb, es kiirja neked melyik chipek a felteteleknek megfeleloek. Ott van a Specifikacio es a technikai Dokumentacio-ra inkek is, akkor a "Budgetary Price" azaz a chip arazasa is, szoval jo kis eszkoz ez kivalasztani a szamodra megfelelo PIC-et... Atmelek nem tudom csinalnak-e hasonlot az AVR-ek kivalasztasahoz, de ott nincs ennyi fajta eszkoz, tehat ott lehet egyszerubb a valasztek.

UI Icserny mesternek van nagyon jo PIC24-es tanjegyzete, azt erdemes olvasgatni... Bővebben: Link
(#) icserny válasza Krisszes hozzászólására (») Aug 26, 2012 /
 
Idézet:
„Idáig a pic18-al foglalatoskodtam és, hát elég nagy különbségeket vélek felfedezni”
Szinte olyan, mintha egy másik gyártó készítette volna...
(#) compaqamplifier hozzászólása Aug 26, 2012 /
 
Ez már egy másik kérdés, találtam egy AVR-re irt ARM emulátort, ezt hogyan tudnám picre átforgatni? egyáltalán lehet-e? Elég csak a megerősítés.
(#) trudnai válasza compaqamplifier hozzászólására (») Aug 26, 2012 /
 
Mindent meg lehet csinalni, miert ne? De ehhez ismerned kell mindket (mind a harom) architekturat olyan siznten, hogy ez ne okozzon neked problemat. Javasolnam, hogy ne "raketa vezerlessel" kezd, hanem az alapjainal a tanulmanyaid. Ha kemenyen tanulsz, akkor 1-2 even belul mar meg fogsz tudni csinalni egy ilyen jellegu dolgot.
(#) nemetzk hozzászólása Aug 27, 2012 /
 
Sziasztok,
HD44780 kétsoros, 16 karakteres LCD és PIC16F887 összehangolása közben akadtam el. Egy menürendszert használó alkalmazást fejlesztek épp (öntözőrendszerhez). A mellékelt program kiválóan működik, de sajnos csak a LINE1 tekintetében. A Line 2-re címzett üzenet nem jelenik meg. A HITACHI kijelző leírása alapján helyesen jártam el - nem értem hol a hiba? ISIS modellben és a valóságban egyaránt jelentkezik a hiba. A kijelzőt 4 bites üzemmódban használom.

A leírás alapján két dolgot kell elkövetni a második sor aktiválásához:

(1)aktiválni - ezt a function set N bitjének bakapcsolásával megtettem az init résznél

(2)második sorra írás előtt a DDRAM címet a kurzorpozíciónak megfelelően beállítani,ezt a b'11000000' parancs elküldésével tettem meg.

Előre is köszönöm a segtséget
Következő: »»   1088 / 1319
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