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   909 / 1207
(#) kriszrap válasza Elektro.on hozzászólására (») Márc 14, 2017 /
 
Köszönöm ha ismét elküldöm a kódomat persze módositva akkor le elleörzöd nekem??
(#) ktamas66 válasza kriszrap hozzászólására (») Márc 14, 2017 /
 
Igen, egy trimmer kondival bizonyos határokon belül hangolható, de az is türelemjáték, míg pontosra beállítod.
A főprogramban levő késleltetések nem szólnak bele a pontosságba, az IT azonos időközönként fog jelentkezni.
(#) Hp41C válasza kriszrap hozzászólására (») Márc 14, 2017 /
 
Idézet:
„A főprogramban levő késleltetések nem szólnak bele a pontosságba, az IT azonos időközönként fog jelentkezni.”

Pontosítani kell:
- A megszakítás nem lehet jelentős ideig tiltva. Ugyanis, ha van olyan részlet a főprogramban, ami jelentős időre kizárja a megszakítás érvényrejutását, megtörténhet hogy nem szolgál ki egy kérést időben és a következő kérés beérkezése előbb történik, mint a kiszolgálás. Ebben az esetben "elvész" egy kérés.
- A megszakítási rutin nem tarthat sokáig. Ha hosszú időt vesz igénybe a kiszolgálás, a megszakítás kiszolgálásának ideje alatt beérkezhet az a bizonyos második kérés.
(#) HF33 hozzászólása Márc 15, 2017 /
 
Üdvözletem! Tudnátok segíteni? Találtam egy lövedék sebességmérőt, magát a nyákot és a beültetést eltudnám készíteni, de valamit bele kellene égetni (ha jól sejtem). Erre irányulna a kérdésem.
(#) nedudgi válasza HF33 hozzászólására (») Márc 15, 2017 /
 
Igen. A PIC16F630 egy mikrokontroller, ami beégetett program nélkül semmit csinál. (NOP)
Most komolyan, keressük meg a kép alapján a forrást?
A hozzászólás módosítva: Márc 15, 2017
(#) Hp41C válasza nedudgi hozzászólására (») Márc 15, 2017 /
 
A Gooooogle csodákra képes: "pic16F630 a363sr" kérdésre az Első találat ép jó lesz.
A kép alatt található az 50, 64, 100, 150 mm -es érzékelő távolsághoz való hex állományok (rar -ba tömörítve).
A hozzászólás módosítva: Márc 15, 2017
(#) HF33 hozzászólása Márc 15, 2017 /
 
Nagyon szépen köszönöm a segítséget! Miután számomra ez teljesen idegen terep, elvállalnátok a PIC beprogramozását?
(#) nedudgi válasza HF33 hozzászólására (») Márc 15, 2017 /
 
Persze. Ha eljössz, megcsinálom.
(#) HF33 válasza nedudgi hozzászólására (») Márc 15, 2017 /
 
Köszönöm szépen!
(#) Istibácsi hozzászólása Márc 15, 2017 /
 
Sziasztok!

Érdeklődnék, használt már valaki SHT-15 szenzort?
Kiküldöm a start jelet aztán a mérést, ahogy az adatlapján van, azután bemenetre állítom az adatvonal portját, de nem húzza le mérés után, pedig elvileg le kellene..
Az zavar egyébként, hogy ha lehúzom földre az adat lábat akkor nem 0V, hanem 750mV.
Az adat láb fel van húzva VDD-re 5K-val, de akkor simán lehúzza 0V-ra, viszont amint ráakasztom a szenzort is, már csak 750mV-ig húzza le.
Van egy teszt hex file, ha azt használom akkor az rendesen lehúzza az adatvonalat 0ra.
Na ez megint magas nekem...

Egy ilyen alap programnál 750mV-ig húzza csak le, ez hogy lehet?

--------------------------------------------------------------------------------------------
#include <16f88.h>
#FUSES NOWDT, INTRC, NOPUT, NOPROTECT, NOBROWNOUT, NOCPD,
#use delay(clock=4000000)

#define data pin_b7
#define sck pin_b6

void main()
{
output_low(data);
}
-----------------------------------------------------------------------------------------------

Köszönöm!!
(#) Pali79 válasza Istibácsi hozzászólására (») Márc 15, 2017 /
 
Tedd fel légyszi az ebből fordított hex-et!
(#) kriszrap hozzászólása Márc 15, 2017 /
 
Javítva felraktam az óra kódját txtbe akinek van ideje kérem nézze meg hogy jól csináltam hogy folyamatos lesz e a whilem és igy nem fog késni az óra .
(#) Istibácsi válasza Pali79 hozzászólására (») Márc 15, 2017 /
 
Parancsolj! Csatoltam a proteusos tesztet is.
(#) Istibácsi válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
Felteszem a szkóp képet is, amint látjátok 750mV az L szint az adatvonalon, az órajelnél rendesen 0.
Lehet, h ez zavarja?

Szkóp.jpg
    
(#) Pali79 válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
Ez a kód nem állítja kimenetre az alapértelmezésben bemenetként definiált lábakat. Ez biztos hiba...
(#) Istibácsi válasza Pali79 hozzászólására (») Márc 16, 2017 /
 
SET_TRIS_B(0b00000000) már biztos átállítaná, de semmi változás.
Eddig még amit akartam sikerült megoldanom ebbe a pices témába, de most kicsit izzadok
(#) Istibácsi válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
Váltottam 16F685-re, azzal megy... Érdekes.
(#) Pali79 válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
Dobd már fel légyszi mindkét hex-et! Kíváncsi vagyok van-e benne eltérés!
(#) Istibácsi válasza Pali79 hozzászólására (») Márc 16, 2017 /
 
A teszt, amit letöltöttem a netről és a saját.
(#) Pali79 válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
Ezek milyen pic-re íródtak?
(#) Istibácsi válasza Pali79 hozzászólására (») Márc 16, 2017 /
 
16F88, annyi az eltérés h az adat és az órajel lábak fel vannak cserélve.
A hozzászólás módosítva: Márc 16, 2017
(#) Pali79 válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
Hát nem csak annyi az eltérés, elég a fájlok méretét megnézni. A minta fájl a program memóriában több mint 500 utasítás, a saját csak 23 utasítás és még mindig nincs benne a TRIS regiszterek állítása.
(#) Istibácsi válasza Pali79 hozzászólására (») Márc 16, 2017 /
 
Természetesen az egy kész program, én csak az adat lábat akartam 0ra lehúzni, de amint a szkópon is láttad, nem sikerült, nem értem miért.
Beraktam a 16F685-öt, ugyan azzal az egy paranccsal nem 750mV lett hanem 0.
Beirtam a start ciklust és a mérést és már működött is az SHT15..
(#) Istibácsi válasza Istibácsi hozzászólására (») Márc 16, 2017 /
 
------------------------------
#include <16f685.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, BROWNOUT, NOCPD
#use delay(clock=4000000)

#define data pin_c7

void main()
{
output_low(data);
}
--------------------------------------------------------------
Ennyi, de ez a 16F88-nál nem működött..
(#) kriszrap hozzászólása Márc 17, 2017 /
 
Sziasztok
14 42 kor indítottam el az órámat (nem nyúltam hozzá) és fél percet már késik kb.
22pf cseréljem 33pf ra ??? Már nem tudom miért kési pedig egyetlen egy delay nincs a kódba.
A program kód csatolva.
(#) Elektro.on válasza kriszrap hozzászólására (») Márc 17, 2017 / 1
 
A megszakítási rutinod rettentő hosszú.
Nem lehet, hogy mire kilép a rutinból és ujra engedélyezi a megszakítást, addigra kimarad néhány feldolgozatla megszakítás?
Valaki itt már korábban írta neked, hogy a megszakítás minimális hossz legyen.
Le ellenörzöd mi okozta, ennek függvényében beállítassz mondjuk változókat. pl melyik gombot nyomták meg, számláló tulcsordult. stb.És már ki is lépsz a megszakításból ujra engedélyezve azt. Az eseményeket meg a beállított változók alapján a megszakításon kívül feldolgozod.
A hozzászólás módosítva: Márc 17, 2017
(#) kriszrap válasza Elektro.on hozzászólására (») Márc 17, 2017 /
 
Ha minden igaz és jól értelmeztem így csináltam.... Változtatás még annyit stab icére tettem hűtőbordát hát ha a melegedés a baj.
(#) Elektro.on válasza kriszrap hozzászólására (») Márc 17, 2017 /
 
Hát nem.
Az idoszamol() függvényed mit keres ott? Annak a teljes tartalma bekerül a megszakítási rutinodba.Azonkívül még portot is kapcsolgatsz onnan. És láttam ott egyéb érdekességeket is.
A rutinod csak annyból áljon, hogy lekérdezed a használt interrupt flag eket, és simán ezeknek az értékeit változóba teszed. Max 3-4 rövid utasítás, és kilépsz a megszakításból. Utána akár while ciklussal is ellenőrizheted a változókat amik tükrözik az utolsó megszakítás álapotát.
(#) kriszrap válasza Elektro.on hozzászólására (») Márc 17, 2017 /
 
Vagy is túl van terhelve az interupom. Rendben javítom azt írok holnap.
(#) kriszrap válasza kriszrap hozzászólására (») Márc 17, 2017 /
 
  1. void interrupt(void){
  2.    if(TMR2IF_bit)
  3.    {
  4.      TMR2IF_bit = 0;
  5.      if(!count--)
  6.      {
  7.        count=100;
  8.        mas1++;
  9.        if(menu==0|| menu==1 || menu== 3) kepfrissit=1;
  10.      }
  11.    }
  12. }


Ennyi már az interupom remélem már jó lesz)
Következő: »»   909 / 1207
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