Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
- 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   995 / 995
(#) tiborati válasza Hp41C hozzászólására (») 9:37 /
 
Megszakítás nincs. A főprogramból mikor a PAGE3 ra ugrok a PCLATH 3,4 bitjét beállítom, ami a verembe eltárolt címen is látszik. Amennyiben jól értem amit írtál, a PCLATH 0,1,2 bitjét is kezelnem kell a tömbbe ugrás előtt.
(#) Hp41C válasza tiborati hozzászólására (») 9:37 /
 
Jól értetted. A 3. és 4. bitjét meg kell őrizned, ha a hívni kívánt táblázat a 3. program lapon van.
A hozzászólás módosítva: 9:39
(#) tiborati válasza Hp41C hozzászólására (») 10:26 /
 
Este kipróbálom, remélem sikerül, mert már régóta kínlódok vele.
(#) Bell válasza Tasznka hozzászólására (») 11:23 /
 
Az összes gondom, hogy globális változót nem tudok deklarálni.
A változó definiálva lesz, de értéket nem kap.
(#) Bell válasza Tasznka hozzászólására (») 11:25 /
 
Próbáltam így is, a változó definiálva van, de értéke nincs.
(#) Tasznka válasza Bell hozzászólására (») 11:39 /
 
A var.c -ben ennyi legyen:
  1. unsigned char x1 = 2;
  2. unsigned char x2 = 3;

Az extern.h -ban:
  1. extern unsigned char x1;
  2. extern unsigned char x2;


HE-proba.c -ben:
  1. #include "extern.h"


Ennek így mennie kellene
Még annyi,hogy régebben mintha írtál volna olyasmit,hogy nagy tömbökkel dolgozol,ha így van akkor azt szedd ki ideiglenesen.
(#) Bell válasza Hp41C hozzászólására (») 11:40 /
 
A c és a h fájlok a helyükön vannak, gond nélkül le is fordul, de az x1 és x2 vel futó for ciklusok egyike sem hajtódik végre, nem villog a LED.
Így gondolom, hogy az értékük nulla.
x3 lokális változó értéke 4, ezért 4 másodperc szünet után van 4 villanás.
Logikus, hogy az xc.h a legelejére kerül, de így sincs változás.
Az xc8 linker Runtime opciójában be van kapcsolva az Initialize data.
(#) Bell válasza Tasznka hozzászólására (») 11:57 /
 
Így sincs változás.
Nincs tömb, mert egy mezei char-al sem működik.
A méretes globális konstans tömböt tárolja a memóriában, deklarálva van de inicializálva nincs.
Ezzel a PIC-el más dolgok sem működnek jól. Viszonylag "újnak" számít és a free fordítónak is lehetnek hibái.
Eldobni sajnálnám, ezért abban reménykedtem, hogy én rontok el valamit.
Mert az MPLABx-et eddig másra még nem használtam.
(#) sszasza hozzászólása 13:26 /
 
Sziasztok,
tud valaki eladó PICKIT2-t? Nem klónt, eredetit. Más nem jó, céghez kellene, rá van állitva egy folyamat. Javítani már nem akarom, ezerszer volt, sok helyen van toldva.
Szentendre-Bp17kerület vonalon mozgok.
(#) Hp41C válasza Bell hozzászólására (») 13:54 /
 
Sajnos, amint látom, a globális inicializált változókat egyszerűen nem tölti fel a XC8. A fórumon a legjobb ajánlás: Töltsük fel programból.
(#) f2f2 válasza Hp41C hozzászólására (») 14:43 /
 
Akkor végre meg van miért kínlódott, de az XC8 nál nem kell beállítani még külön dolgokat neki a fordításhoz ?
A hozzászólás módosítva: 14:51
(#) pajti2 válasza sszasza hozzászólására (») 15:05 /
 
Privi ment, ilyesmi nem fórum téma.
(#) Hp41C válasza f2f2 hozzászólására (») 15:09 /
 
Az a kérdés, mit és hol kellene még beállítani?
Linker: Initialize bepipálva.
Globális változó kezdőérték a deklarációnál. Nincs hibajelzés.
#pragma idata és #pragma udata -ra "Unknown pragma" figyelmeztetés.
A static nem változtat semmit sem.
Ha a kérdéses változó const, akkor a programba literális adatként (movlw paramérereként) kerül be.
A hozzászólás módosítva: 15:10
(#) Bell válasza Hp41C hozzászólására (») 15:14 /
 
Ha globálisan deklarálom, lokálisan definiálom, az sem jó, mert lokális változóként viselkedik. Máshol mincs értéke.
Biztos van erre valami egyszerű megoldás, talán le kéne foglalni a megfelelő memóriatarományt és hozzárendelni a változóhoz.
(#) kriszrap válasza Hp41C hozzászólására (») 15:18 /
 
Idézet:
„Ha már több ilyen EEProm -ot kezelsz”

Nem vagyok mazochista
Örülök ha egyel boldogulok

Akkor a1,a2,a0 lábat akkor tesre kötöm ha csak egyet szeretnék kezelni?
A plédádba mindig 0xA1 vagy 0xA0 írtad ennek volt oka ?? Mert más példájába is láttam...
(#) f2f2 válasza Bell hozzászólására (») 15:22 /
 
Akkor még meg lehetne csinálni

extern a helyére:
  1. extern void LET_1_uchar( unsigned char *adr, unsigned char bytee);
  2. extern void LET_2_uchar( unsigned char *adr, unsigned char bytee1, unsigned char bytee2);

deklarálás után vagy a main függvény elején

  1. LET_1_uchar((unsigned char*)x1 , 2);
  2. LET_1_uchar((unsigned char*)x2 , 3);


és a végén lenne a függvény

  1. void LET_1_uchar( unsigned char *adr, unsigned char bytee)
  2. {
  3.    adr[0]  = bytee;
  4. }
  5. void LET_2_uchar( unsigned char *adr, unsigned char bytee1, unsigned char bytee2)
  6. {
  7.    adr[0]  = bytee1;
  8.    adr[1]  = bytee2;
  9. }



vagy ezt lehetne static függvénynek is
vagy nem voidosan hanem int esen és } előtt return 0;
A hozzászólás módosítva: 15:24
Következő: »»   995 / 995
Bejelentkezés

Belépés

Hirdetés
Frissek
2017. Nov, 22. Sze
15:33:00
Jelenleg 318 fő olvassa az oldalt
Online tagok:
Lapoda.hu     XDT.hu     HEStore.hu