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   256 / 1216
(#) mps válasza Hp41C hozzászólására (») Máj 16, 2012 /
 
Igen ezt észrevettem, amúgy egészen pontosan így eszi meg a Hitec fordító (ezt mondjuk nem írtam az előbb):
  1. __CONFIG (FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF &
  2. CP_OFF & CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
  3. __CONFIG (WRT_OFF & PLLEN_OFF & STVREN_OFF & BORV_25 & LVP_OFF);

De már tudtam merre induljak.
(#) kissi válasza giskard hozzászólására (») Máj 16, 2012 / 1
 
Szia!
Szerintem vagy úgy csinálod, ahogy leírtad vagy részekre osztod a tartományt és azt mondod, hogy pl. 10-20 fokig az érték az 10 fok + (mért érték-10) *xa ; 20-30 fokig 20 fok + ( mért érték - 20 )* xb ; stb. --> törtvonalas közelítéssel ! Az együtthatókat Neked kell meghatároznod a mérési értékek és az elméleti karakterisztika alapján !
Így nincs szükséged annyi cellára viszont kevésbé pontos és számolás (idő) igényesebb !

Steve
(#) vilmosd válasza giskard hozzászólására (») Máj 16, 2012 / 1
 
A mellekletben levo fveny PT100-ra keszult. Probald meg atalakitani a Te erzekelodhoz. Viszont egyszerubb lenne az eleted, ha egy analog kimenetu erzekelot hasznalnal. Pl MCP9700A, TC1047A, LM35. 10 mV/C a meredekseguk, 2,56 V AD Vref-et hasznalva 1/4 C felbontast tudsz elerni. Az elso ketto 500 mV feszt ad 0 foknal, tehat hasznalhatod negativ hofoknal is. Ja az elso kettot a CHPCD arulja valami borsos 70-100 Ft tajekan.

pt100_ccs.txt
    
(#) Lozsa hozzászólása Máj 16, 2012 /
 
Sziasztok.

A régen tökéletesen működő C-ben írt lámpa vezérlő programomat akarom beletölteni az új áramkörbe de nem bírom lefordítani.

Régen a másik gépemen minden ment flottul, de azóta az tönkrement és így újra kellett telepítenem az MPLABot is.
Ezzel mindenféle gondok vannak. Először nem ismerte fel némely változót. Azok nevét aztán átírjam a header fájnak megfelelően. Ezzel már elindul a fordítás de aztán ezt a hibát dobja.

Olyan mintha az MPLAB konfigurációja nem ilyen lett volna azelőtt. Vagy talán azelőtt lehet nem a HI-TECH C-t használtam volna? Nem tudom...
  1. Build C:\Program Files\Microchip\2012_2\alma for device 12F683
  2. Using driver C:\Program Files\HI-TECH Software\PICC\9.83\bin\picc.exe
  3.  
  4. Make: The target "C:\Program Files\Microchip\2012_2\Foprogram.p1" is out of date.
  5. Executing: "C:\Program Files\HI-TECH Software\PICC\9.83\bin\picc.exe" --pass1 "C:\Program Files\Microchip\progi\C progi\Foprogram.c" -q --chip=12F683 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
  6. Executing: "C:\Program Files\HI-TECH Software\PICC\9.83\bin\picc.exe" -oalma.cof -malma.map --summary=default --output=default Foprogram.p1 --chip=12F683 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
  7. HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode)  V9.83
  8. Copyright (C) 2011 Microchip Technology Inc.
  9. (1273) Omniscient Code Generation not available in Lite mode (warning)
  10. Error   [800] alma.as; 45. undefined symbol "IESODIS"
  11. Error   [800] alma.as; 45. undefined symbol "FCMDIS"
  12. Error   [800] alma.as; 45. undefined symbol "MCLREN"
  13. Error   [800] alma.as; 45. undefined symbol "INTIO"
  14. Error   [800] alma.as; 45. undefined symbol "WDTDIS"
  15. Error   [800] alma.as; 45. undefined symbol "PWRTEN"
  16. Error   [800] alma.as; 45. undefined symbol "BORDIS"
  17. Error   [800] alma.as; 45. undefined symbol "UNPROTECT"
  18.  
  19. ********** Build failed! **********

Foprogram.c
    
(#) mps válasza Lozsa hozzászólására (») Máj 16, 2012 /
 
Szia! Megváltoztatták a config bitek nevét, azt is írd át.
(#) speed008 hozzászólása Máj 16, 2012 /
 
Üdv!

Sikerült feltennem a programot a pic-re.
Nagyon köszönöm a segítséget mindenkinek, aki segített nekem!

Bár még dobozolásra vára a kicsike, de egy próbára összedobtam.
(#) giskard hozzászólása Máj 16, 2012 /
 
Köszönöm a hasznos válaszokat. Végül úgy döntöttem a pontosság oltárán feláldozom a procit és kicserélem egy min 2k-ra és marad a táblázat.
(#) Pepebá válasza icserny hozzászólására (») Máj 16, 2012 /
 
Igen, 4bites címzést használok, így a 3. sorra jó az 'lcd_write(0x94,0,1,1); ' címzés.
A túlcsurdulással akkor nincs mit tenni, (tudomásul kell venni) úgy kell megírni a programot hogy ne fordulhasson elő ilyen eset.
(#) Georgee hozzászólása Máj 16, 2012 /
 
Üdv Mindenkinek! Van egy 18f13k50-es PIC-em a PICKit program 3.3Voltot ír a programozásra, de klónom van és nem tudom állítani a feszültséget. Kérdésem programozhatom 5V-al az IC-t vagy meglövöm vele? Ha nem programozhatom, akkor hogyan oldhatnám meg a problémát? A válaszokat előre is köszönöm szépen!
(#) fsoregi hozzászólása Máj 16, 2012 /
 
Sziasztok!

Vettem egy PIC16F877-04/P procit.
Következő lenne a kérdésem: hány MHz-es kvarc kell hozzá, hogy működjön?

Az adatlapján az "Operating freq.." - 20Mhz
A neten szétnéztem és a -04 a végén elvileg azt jelenti, hogy 4Mhz-es a proci.

A probléma ott jött elő, hogy írtam rá egy egyszerű LED villogtató-t (Hello World! ), de csak folyamatosan világít a led.

Én 4Mhz-es kvarcal próbáltam.

Üdv
Feri
(#) kaqkk válasza fsoregi hozzászólására (») Máj 16, 2012 /
 
Én 2-től 20 megáig próbáltam , mindenféleképp ment
valószínűleg a programban lehet a hiba
(#) potyo válasza fsoregi hozzászólására (») Máj 16, 2012 /
 
A -04 azt jelenti, hogy maximum 4MHz-en lehet hajtani, de ettől kisebb órajellel is lehet, szóval a 4MHz-es kvarc jó. Vagy valami más áramköri hiba lehet, vagy pedig a kód hibás. Mutass teljes kapcsolási rajzot és kódot. Az is lehet, hogy túl gyorsan villog a led és csak úgy látod, mintha folyamatosan világítana. Mivel világítani kezd, így az áramkör talán jó, a kódhiba a valószínűbb. De azért mutass meg mindent.
(#) Hp41C válasza Georgee hozzászólására (») Máj 17, 2012 /
 
Szia!

A programozási leírásában, a figure 2-2 és 2-3 mutatja, hogyan lehet programozni. A legnagyobb gond, hogy az PGD azaz ICSPDAT és PGC azaz ICSPCLK kivezetések egyben az USB D+ és D- kivezetései is, melyek csak 3.3V -osak.

Ha a klónoddal nem lehet állítani a Vdd-t, akkor az a Szilva féle klón. Ő készített hozzá 3.3V-os adapterv is. Benne dip tokozású a 18F2550, így könnyen áttehető a furatszerelt klónba, amivel lehet állítani a Vdd-t.
(#) icserny válasza Georgee hozzászólására (») Máj 17, 2012 /
 
Idézet:
„Van egy 18f13k50-es PIC-em a PICKit program 3.3Voltot ír a programozásra, de klónom van és nem tudom állítani a feszültséget.”
Ez így nem lesz jó, mert a PGD és PGC lábakra (ezek egyben az USB D+ és D- lábak is) nem szabad 3,6 V-nál nagyobb jelszintet kapcsolni.

Ha Szilva-féle PICkit2 klónod van, akkor építeni kell hozzá egy 3,3 V-os adaptert. Ebben a fórumban találsz hozzá kapcsolási rajzot.
(#) AZoli hozzászólása Máj 17, 2012 /
 
Sziasztok!

30F6012A helyett kellene 30F6012 -t használnom, de nem találom a különbséget. Valahol azt olvastam hogy a "A" nélküli széria nagyságrendekkel kevesebbszer programozható újra, de az adatlapja szerint nem. Van valami ésszerű út az összehasonlításra azon kívül hogy végignézem mindkét adatlap minden oldalát?
(#) Hp41C válasza AZoli hozzászólására (») Máj 17, 2012 /
 
Érdemes még összehasonlítani a két tekintélyes méretű errata -t is...
(#) szitko hozzászólása Máj 18, 2012 /
 
Sziasztok.
Amitől féltem, és nem tudtam felkészülni rá, bekövetkezett. (PIC-kwik C30)
Egy egyszerű programot szerettem volna szimulálni MPLAB 8.83-al, de már a C30-ban. (síma értékadás) A fordító, elsőre lefordította, és nem kellett szenvedi vele, mint az ASM30-nál. De... A problémám a szimuláció. Vagyis nem tudok szimulálni egy egyszerű értékadást, és az MPLAB sem ír ki semmit. Se hibát, se azt, hogy kutyafüle. Ezért kipróbáltam a kis programom, az MPLAB X-ben is. Ott legalább kaptam egy üzenetet:
Idézet:
„User program running
No source code lines were found at current PC 0x214
User program stopped”

A kérdésem az lenne, hogy ha az MPLAB v8.83, nem ír ki hibát, de nem is szimulálja a programot, akkor mégis milyen hibát keressen az a szerencsétlen kezdő? (vagyis Én)
Ja a PIC-kwik tananyagban szereplő PIC24 ről van szó, de szerintem jelen esetben ez lényegtelen.
(#) kissi válasza szitko hozzászólására (») Máj 18, 2012 /
 
Szia!

Én ezt ( C30 ) nem használom, de úgy látom, hogy nincs forráskódja... A projekthez adtál hozzá forrásfájlt ?!

Szerintem csak az inicializáló részen jut túl és nem találja a main függvényt tartalmazó forráskódot...

Steve
(#) szitko válasza kissi hozzászólására (») Máj 18, 2012 /
 
Persze, hogy adtam hozzá forrásfájlt.
A rövid progi:
  1. #include <p24hxxxx.h>
  2. unsigned int  a,b;
  3. int main() {
  4.     a=0x2bc;
  5.     b=0x12c;
  6.     a = a+b;
  7.     b = b-a;  
  8.     return 0;
  9. }

Erről a nagyon bonyolult progiról van szó.
(#) icserny válasza szitko hozzászólására (») Máj 18, 2012 /
 
A múltkorihoz hasonlóan ellenőrizni kell az elérési útvonalakat. A Project/Build Options/Project menüben a Directories lapon az Include Search Path nálam
  1. C:\Program Files\Microchip\C30\support\PIC24H\h.


Ebből a C:\Program Files\Microchip\C30 telepítési útvonal nálad más lehet...

Az Include Search Path nálam az alábbiakat tartalmazza:
  1. C:\Program Files\Microchip\C30\lib\PIC24H
  2. C:\Program Files\Microchip\C30\lib


Fentieken kívül az is fontos lehet, hogy a "Build normal target" legyen kiválasztva, s az optimalizálás vagy legyen letiltva, vagy legfeljebb -O1 szintű legyen.
(#) szitko válasza icserny hozzászólására (») Máj 18, 2012 /
 
Idézet:
„Include Search Path nálam az alábbiakat tartalmazza:”

Nálam, dettó, csak fordítva:
C:\Program Files (x86)\Microchip\MPLAB C30\lib
C:\Program Files (x86)\Microchip\MPLAB C30\lib\PIC24H
A "Build normal target" van kiválasztva, és az optimalizálásnál, csak ennyi van beírva: "-g -Wall".
(#) icserny válasza szitko hozzászólására (») Máj 18, 2012 /
 
Idézet:
„csak ennyi van beírva: "-g -Wall"”
Ez jó, ez a letiltott optimalizálás esete.

A chap05-ből nyisd meg az if32-c.mcp projektet (duplakattintás)! Ehhez mit szól, ha fordítani próbálod?
Nálam ez lett belőle (Disassembly lista).

  1. ---  C:\PIC-ador\chap05\if32-c.c  ----------------------------------------------------------------
  2. 1:                 #include <p24hxxxx.h>
  3. 2:                 unsigned long i,j,k;
  4. 3:                
  5. 4:                
  6. 5:                 int main() {
  7. 6:                
  8. 7:                   if(i > j) {
  9.  00294  804002     mov.w i,w2
  10.  00296  804013     mov.w 0x0802,w3
  11.  00298  804020     mov.w j,w0
  12.  0029A  804031     mov.w 0x0806,w1
  13.  0029C  510F80     sub.w w2,w0,[w15]
  14.  0029E  598F81     subb.w w3,w1,[w15]
  15.  002A0  360005     bra leu, 0x0002ac
  16. 8:                     k = i - j;
  17.  002A2  510000     sub.w w2,w0,w0
  18.  002A4  598081     subb.w w3,w1,w1
  19.  002A6  884040     mov.w w0,k
  20.  002A8  884051     mov.w w1,0x080a
  21.  002AA  370004     bra 0x0002b4
  22. 9:                   } else {
  23. 10:                    k = j - i;
  24.  002AC  500002     sub.w w0,w2,w0
  25.  002AE  588083     subb.w w1,w3,w1
  26.  002B0  884040     mov.w w0,k
  27.  002B2  884051     mov.w w1,0x080a
  28. 11:                  }
  29. 12:                return 0;
  30. 13:                }
  31.  002B4  EB0000     clr.w w0
  32.  002B6  060000     return
(#) szitko válasza icserny hozzászólására (») Máj 18, 2012 /
 
Köszi.
A fordítást megcsinálja, hiba nélkül, csak nem tudtam lépésenként szimulálni. De most egy véletlen kapcsán elindult.
Tehát, ha fordítás után megnyomom az F8-at nem történik semmi. Nem rakta ki a zöld nyilat, és látszólag nem csinált semmit. Most viszont, véletlenül megnyomtam az "Animate" gombot, és megjelent a nyilacska, és végigfutott a program. Az "if32-c.mcp" úgyszintén.
De hogy miért így kell csinálni, azt nem tudom.
Mindenesetre köszönöm a segítséget.
(#) icserny válasza szitko hozzászólására (») Máj 18, 2012 /
 
Idézet:
„Tehát, ha fordítás után megnyomom az F8-at nem történik semmi.”
Már hogyne történne!

Az első gombnyomásra a 0. címből (reset vektor) elugrik az ott megadott címre (0x200). Ott előbb lefut az inicializálás, s csak sok lépés után hívja meg a main függvényt.

Javaslom, hogy tegyél egy töréspontot a main függvény első végrehajtandó utasításához, s ne F8-cal indítsd a szimulációt, hanem F9-cel (vagy a "lejátszás" gombra kattints!
(#) bandita18 hozzászólása Máj 18, 2012 /
 
Sziasztok!

Készítettem egy 2 pont szabályzás elvén működő klíma szabályzót.

A problémám az, hogy a felső pont potméterére bekapcsol ugyan a szabályzó, de amint a felső pont határértéke alá esik ki is kapcsol, az alsó pont potméterét figyelmen kívül hagyva. Holott az alsó pont potija alapján kéne kikapcsoljon.

Mellékelem az assembly programot hátha tud valaki segíteni, mert nekem egyszerűen nem sikerül megtalálni a hibát.

Segítségetek előre is köszönöm!

klima.asm
    
(#) szitko válasza icserny hozzászólására (») Máj 18, 2012 /
 
A legelső próbálkozásomnál, a "File Registers" ablakban sem mutatott semmit, pedig ott látnom kellett volna ha csinál valamit. De miután nyitottam egy új projektet, meggyógyult, csak addigra már nekem ment ki a bizti az agyamban, és el is feledkeztem róla, hogy mielőtt elindul a "main" függvény, van más dolga is a vezérlőnek.
Köszönöm szépen.
(#) bandita18 válasza bandita18 hozzászólására (») Máj 19, 2012 /
 
Kicsit debugoltam programon, a gond az AD konverzióból ered, valamiért a felső pont értéke írodik be az alsó pont regiszterébe, holott az alsó pont potijára is lefut az AD.
(#) Hp41C válasza bandita18 hozzászólására (») Máj 19, 2012 / 2
 
Szia!
Elindítod az A/D -t, de nem várod meg az átalakítás végét:
  1. bsf       ADCON0,GO_DONE ; start conversion
  2. btfss     ADCON0,GO_DONE ; this bit will change to zero when the conversion is complete
  3. goto      $-1

helyett
  1. bsf       ADCON0,GO_DONE ; start conversion
  2. btfsc     ADCON0,GO_DONE ; this bit will change to zero when the conversion is complete
  3. goto      $-1

kellene.
(#) bandita18 válasza Hp41C hozzászólására (») Máj 19, 2012 /
 
Nagyon szépen köszönöm! Most már működik!
(#) zenetom hozzászólása Máj 19, 2012 /
 
18F252-vel (nem 18LF !!) csinálok egy projektet, és a tápfeszültség 3.3V. Az adatlap szerint a minimum Vdd 4.2V, viszont a 3.3V-ról is tökéletesen működik.
Ami nem baj, mert nem kell feszültég illesztést csinálni az SPI-s memória meg a PIC közt, csak nem tudom mennyire jó, ha a PIC 3.3V-ról megy.
De az normális, ha 3.3V-ról hajtom?
Szerk.: a 18F2550 is elment akadály nélkül 3.3V-ról.
Következő: »»   256 / 1216
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