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   792 / 1210
(#) Hp41C hozzászólása Máj 12, 2016 /
 
Kódrészlet a Pk2 Serial Analyzer forrásából:
  1. #pragma code cbuf2_code
  2. //--- cbuf2_get()
  3. TD_BYTE cbuf2_get()
  4. {
  5.    if(cbuf2.used)
  6.    {
  7.       cbuf2.read += 1;
  8.       if(cbuf2.read == CBUF2_LEN)
  9.          cbuf2.read = 0;
  10.       cbuf2.used--;
  11.       cbuf2.unused++;
  12.    }
  13.    return cbuf2_data[cbuf2.read];
  14. }

Feltűnik valakinek valami????
A cbuf2_get() előbb gondosan felszabadítja a kiolvasandó buffer elemet, majd a függvény visszatérési értékeként átadja a hívónak. Csakhogy ez egy megszakítással működő rendszer! Ha felszabadítunk egy adatot, akkor a felszabaduló üres helyet egy másik folyamat (megszakítás) felhasználhatja, azaz a kiolvasandó érték a return utasítás előtt felülíródhat. Egy világhírű cég készülékében????
A hozzászólás módosítva: Máj 12, 2016
(#) Norberto válasza Hp41C hozzászólására (») Máj 12, 2016 /
 
Nincs else ág?
(#) Hp41C válasza Norberto hozzászólására (») Máj 12, 2016 / 1
 
Az még elfogadható, hogy amennyiben nincs adat az utolsót adja vissza.
De ki kellene olvasni az adatot az adminisztráció előtt. Ld. 12. sor:
  1. #pragma code cbuf2_code
  2.     //--- cbuf2_get()
  3.     TD_BYTE cbuf2_get()
  4.     {
  5.        byte c;
  6.        c= cbuf2_data[cbuf2.read];
  7.        if(cbuf2.used)
  8.        {
  9.           cbuf2.read++;
  10.           if(cbuf2.read == CBUF2_LEN)
  11.              cbuf2.read = 0;
  12.           c= cbuf2_data[cbuf2.read];
  13.           cbuf2.used--;
  14.           cbuf2.unused++;
  15.        }
  16.        return c;
  17.     }
A hozzászólás módosítva: Máj 12, 2016
(#) Norberto válasza Hp41C hozzászólására (») Máj 12, 2016 /
 
Nagyon szemfüles vagy!
(#) Pali79 válasza kriszrap hozzászólására (») Máj 12, 2016 /
 
Szia!
Először is, jó lenne ha ékes magyarsággal tennéd fel a kérdést, mert baromira nem magyar amit írsz. Az általad említett PIC-nek 30 lábát lehet ADC-nek használni, de kivezérlés jelzőnek 2 is elég. Viszont nem annyira egyerű a dolog, mert hacsak nem végerősítő kimeneti pontjára teszed akkor kell egy erősítő fokozat elé mert a LINE jelszintje olyan alacsony, hogy az életbe nem fog normálisan működni.
(#) cross51 válasza kriszrap hozzászólására (») Máj 12, 2016 /
 
Ha kivezérlés jelzőt akarsz csinálni és nem valami hű de agyonbuheráltat, akkor lehet egyszerűbb, ha az MSGQ7-est használod, mert ha PIC-en belül akarod sávokra szedni a hangot akkor ahhoz FFT kell ami nem annyira egyszerű, vagy még marad az, hogy műveleti erősítővel szét szeded a hangot több sávra (mondjuk 10-re) és 10 analóg lábat beállítasz vagy multiplexeled az analóg jeleket.

Ezek főleg akkor igazak ha többsávos kivezérlés jelzőt akarsz csinálni.
(#) PLaci hozzászólása Máj 12, 2016 /
 
Sziasztok!
Kb végem van
Eddig teljes megelégedéssel használtam az MPlab 8.92-t linux alól wine programmal.
Most egy 64 bites linux került a gépre, és itt valamiért az mplab már nem működik.
Örömmel láttam, hogy a Mikrochip Linux alá is portolt mblabot mplabx néven.
Hiba nélkül fel is tettem, elindítottam, de ekkor ért a meglepetés. Ez a program köszönő viszonyba sincs a régiekkel, kb úgy nézek rá mint "majom a zongorára". A 8-as alá írt programjaim több száz hibát jeleznek fordításkor (asm progik). Próbáltam az importálás menüt, de változatlan az eredmény Kérlek benneteket aki már használja ezt a progit írjon már pár sort, hogy kellene megszelídíteni. Már attól boldog lennék a a régi asm kiterjesztésű programjaimat le tudnám fordítani.
Már itt elakadok
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF & _BODEN_ON & _MCLRE_OFF
A hozzászólás módosítva: Máj 12, 2016
(#) patrik81 válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Köszönöm a segítségeteket,pont úgy működik,ahogy szerettem volna.Jó kis gyakorlás volt.Eléggé összetett,eltartott egy darabig,amíg megértettem hogy is kéne használni,de működik.
(#) patrik81 válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
Most meg kihagyja az RB4-et,ha a Delay kisebb mint 2000.Egy led-mátrixot akarok vezérelni,az RB4,RA5,RA2,RA1,RA0 bitek felelnek az anódért,a PORTC meg a katódért.Erre van ötleted?
(#) patrik81 válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
  1. for (char k=0;k<10;k++)
  2.             for (char c=0;c<20;c++)
  3.                 for (char i=0;i<5;i++)
  4.                 {
  5.                     Leptet(j);
  6.                     PORTC=szamok[k][i];
  7.                     j+=1;
  8.                     if(j==5)
  9.                         j=0;
  10.                     Delay(2000);
  11.                 }
(#) cross51 válasza PLaci hozzászólására (») Máj 12, 2016 /
 
A window -> PIC Memory Views -> Configuration Bits és ott be tudod állítani az X kompatibilis formátumot. De itt egy egyszerű program amiből el tudsz indulni.
(#) cross51 válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
Ha j = 4 akkor a LATB nem kapcsol be?
A hozzászólás módosítva: Máj 12, 2016
(#) PLaci válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Szia!
Köszi szépen!
Meg fogom nézni, de remélem okafogyottá válik a dolog.
Második kísérletre sikerült felvarázsolnom a 8.91-t
Azért most már a jövőre való tekintettel is megnézem ezt az X-t
...
Nem fordult le ez sem.
Szerintem itt van a kutya elásva:
build/default/production/main.o: \
D:/Gabor/MPLABXProjects/hobbie_Placi.X/main.asm \
Nyilván nálam nincs ilyen könyvtár és meghajtó
A hozzászólás módosítva: Máj 12, 2016
(#) patrik81 válasza cross51 hozzászólására (») Máj 12, 2016 /
 
De,apránként tökéletesen működik,mind j=0,j=1...j=4.Ha sokat várakoztatom a programot,akkor is látszik,csak akkor nem összefüggően látom a kijelzést a proteusban,de ha gyorsítok rajta,akkor meg eltűnik az RB4 vezérelte sor a kijelzésnél,mintha az be se kapcsolna.
(#) PLaci válasza PLaci hozzászólására (») Máj 12, 2016 /
 
Csak sikerült.
Ha a "söprűs kalapáccsal" indítottam lefordult
(#) cross51 válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
A proteus nem ad mindig vissza tökéletes képet nézd az mplabon belül szimulátorban és ha megnézed a watch-ban ott a j értékének megfelelően kell bekapcsoljanak a port bitek.
(#) patrik81 válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Odáig meg van az MPLAB-ban,hogy stimulus,meg meg is jelenik a szimulátor ablak,de a RUN-ra nem reagál semmit.
(#) PLaci válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
Szia!
Run módban nem látod a változást, csak a képernyő alsó részén jelzi, hogy fut.
2 lehetőséged van:
1 a kritikus pontokra beteszel egy break pointot, és ott akkor megáll, látod a regiszterek állapotát.
2 egy lépés szimulátor módban dolgozol, ott minden utasítás után megáll, és megmutatja a változásokat. A szubrutinokat tudod egy lépésként kezelni (pl időzítő hurkoknál nagyon hasznos funkció)
A hozzászólás módosítva: Máj 12, 2016
(#) patrik81 válasza PLaci hozzászólására (») Máj 12, 2016 /
 
Sikerült betenni pirossal egy breakpointot,de nem jön elő semmi,csak azt látom a stimulusban,hogy running target.
(#) Elektro.on válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Meg kéne ismerkedmem ezzel a Proteussal.
(#) PLaci válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
Lehet nem jó helyen keresed a dolgot?
A stimulusra alapvetően nincs szükség.
Amikor kijelölöd a debug módot debugger/select tool/mplab sim akkor a felső sorban megjelennek +ikonok
Na ezekkel tudsz lépni futtatni egy lépésben futtatni szubrutinokat, illetve resetelni a programot
Remélem jól gondolom hol tévedtél el
A hozzászólás módosítva: Máj 12, 2016
(#) cross51 válasza Elektro.on hozzászólására (») Máj 12, 2016 / 1
 
Sőt van egy plugin az MPLAB-ban amivel a proteusban futó szimulációt tudja kezelni, magyarul szoftveres "valóság" amennyire a proteus lehetővé teszi a valóságot.
(#) cross51 válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Itt is egy kép milyen szépen működik valahol hasznos lehet néha előfordult, hogy a szimulátor vitt rá a hiba megoldására.

proteus.png
    
(#) patrik81 válasza PLaci hozzászólására (») Máj 12, 2016 /
 
Idézet:
„Amikor kijelölöd a debug módot”

Azt hogy kell?
Nálam mplabx ide v3.26-van.
(#) PLaci válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
Jujjj... ne haragudj! Ahhoz én is láma vagyok épp ma kérdezgettem róla itt a listán.
Én az MPLab 8.92-t használom
A hozzászólás módosítva: Máj 12, 2016
(#) cross51 válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
A Dashboard-on -> a Properties(villáskulcs) -> a ami beugrik ablak ott látni fogsz egy olyan nevet, hogy hardware tools és ott rámész a Simulator-ra.
(#) Elektro.on válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Remek. Bár én MikroPascalozok de ha hex megetethető vele akkor mindenképp meg kell ismernem.
(#) patrik81 válasza cross51 hozzászólására (») Máj 12, 2016 /
 
Eddig jó.Előjött az,hogy Stimulus,Variables,Output,Logic Analyzer,I/O Pins,Configuration Bits.
Hogy kell előhozni a változómat?Arra gondoltam,hogy a Variablesnél jobb klikkel New Watch,de ott nincs meg az adott táblázatban.
(#) cross51 válasza patrik81 hozzászólására (») Máj 12, 2016 /
 
A lokális változók csak a lokális változót definiáló forrásban/függvényben érhető el én nem a Variables szoktam nézni az egy automatikus változó mutató én külön a Watch windows szoktam használni ott megadom, hogy melyik változót szeretném látni.
Window->Debugging->Watches-nél éred el.
(#) petike199600 válasza petike199600 hozzászólására (») Máj 12, 2016 /
 
Lehet, hogy rossz fórumon tettem fel a kérdést, de akkor legalább azt mondjátok meg, hol érdeklődjek. Azért kérdeztem itt, mert pices cucc volt.
Következő: »»   792 / 1210
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