Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   659 / 1319
(#) trudnai válasza laller25 hozzászólására (») Feb 1, 2010 /
 
Nem szeretnek en lenni az illetekes mumus, de ha lusta vagy tagoltan es szepen irni, raadasul lusta vagy oda irni a jelenseget es a hiba uzenetet, akkor en miert ne legyek lusta valaszolni?
[OFF]Eleg egy felkialtojel, space mindig az irasjel moge kell keruljon, mondat nagybetuvel kezdodik, lehetoleg kerulni az SMS roviditeseket, "effele" ket F-el...

Gyakori helyesirasi hibak
(#) laller25 válasza trudnai hozzászólására (») Feb 1, 2010 /
 
Programming...
The following memory regions failed to program correctly:
Program Memory
Address: 00000000 Expected Value: 00000002 Received Value: 000000ff
Programming failed.
Ezt a hibaüzit kaptam.
A progamozó alapból működik 16os pic et írtam vele!
Nagybetüvel kezdtem a mondatot!
(#) Akiss válasza pixels hozzászólására (») Feb 1, 2010 /
 
Köszi ez is egy jó gondolás, végülis 3 szál adatvezetek nem a világ vége!
(#) trudnai válasza laller25 hozzászólására (») Feb 1, 2010 / 1
 
Sajnos nem talalkoztam meg a problemaval szemelyesen, de most gyorsan rakerestem, es ugy tunik letezik problema. MPLAB 8.43 alatt van a hiba, de allitolag ha vissza mesz 8.40-re, akkor mukodik.

Tudni kell, hogy a PicKit3-nal minden egyes PIC tipushoz egyesevel toltodik le a programozoba a megfelelo firmware. Tehat ha hirtelen masik chip-et hasznalsz, akkor uj firmware-t tolt le a PicKit3 szamara.

Ez jo egyreszt, mert konnyu a programozo tudasat boviteni ill. javitani, masreszrol rossz, mert akkor minden alkalommal mikor masik chip-et valasztasz ki ujra kell firkalnia a PicKit3-at.

Amiert mondom, hogy ne csodalkozz, hogy MPLAB csere-bere esetleg valoban segithet a probleman.
(#) icserny válasza trudnai hozzászólására (») Feb 1, 2010 /
 
Azt írják, hogy a hiba a PIC18F45K20.dev állományban van (egy elírás), s elég ezt kicserélni az MPLAB 8.40-ben levőre.

Bővebben: Link
(#) trudnai válasza (Felhasználó 15355) hozzászólására (») Feb 1, 2010 /
 
Szaz nano! Mi a'?! Keramia
(#) potyo válasza (Felhasználó 15355) hozzászólására (») Feb 1, 2010 /
 
Akkor mostmár te is érzed, hogy miért mondjuk mindig azt a kondenzátort.
(#) Attila86 hozzászólása Feb 2, 2010 /
 
Szeretném a PIC EEPROM-ját használni... Az EECON1 regiszter CFGS bitje, illetve az EECON2 regiszter mire való?
(#) watt válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
Az adatlapokban példák is vannak az EEPROM használatáról, azt nézted már? Abból kiderülhet mire való egy-egy bit. Aztán van ezekről a regiszterekről külön magyarázat is. Ha valamelyiket nem érted, azt kérdezd, mert így több oldalas válasz kerekedhet(bár van aki nem sajnálja az idejét, én nem látom értelmét leírni ami már le van.)
(#) icserny válasza Attila86 hozzászólására (») Feb 2, 2010 / 1
 
A CFGS vezérlőbit azt jelzi, amikor 1-be van állítva, hogy a hozzáférés a konfigurációs bitekhez történik.
Ha CFGS=0 akkor pedig EEPGD tartalmától függően a program flash vagy az adat EEPROM memóriát használjuk

EECON2 nem fizikai regiszter. Íráskor (EEPROM WRITE) ide kell küldeni az 55 és AA szekvenciát (letiltott interrupt mellett).
(#) laller25 válasza trudnai hozzászólására (») Feb 2, 2010 /
 
Köszönöm a segítséget!
Remélem bejön /az mplab csere után/.
Eddig egy problémám volt a 8.43-as használata során az, hogy a ccs compiler nem működött felraktam egy régebbit és azzal már ment a szekér! Azért köszi!
(#) Attila86 válasza icserny hozzászólására (») Feb 2, 2010 /
 
Köszönöm!

Watt!
Néztem az adatlapot, természetesen a regiszterek saját külön magyarázatát is sőt, a neten is keresgéltem de a CFGS bit és az EECON2 regiszter feladata így sem volt egyértelmű.
(#) Collector válasza trudnai hozzászólására (») Feb 2, 2010 /
 
(#) Attila86 hozzászólása Feb 2, 2010 /
 
A PIC programozásakor az EEPROM memóriát nem lehet írni, hogy legyen valami kezdőértéke annak a változónak amire szükségem van?
(#) icserny válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
Idézet:
„A PIC programozásakor az EEPROM memóriát nem lehet írni?”

DE igen, a DE direktívával.

PIC18 Application Example - de
  1. #include p18f452.inc   ;Include standard header file
  2.                          ;for the selected device.
  3.   org  0xF00000          ;The absolue address F00000h is
  4.                          ;mapped to the 0000 location of
  5.                          ;EE data memory for PIC18 devices.
  6.  
  7. ;You can create a data or character table starting from any
  8. ;address in EE data memory.
  9.  
  10. ch_tbl2  de  "PICmicro"  ;8 EE data memory locations
  11.                          ;(starting from 0) will be filled
  12.                          ;with 8 ASCII characters.
  13.  
  14. end

(#) Attila86 válasza icserny hozzászólására (») Feb 2, 2010 /
 
Hűűű ezt nem értem.
Hova írom azt, hogy az EEPROM melyik bájtjába akarok írni és hova azt, hogy mit?
(#) El_Pinyo válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
Lehetőség van az MPLAB- ban, valamint a PicKit 2 saját szoftverében is az EEPROM memória kézi beállítására. Pl. a saját szoftverében van egy EEPROM Data nevű szekció alul a főablakban, ha kipipálod az Enabled check boxot, akkor azokat az adatokat fogja beprogramozni az EEPROMba. MPLAB esetében a user's guide tartalmazza a választ, az EEPROM WINDOW (13.8) fejezetében.
(#) icserny válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
ORG után írod a kezdőcímet
DE után az adato(ka)t, amelyeket sorra lepakol, a megadott címtől kezdődően.
(#) Attila86 válasza icserny hozzászólására (») Feb 2, 2010 /
 
Ja értem, tehát az általad idézett kódban egymás után nyolc bájtot tölt fel az EEPROM-ban, egymás után a "P", aztán az "I", majd a "C" ASCII kódját és így tovább. Igaz?
(#) steev hozzászólása Feb 2, 2010 /
 
Van egy kis problémám.

PIC18F-el mérek feszültséget, de a sok zavarjel miatt nagyon ugrál a mért érték.
A pic programban van átlagoló funkció, 50-es tömböt átlagol, de még így is ugrál.

Hogy tudnám megoldani analóg módon az átlagolást, pufferkondi, vagy aluláteresztő szűrő vagy egyéb?
Köcce
(#) Attila86 válasza steev hozzászólására (») Feb 2, 2010 / 1
 
Integráló tag, külső referenciaforrás, a föld megfelelő huzalozása...
(#) icserny válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
Igen.
(#) steev válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
Külső referencia alatt mire gondolsz?
(#) Hp41C válasza steev hozzászólására (») Feb 2, 2010 /
 
Szia!

Az A/D csatorna kiválasztása után kivárod a megfelelő időt? A számításnál nem lép fel túl/alulcsordulás?

sZIA
(#) Attila86 válasza steev hozzászólására (») Feb 2, 2010 /
 
Van két A/D lába a PIC-nek amire lehet külső referenciaforrást kapcsolni.
(#) steev válasza Hp41C hozzászólására (») Feb 2, 2010 /
 
Az mintavételi idő szerintem jó, mert "labor" körülmények között állandó feszültség mellett +/-1 osztást változott a mérési eredmény.

Most hogy élesbe kipróbáltam a dolgot +/- 50 osztást is változik.
(#) steev válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
Az AD ref. nekem most a VSS és VDD.

Még nem világos, hogy miért pontosabb valami ha külső referenciát használok, de a leírásban majd megnézem.
Köszi
(#) Attila86 válasza steev hozzászólására (») Feb 2, 2010 /
 
Mert a tápot akármi rángathatja.
(#) Attila86 hozzászólása Feb 2, 2010 /
 
Az MPLAB-ból tudom már írni a PIC EEPROM-ját, de a PIC maga nem! Van ez a kis kódrészlet:
  1. movff   új_beállított_hőmérséklet, EEDATA
  2. movlw   d'1'
  3. movwf   EEADR
  4. call    EEPROM_írás           ;új érték mentése!

Az EEPROM_írás szubrutin pedig így néz ki:
  1. EEPROM_írás
  2.         bcf     EECON1, EEPGD ; Point to DATA memory
  3.         bcf     EECON1, CFGS ; Access EEPROM
  4.         bsf     EECON1, WREN ; Enable writes
  5.         bcf     INTCON, GIE ;globális megszakítás tiltás
  6.         movlw   55h ;
  7.         movwf   EECON2 ; Write 55h
  8.         movlw   0AAh ;
  9.         movwf   EECON2 ; Write 0AAh
  10.         bsf     EECON1, WR ; Set WR bit to begin write
  11.         btfsc   EECON1, RD      ;befejeződött már az írás? (ha igen, akkor ugrik!)
  12.         goto    $-2    
  13.         bcf     EECON1, WREN ; Disable writes on write complete (EEIF set)
  14.         bsf     INTCON, GIE             ;globális megszakítás engedélyezés
  15. RETURN

De nem írja be az új értéket az EEPROM-ba. :no: Miért nem? Szerintem jónak kellene lennie, ezt a kódot az adatlapból másoltam és csak alig írtam át benne valamit.
(#) potyo válasza Attila86 hozzászólására (») Feb 2, 2010 /
 
A WR bitet kell vizsgálni ahhoz, hogy lásd, befejeződött-e az írás, nem az RD-t. Na meg rémlik valami Errata is ezzel kapcsolatban, nézz bele a chip verzió Errata lapjába is, ha a WR-el sem működik.

Az ilyen "új_beállított_hőmérséklet" tipusú változóneveket mellőzd. Csak az angol ABC betűi legyenek, számok és aláhúzásjel.
Következő: »»   659 / 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