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   879 / 1210
(#) patrik81 hozzászólása Nov 27, 2016 /
 
Sziasztok!
Miért van az,hogy a main függvény végére írva a return;-t lefordítódik,de viszont már a return 0;-val már nem?
(#) ktamas66 válasza Ashen16 hozzászólására (») Nov 27, 2016 /
 
Itt van hex 16F886-hoz, az szerintem jó hozzá.
(#) Pali79 hozzászólása Nov 27, 2016 /
 
Sziasztok!
Egy kis segítségre lenne szükségem egy feladat megoldásában. Adott egy léptetőmotor aminek 24 meghatározott pozícióba kell megállnia. A pozíciók az órán nézve 9 óránál indul 0-ról és az óra járásának megfelelően van beszámozva. A kérdés az lenne, hogy miként lehet azt megoldani, hogy mindig a rövidebb úton induljon el? Tehát ha mondjuk éppen a 4-es állában van és a 21-es állásba kell mennie akkor nem menjen teljesen körbe, hanem "visszafelé" induljon.
(#) zenetom válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Itt lehet hamarabb kapsz választ: Léptetőmotorok (vezérlése)
Szerk.: most nézem, ott már írtál, szóval akkor a PIC oldali részre vagy kíváncsi..
A hozzászólás módosítva: Nov 27, 2016
(#) foxi63 válasza patrik81 hozzászólására (») Nov 27, 2016 / 1
 
Szia!
A main függvény visszatérési értéke void , tehát nem kell visszatérési érték.Ráadásul a main függvény végtelenítve van,abból a kontrollernél nem szokás kilépni, tehát nincs is ami feldolgozná a nulla visszatérési értéket.
(#) Pali79 válasza zenetom hozzászólására (») Nov 27, 2016 /
 
Persze! Nem magával a vezérléssel van gondom, mert tudom vezérelni a motor rendesen, csak a pozíciók egymáshoz viszonyított helyzete a kérdés.
(#) Bakman válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Erre legeszerűbb megoldás a táblázatos módszer. Start pozíció, stop pozíció -> irány + lépés. Kicsit olyan ez, mint a szélirány átlagolása (0° mellett a 359° van).
(#) zenetom válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Enkóderrel? Ez pl. (meg egy csomó ilyen) elvileg 24 jelet ad: Bővebben: Link. Aztán már csak számolgatni kell, hogy mennyit tett meg a tengely. Esetleg még egy abszolút referenciapont (pl. optokapuval), ahonnan számolsz (ez esetben "9 óránál").
(#) Pali79 válasza zenetom hozzászólására (») Nov 27, 2016 /
 
Ez nem segít sajnos. A pozíciók értékét tárolom, tehát azt mindig tudom, hogy éppen hol vagyok. Csak az a kérdés, hogy jobbra vagy balra indulva lesz-e rövidebb az út.
Próbálom értelmezni Bakman ötletét, de még nem látom a megoldást.
(#) Pali79 válasza nagym6 hozzászólására (») Nov 27, 2016 /
 
Kifejtenéd? PIC vezérli, ezért is kérdezem itt!
(#) ktamas66 válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Ha a következő pozícióhoz 12-nél többet kell lépni, a másik irány közelebb van.
(#) zenetom válasza ktamas66 hozzászólására (») Nov 27, 2016 /
 
Basszus, beelőztél, most akartam én is leírni.
(#) Pali79 válasza ktamas66 hozzászólására (») Nov 27, 2016 /
 
Tényleg! Basszus! Mióta gyötröm itt magam rajta és ilyen pofon egyszerű a megoldás! Köszönöm!
(#) zenetom válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Szóval, a hova akarsz menni a "B", a honnan az "A". Kivonod a B-ből az A-t, és ha nagyobb, mint 12, akkor balra mész, egyébként jobbra.
Ha a kivonásnál negatív számot kapsz, akkor ennek a fordítottja.
(#) Hp41C válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Nem kell ide táblázat csak kivonás:
Legyen k egy körbefordulás lépésszáma, p a jelenlegi pozíció lépésszáma a kezdőponttól. Továbbá legyen u az új pozíció lépésszáma a kezdőponttól.
Képezzük a p-u -t.
Ha u-p == 0, megérkeztünk....
Ha u-p > 0 és u-p < k/2, előre indulunk és megteszünk u-p lépést.
Ha u-p > 0 de u-p > k/2, visszafelé indulunk és meg p + k - u lépést
Ha u-p < 0 és abs(u-p) < k/2, visszafelé indulunk és megteszünk p-u lépést
Ha u-p < 0 de abs(u-p) > k/2, előre indulunk és meg k - p + u lépést
Jól írtam?
(#) Pali79 válasza zenetom hozzászólására (») Nov 27, 2016 /
 
Vettem!
(#) Bakman válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
A táblázat egy része a mellékletben. Tudod a start pozíciót, kiválasztod az oszlopot, tudod a cél pozíciót, kiválasztod a megfelelő cellát. A cellában az irány (Előre, Hátra) és a lépésszám van. Kitöltesz egy 24 x 24 -es táblázatot és lefordítod a kontroller nyelvére. Akkor van némi trükk, amikor 180° -ot kell fordulni, akkor mindkét irány megfelelő, de gondolom majd választasz magadnak egy helyes utat.

Shot_705.jpg
    
(#) Ashen16 válasza Bakman hozzászólására (») Nov 27, 2016 /
 
Akkor szinte felesleges megpróbálnom ha jól értem...
Azt hittem elég ha a lábak funkciót módosítom a 16F887 esetében,mert ugye az többet tud....
(#) Ashen16 válasza ktamas66 hozzászólására (») Nov 27, 2016 /
 
Ha nem tudom módosítani,akkor megpróbálom ezt, De sajnos elég homályos a kép, nehéz kivenni mi mi akar lenni, illetve csak hex-kód van hozzá, ezt hogy töltöm fel a PIC-re? Elnézést ha egyértelműnek tűnő dolgot kérdeztem, de nem vagyok túl járatos PIC-ek terén.
(#) nagym6 válasza Pali79 hozzászólására (») Nov 27, 2016 /
 
Utólag lassan beugrott nálam, a topicból következik, hogy pic-es. Én jobbra balra számoltam volna mennyi, és a rövidebb a választott. De jobbat írtak itt mások a 12-vel.
(#) Ashen16 hozzászólása Nov 29, 2016 /
 
Jó estét!
Sajnos nem sikerült megoldani a problémát. Utánanéztem és a két PIC teljesen hasonló, legalábbis ami a kódban használt portokat illeti. Átírtam a változók címét,mert arra szükség volt. Van ötlet hogy hol kell még módosítani?
(#) Bakman válasza Ashen16 hozzászólására (») Nov 30, 2016 /
 
Idézet:
„Utánanéztem és a két PIC teljesen hasonló...”
Nem néztél jól utána.
Idézet:
„...legalábbis ami a kódban használt portokat illeti”
Kevés olyan kód van, ami nem használja a portokat, már ha jól értem a felvetést.
(#) Ashen16 válasza Bakman hozzászólására (») Nov 30, 2016 /
 
Nem jól értetted!
Én úgy értettem, hogy ugyan azok a portok amelyeket a PIC16F84-es használ mind a két PIC-ben megvannak.
(#) mrobi válasza Ashen16 hozzászólására (») Nov 30, 2016 /
 
Véletlen volt, ne haragudj. Majd ha gépnél leszek eltávolítom.
(#) Bakman válasza Ashen16 hozzászólására (») Nov 30, 2016 /
 
Sőt, minden PIC mikrokontrollerben hasonló módon nevezik el a portokat. Általános az is, hogy az azonos lábszmú kontrollereken azonos lábkiosztások láthatóak (családon belül). PIC16F84 és PIC16F887 között van bőven különbség. PIC18F46K22 is rendelkezik olyan portokkal, mint a PIC16F84-es, mégsem lehet őket egy lapon említeni.
(#) Ashen16 válasza Bakman hozzászólására (») Nov 30, 2016 /
 
Ebben az esetben természetesen nem egyezik a lábkiosztás,de ilyet én nem is állítottam, csak hogy a portok és a regiszterek egyeznek, az adott regiszterek amik a programban használatosak azonos bankokban vannak.
(#) Hp41C válasza Ashen16 hozzászólására (») Dec 1, 2016 /
 
Nem a potoknál van az eltérés, hanem számtalan egyéb helyen:
- A 16F887 rendelkezik A/D -vel és komparátorral, ezért a portbitek egy része analóg módban van a reset után. Át kell állítani digitális I/O mórda.
- A 16F88x -ben az általános célú RAM 0x20 -címen kezdődik, a 16F84 -ben 0x0C -n
- A 16F84 -ben, ha az 1. lapon levő RAM területet (0x8C .. 0xCF) használod, a 0. lapon levő területet éred el, a 16F887 -ben ez két külön adatterület.

A többi különbség nem számít (azt hiszem) ha csak ezt a programot nézzük.
Mégiscsak el kellene olvasni ezt a két adatlapot...
A hozzászólás módosítva: Dec 1, 2016
(#) Hp41C válasza Hp41C hozzászólására (») Dec 1, 2016 /
 
Ehhez a kapcsoláshoz rengeteg program van 16F628(A) -ra is.
A hozzászólás módosítva: Dec 1, 2016
(#) gazspe hozzászólása Dec 1, 2016 /
 
Sziasztok!
Teljesen kezdőként kérdeznem:
PIC configbitjeinek beállítását egy C projektben mplab generátora assemblyben dobta ki. Beletehetem az assembly configot a C source fájlba, vagy írjam át C-re?
Válaszokat köszönöm.
(#) or70eg hozzászólása Dec 1, 2016 /
 
Kérem mondja meg Valaki, hogy Picall programozó szoftverrel Juhász féle (mechatronika) égetőben elhelyezett 16F628 as Pic hex fájlait hogyan lehet kiolvasni, törölni esetleg módosítani? Nagyon köszönöm előre is!!
Következő: »»   879 / 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