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   913 / 1203
(#) Kapagerenda hozzászólása Márc 25, 2017 /
 
Sziasztok,
Pic-el szeretnék egy robotvezérlést megoldani. Két motor két forgásiránnyal. Egy előre meghatározott mozgáskombinációt végezne a robot. PC-n belül elkészíteném, hogy milyen mozgást kéne végrehajtania a robotnak, hogy lássam vizuálisan ( pl. egy négyzetet rajzol) és ezután tölteném rá a mikrochipre. Szóval a robot képes lenne egyszer négyzetet, máskor háromszöget mindig más oldalnagyságokkal lerajzolni, attól függően, hogy a PC-n belül én mit rajzolnák meg.
Hogy lehetséges ez? Code blocks-ban készítettem ilyen programot ami kirajzolja a négyzetet stb, viszont a motorok vezérlését pl microc-ben teljesen máshogy kell. Hogy lehetne a kettőt összehangolni? PC-n megrajzolom majd áttöltöm a microchipre ami vezérli a robotot. Kicsit összetett a dolog...
Előre is köszönöm a választ.
(#) kriszrap hozzászólása Márc 25, 2017 /
 
Sziasztok) pic16f628 nál RA1 beállítottam kimenetnek és engedélyeztem de semmi..
  1. TRISA=0b00000000;
  2.      TRISB=0b00000000;
  3.      Delay_us(20);
  4.      TRISB.F0=1;
  5.      TRISB.F1=1;
  6.      TRISB.F2=1;
  7.      TRISB.F3=1;
  8.      PORTA=0;
  9.      PORTB=0;
  10.      PORTA.F1=1;// itt engedélyezem

Mi lehet a baj??
(#) Kapagerenda válasza kriszrap hozzászólására (») Márc 25, 2017 /
 
Próbáld igy

void main() {

PORTA = 0;
TRISA = 0b00000000;
PORTA = 0b00000010;

while(1);

}
(#) Bakman válasza Kapagerenda hozzászólására (») Márc 25, 2017 /
 
Ez tulajdonképpen egy CNC gép lenne vagy plotter? Talán egyszerűbb lenne ebben az irányban elindulnod, rengeteg, szinte kész megoldás létezik.
(#) Firefighter1 hozzászólása Márc 25, 2017 /
 
Köszönöm... mondjuk ez csak nyàron fog nekem kelleni. Akkorra tervezem eztva projektet... csak már jár a fejem rajta... aztán kezdek gondolkodni hogy mit is meg hogyan is!
De elöre is köszönöm
(#) kriszrap válasza Kapagerenda hozzászólására (») Márc 25, 2017 /
 
Szerintem ugyan az a ketto......
(#) kriszrap hozzászólása Márc 25, 2017 /
 
Müködik)
Idézet:
„Sajnos nem vagyok nagy matekos kb mennyit kene elvemni hozza adni es mily modon ???”
CSúszásra még vároma megoldást vagy hogy kell kiszámolni ??
(#) gyoran válasza kriszrap hozzászólására (») Márc 25, 2017 /
 
Nos, a számok még elég pontatlanok, talán jobb lenne egy hétig mérni, de ezt megteheted később is. Tegyük fel, hogy - ha jól értem - 15:47- kor indítottad az órát és kb 07:57-kor 4 mp késés volt.
Eközben 16 óra és 10 perc telt el. Ez összesen 16 x 3600 + 10 x 60 = 58200 másodperc
Ez alatt 4 másodpercet téveszt, azaz minden 58200/4=14550 másodpercben késik egy mp-et.
Én a favágó megoldást választanám, minden másodperc ugrásnál felfelé számoltatnék egy változót. Ha ez eléri a 14550 értéket, akkor még egy másodperccel inkrementálnám a másodperc értékét (persze 60-nál 0-znám és a percet inkrementálnám stb.), és nulláznám az előbbi változót.
Miután viszont sem a C-hez nem értek, sem pedig a konkrét megoldásodat nem ismerem, innen Tied az út. Ha a hosszú távú méréssel más értéket számolsz, akkor a 14550-nek nyilván azt az értéket kell adni.
Viszont ez a hiba kb 69 ppm ami a duplája az általam megnézett kvarcok max hibájának. Ott valami nem stimmel.
Lehet, hogy nem is állandó a hiba. Ez azt is jelenti, hogy van esély arra, hogy a 4 mp. mondjuk holnap 2 lesz, hétfőn meg 9. Ezt már kompenzálással nem fogod meg.
(#) kriszrap hozzászólása Márc 25, 2017 /
 
Idézet:
„Viszont ez a hiba kb 69 ppm ami a duplája az általam megnézett kvarcok max hibájának. Ott valami nem stimmel.
Lehet, hogy nem is állandó a hiba. Ez azt is jelenti, hogy van esély arra, hogy a 4 mp. mondjuk holnap 2 lesz, hétfőn meg 9. Ezt már kompenzálással nem fogod meg.”


A forráskódót csatoltam hátha valaki rájön mit hibázok.
Vagy csináljam azt hogy számolom a masodperceket nem nullázom(persze éjfélkor nullázoma változokat) vissza bontogatom while ciklussal . Holnap beszurom hogy mire gondolok.
(#) nedudgi válasza Hp41C hozzászólására (») Márc 26, 2017 /
 
Ismereteim szerint a BT adatátvitel tartalmaz némi védelmet az átvitt adatot épségére.
(#) Hp41C válasza nedudgi hozzászólására (») Márc 26, 2017 /
 
Tartalmaz.
(#) gyoran válasza kriszrap hozzászólására (») Márc 26, 2017 /
 
Szia

megnézve a forráskódot, szerintem az jó. 1/14550-ednyi hibát nem nagyon tud a rutinod okozni, legalábbis én nem látom. Két interrupt között 1/100 mp telik el, aminek elégnek kell mindenre lennie.
Ha tippelnem kellene 50% esélyt adok a kvarc köröl parazita kapacitások kártékony hatására. 20%-ot arra, hogy kifogtál egy rossz kvarcot, 20 % egyéb HW 10% SW.

4MHz-s kvarcod van rajta ugye? Ahhoz 15-30pF-es kondenzátorokat ír a doku.
Megpróbálhatod külső oszcillátorral járatni, megnézni, hogy akkor mi a helyzet.
Akár más értékű kvarccal, előosztóval.
(#) Hp41C válasza kriszrap hozzászólására (») Márc 26, 2017 /
 
Ha Gyoran jól számolt, akkor a feltételezés szerint az órajeled 69 miliomod résszel alacsonyabb, mint 4MHz. De számoljunk csak utasítás végrehajtási ciklusokkal (1MHz ~ 1us).
A megszakítás 1/100 s -enkét következik be, így két megszakítás között 10000 utasítás hajtódik végre. Mivel az órajel nem pontos, hanem 69 ppm -el eltér lefelé, így egy exakt márodperc alatt csak 1000000 - 69 órajel ciklus lesz.
A megszakítási rutint írnám át Roman Black féle módszerre:
Vennék egy longint változót, kezdőértéknek 999931 -et írnék bele. A megszakítási rutin minden lefutása alatt 10000 -et levonnkék belőle. Ha az érték negatív 999931 -t hozzáadnék és növelném a másodperc értékét.
(#) pajti2 válasza Kapagerenda hozzászólására (») Márc 26, 2017 /
 
Egy byte-kód értelmező féleséget kellene inkább írnod a pic-re, és rakni mellé vagy ramot, vagy flash-t, hogy abba küldd majd az adatokat a pc-ről. Ha meg van tervezve a művelet egésze, lefordítod elemi műveleti lépésekre, és azt küldöd le a pic-nek.
(#) kriszrap válasza gyoran hozzászólására (») Márc 26, 2017 /
 
  1. Szia
  2.  
  3. megnézve a forráskódot, szerintem az jó. 1/14550-ednyi hibát nem nagyon tud a rutinod okozni, legalábbis én nem látom. Két interrupt között 1/100 mp telik el, aminek elégnek kell mindenre lennie.
  4. Ha tippelnem kellene 50% esélyt adok a kvarc köröl parazita kapacitások kártékony hatására. 20%-ot arra, hogy kifogtál egy rossz kvarcot, 20 % egyéb HW 10% SW.
  5.  
  6. 4MHz-s kvarcod van rajta ugye? Ahhoz 15-30pF-es kondenzátorokat ír a doku.
  7. Megpróbálhatod külső oszcillátorral járatni, megnézni, hogy akkor mi a helyzet.
  8. Akár más értékű kvarccal, előosztóval.


22 pf farádot használok. 4mhz eset. Akkor nem a programba keressem a hibát. Még végig gondoloma dolgokat. Köszönöm

Idézet:
„Ha Gyoran jól számolt, akkor a feltételezés szerint az órajeled 69 miliomod résszel alacsonyabb, mint 4MHz. De számoljunk csak utasítás végrehajtási ciklusokkal (1MHz ~ 1us).
A megszakítás 1/100 s -enkét következik be, így két megszakítás között 10000 utasítás hajtódik végre. Mivel az órajel nem pontos, hanem 69 ppm -el eltér lefelé, így egy exakt márodperc alatt csak 1000000 - 69 órajel ciklus lesz.
A megszakítási rutint írnám át Roman Black féle módszerre:
Vennék egy longint változót, kezdőértéknek 999931 -et írnék bele. A megszakítási rutin minden lefutása alatt 10000 -et levonnkék belőle. Ha az érték negatív 999931 -t hozzáadnék és növelném a másodperc értékét.”


C be leprogramozom nagyából hogy nézne ki letudnád nekem majd ellenőrizni???
(#) c27 hozzászólása Márc 27, 2017 /
 
Sziasztok!

Van egy AMC 1200-esem. Szeretnék vele izoláltan áramot mérni és az értékét beolvasni egy pic adc-jén keresztül. Még nem teszteltem az áramkört, de a két kimenetén mérhető a bemeneti feszültség 8x-a. A gondom az, hogy a két kimenet feszültségkülönbsége adja a mérendő jelet. A pic-el ha jól tudom nem tudok csak pozitív tartományban mérni. Valahogy meg lehet oldani ezt más áramkör hozzátoldása nélkül?
(#) Firefighter1 hozzászólása Márc 27, 2017 /
 
Sziasztok!
PIC-hez tudtok javasolni valami egyszerű kezelhetősègű könnyű editoros 5 coll környèki kijelzőt?
A Nextion HMI -jèt nézegettem... de fèlek hogy kinai lenne nekem!
Első kijelzős projekt lenne!
Igyhajlando vagyok egy kicsit dràgàbbat is megvenni ha egyszerűbb a kezelhetősège!
A projekt az egy lakàs analizácio lenne / majd majd/
Statikus stilizált kèp ès a mèrt hőmèrsèglet pàra megjelenitése.
Minden ötletet szivesen meghallgatok!
(#) Elektro.on válasza Firefighter1 hozzászólására (») Márc 27, 2017 /
 
Pedig én a Nextiont javaslom.
Ha nem vagy biztos magadban, töltsd le a feljesztő iörnyezetét. Van benne szimulátor. Azt csinálja amit a HMI is.Kivéve a háttérvilágítás fényereje. És soros porton valós PIC -et is rá tudsz kötni.
Így ismerkedhetsz vele költségek nélkül.
(#) ktamas66 válasza kriszrap hozzászólására (») Márc 27, 2017 /
 
Mint már írtuk páran, először is járasd hosszabb ideig. Ha kb. 1 mp-es a leolvasási pontosságod, a 3-4 mp hiba még túl nagy leolvasási hibát tartalmaz, tehát hagyd, hogy az eltérés legalább 100 mp legyen, itt a leolvasási hiba más sokkal kisebb. Ha ez megvan, segítünk kiszámolni mennyivel kell korrigálni. Ellenőrizni csak te tudod egyedül, mi nem látjuk helyesen jár-e.
(#) Firefighter1 válasza Elektro.on hozzászólására (») Márc 27, 2017 /
 
Na akkor azt hiszem megprobàlkozom!
Letöltöm... aztàn ha valamit nem tudok megyek a topicjába èy kèrdezgetek!
Addig is köszönöm!
(#) Firefighter1 hozzászólása Márc 27, 2017 /
 
Csak érdeklődés szintjén!
Tudtok mondani olyan más kijelzőket aminek hasonlo az editor felülete.. tehát grafikus.. ?
Mondjuk esetleg i2c alaput?
Addig is belemélyedek ebbe a nextionba
(#) kriszrap válasza ktamas66 hozzászólására (») Márc 27, 2017 /
 
Idézet:
„Mint már írtuk páran, először is járasd hosszabb ideig. Ha kb. 1 mp-es a leolvasási pontosságod, a 3-4 mp hiba még túl nagy leolvasási hibát tartalmaz, tehát hagyd, hogy az eltérés legalább 100 mp legyen, itt a leolvasási hiba más sokkal kisebb. Ha ez megvan, segítünk kiszámolni mennyivel kell korrigálni. Ellenőrizni csak te tudod egyedül, mi nem látjuk helyesen jár-e.”


Rendben Akkor marad minden és akkor írom az információkat.

22pf lecserélem 33 ra az baj lenne?
A hozzászólás módosítva: Márc 27, 2017
(#) gyoran válasza kriszrap hozzászólására (») Márc 28, 2017 /
 
Nem hinném, a PIC dokumentációja azt írja, hogy a nagyobb kapacitás növeli a stabilitást és a felfutási időt is. Ez utóbbi gondolom mindegy.
Esetleg megpróbálnék 15 pF-et is, ha könnyen tudsz cserélni.
Másfelől egy kvarc soros kondival húzható el, de ebben nincs tudásom/tapasztalatom.
Harmadrészt a PIC adatlapja ír valamit soros ellenállásól és a kvarc adatlapjára utal. Ez utóbbi szerintem legtöbbször nem elérhető pont arra a kvarcra ami a kezedben van, így a dolog a woodoo kategóriához közelít . De talán van más fórumozónak tapasztalata vele.
Negyedrészt, a fali analóg kijelzésű digitálisan meghajtott óráim (a leggagyibb is) messze pontosabb, mint a 30 ppm, amit egy kvarc biztosít, tehát létezik a technológia pontos órához.
Remélem ezzel vitát robbantok...
(#) ktamas66 válasza gyoran hozzászólására (») Márc 28, 2017 /
 
Nem hiszem, azok a kis 32k kvarcok sokszor 10ppm-esek, és ugye jó pénzért 1-2ppm-es kvarcot/oszcillátort is lehet kapni.
(#) nedudgi válasza kriszrap hozzászólására (») Márc 28, 2017 /
 
Igen, baj lenne. Ne kapkodj. Egyszerre csak egy dolgon változtass, különben elveszted a fonalat.
Egy összehasonlító mérés még nem dönti el semmit.
Ne változtass semmin, csak hosszabb időn keresztül figyeld, mérd az eltéréseket. Ha azonos eltérést tapasztalsz, akkor nem érdemes a kvarc környékét piszkálni, egyszerűbb a szoftveres korrekció. Ha instabil, változó eltéréseket tapasztalsz, csak akkor foglalkozz az oszcillátorral.
(#) kriszrap válasza nedudgi hozzászólására (») Márc 28, 2017 /
 
Rendben ven ha meg van 100mp kulombseg irok.
(#) kriszrap hozzászólása Márc 28, 2017 /
 
Bocsánat a dupla postért annoo ezt rendeltem innen hestorrol:
Bővebben: Link
(#) pajti2 válasza ktamas66 hozzászólására (») Márc 28, 2017 /
 
Anno kerestem lehető legpontosabb kvarcokat, de a HEStore-ban is csak 20 ppm-esek vannak, meg a TME-nél is, Lomex-nél is - merre lehet normálisabb kvarcot találni?
(#) lokátoros válasza pajti2 hozzászólására (») Márc 28, 2017 /
 
Szia,

Pedig a TME-nél is van:
TME
(#) ktamas66 válasza pajti2 hozzászólására (») Márc 28, 2017 /
 
Pl. 10ppm-eset szoktam használni alapesetben, ha valami jobb kell lehet TCXO.
Következő: »»   913 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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