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   597 / 1210
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Szia! Bocsi! Igen láttam csak belegabalyodtam a kódba. Egyébként assemblyben biztos, hogy lehet ilyet csinálni? A "dw" mit jelent? nem rémlik, hogy láttam volna korábban...
A hozzászólás módosítva: Nov 25, 2014
(#) nedudgi válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
Ez csak egy egyszerű assembly makró, amivel előre lehet definiálni egy táblázatot a programmemóriában. Feltételezem, elég lehet a feladatra 16/32 fix érték. Az A/D átalakítás eredményéből szerintem mindenképpen érdemes az alacsonyabb értékű biteket nullázni.
A dw egy szóban (két egymás utáni bájtban) helyez el értéket.
A hozzászólás módosítva: Nov 25, 2014
(#) don_peter válasza Szpisti hozzászólására (») Nov 25, 2014 /
 
Valami nem stimmel a belinkelt forrással..
Nem lehet fordítani és átírni pedig nem szeretném az egészet..
Szerintem alapból is hibás...

p12f629.rar
    
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Nem látom át valamiért... A táblázatot értem, a dw-t is értem már, de a dw sorában lévő többit nem értem.
  1. dw      .1000000/(szam/.60)

Ez mit is csinál tulajdonképpen?
(#) nedudgi válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
Előre kiszámolja a periódusidőt. Mivel korlátai vannak a MASM matematikai képességeinek (csak integer kifejezést tud) át kellett rendezni a képletet.
periódusidő= 1/fordulatszám (másodpercenként) mikroszekundum. Azért kell 60-al osztani, mert a percenkénti fordulatszámot ismerjük. Levegőpontosan könnyű lenne, de nekünk alkalmazkodni kell a lehetőségekhez.
A hozzászólás módosítva: Nov 25, 2014
(#) Szpisti válasza don_peter hozzászólására (») Nov 25, 2014 /
 
Hát akkor hagyd az egészet ha hibás...
(#) Szpisti válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Akkor mi quittek vagyunk
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Hát ez egész más megvilágításba helyezi a dolgokat. Nem is tudtam ilyet lehet csinálni, én eddig kínlódtam az osztórutinokkal, de ezek szerint nincs is rá szükség??? Valahol lehet találni leírást róla, hogy milyen matek kifejezéseket, hogyan lehet megvalósítani? EZT találtam, de nem látom benne, csak a dw-t.
(#) Szpisti válasza Szpisti hozzászólására (») Nov 25, 2014 /
 
Nem hittem volna, hogy ekkora probléma... Mégiscsak kénytelen leszek megoldani cmosokkal...
(#) nedudgi válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
3.4 és 3.5 fejezet. A 69. oldalon vannak a kifejezésekben használható műveletek felsorolva. Vigyázni kell vele, mert a programbeli címkék csak korlátozottan használhatók fel.
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Mekkora királyság! Még azt kérdezném, hogy meddig lehet ezzel elmenni? Mármint arra gondolok, hogy ha jól értem a dolgot akkor a decimális 100000 amit írtál a képletbe az már nem fér bele az egy szóba sem. Mekkora a legnagyobb érték amit kezelni tud?
(#) nedudgi válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
Az biztos, hogy a kifejezés eredménye 8, vagy 16 bites lehet. 32 bites, előjel nélküli szám lehet egy közbenső érték. (3.4 fejezet)
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Hát most már biztos az agyadra mentem, de egyet még muszáj kérdeznem, mert nem fogok tudni aludni Az osztás, szorzásnál a tagok lehetnek változók is vagy csak konstansok?
(#) nedudgi válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
Lehet ciklusokat szervezni, azoknak a változói szerepelhetnek a kifejezésekben, de ezzel nem foglalkoztam. A kifejezésekben a változók címe (cimkéje) szerepelhet, az értéke nem.
(Ha az agyamra mennél, azt észre fogod venni.)
A hozzászólás módosítva: Nov 25, 2014
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
Egyszerűsítsünk: valtozo1 * valtozo2 ezt így lehet? Az eredményt hova teszi? W-be?
(#) nedudgi válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
Na ez az, amit nem tud megcsinálni.
Olyan értékek használhatók fel a kifejezésekben, amik a fordítás, de legkésőbb a szerkesztés idejekor ismertek. Ha ez nem dönthető el egyértelműen, elkezd pampogni.
A hozzászólás módosítva: Nov 25, 2014
(#) ktamas66 válasza Pali79 hozzászólására (») Nov 25, 2014 /
 
Ezeket a számításokat nem a PIC végzi el, hanem a fordító program, és az eredményt fordítja bele a programba .
(#) Pali79 válasza nedudgi hozzászólására (») Nov 25, 2014 /
 
A fenébe! Na sebaj, így is haladtam valamit. Köszi!
(#) Pali79 válasza ktamas66 hozzászólására (») Nov 26, 2014 /
 
Igen most már tiszta, csak gondoltam itt is lehet olyat mint magasabb szintű nyelven írt programoknál láttam, hogy csak beírja hasonló módon a képletet a forrásba és kész. De hát bilibe lógott a kezem.
(#) don_peter válasza Szpisti hozzászólására (») Nov 26, 2014 /
 
Biztos nem lehet olyan nagy probléma, de úgy foglalkozni valamivel, hogy alapjaiban sem jó, és ráadásul nem tudni pontosan milyen környezetben és milyen fordítóval dolgot az eredeti író.
Tele van ASM kóddal is a C forrás ami azért kicsit furcsa.
Legfőképpen a regiszterek beállítását bízta ASM-re az egyéb sallangot meg C-ben írta, elvileg..
A másik gond pedig, hogy a fórdító alapból, önmagába nem is ismerte fel a PIC-et.
Ráadásul mikor már megtaláltam, hogy melyik állomány tartozik hozzá, kiderült, hogy a regiszterek és port megnevezések teljesen mások..
Szóval ezt, így csak sok idő és energia lenne újra írni és persze ismerni kellene azt is, hogy mihez kell és mit kellene valójában tudnia.., na meg persze, hogy ez eredetileg jó e volt
Hidd el, ha nem kellene előröl átírnom már rég kész lenne...
(#) nedudgi válasza Szpisti hozzászólására (») Nov 26, 2014 /
 
Mit kellene ennek a kütyünek csinálni? (Emlékeim szerint van egy hasonló projektem.)
(#) Szpisti válasza nedudgi hozzászólására (») Nov 26, 2014 /
 
Köszi hogy foglalkozol vele
Gyakorlatilag van egy digitális effektprocesszor modulom, ami tud 16 effektet (chorus, flanger, visszhang, stb..) Ezek címzéséhez kellene valami.
A dolgot meg lehetne oldani egy mechanikus gray-kód 16 állású kapcsolóval is.
Az effektet én viszont lábpedálba szeretném építeni, ahol egy up/down kapcsolóval lehetne a szükséges pozicióba állítani. A legszebb persze az lenne, ha egy vagy két 7szegmenses kijelző mutatná, hol áll a számlálás 0-15ig. Ez a linkelt kapcsolás 4 leddel mutatja, kicsit fapados megoldás, de kézenfekvőnek bizonyult.
(#) nedudgi válasza Szpisti hozzászólására (») Nov 26, 2014 / 1
 
Mondtam én, hogy volt egy hasonló projekt... Folytathatjuk privátban is, vagy keressünk neki egy topikot.
(#) vicsys válasza nedudgi hozzászólására (») Nov 26, 2014 /
 
Ha marad időm, szivesen segítek.
(#) edison14 hozzászólása Nov 26, 2014 /
 
Sziasztok!

Van egy kis problémám egy LED villogtató programmal.

A BTG PORTB0,1 hatására a PORTB kimenete a szimlátorban billeg, de a Proteusban állandóan magas szinten marad. A sima BSF BCF kombinációval megy a proteus szimulátorában is.

Nem tudom hogy hol hibáztam, tudnátok segíteni?
(#) brato válasza edison14 hozzászólására (») Nov 26, 2014 /
 
Milyen nyelven van a programod, és milyen mikrovezérlőre?
(#) Hp41C válasza edison14 hozzászólására (») Nov 26, 2014 /
 
Mérd meg a feszültséget az RB0 lábon. Ha van oszcilloszkópod, nézd meg a szinteket. Valamiért alacsony szintet olvas be a kontroller. A porton a kiadott magas szint feszültsége nem éri el a bemeneti magas szint minimális feszültségét. Analóg mód nincs kikapcsolva erre a lábra.
Ha használható a btg utasítás, akkor a LATB regiszter is használható. A btg LATB0, ACCESS utasítással biztos villogna.
A hozzászólás módosítva: Nov 26, 2014
(#) matheattila válasza edison14 hozzászólására (») Nov 26, 2014 /
 
Szia, ha csak a B0 melletti kis piros négyzetet látod az nem azt jelenti, hogy csak logikai 1 van rajta...
Köss rá egy oszcilloszkópot és ott majd megválik, hogy villog vagy nem
(#) edison14 válasza Hp41C hozzászólására (») Nov 26, 2014 /
 
Szia!

Sikerült elindítani. A LATB-s megoldás volt a kulcs. PIC18F2455-ös vezélrőn tanulok, most lehet hogy hülyeséget fogok írni de a PORTB- csak kiolvasásra volna alkalmas a LATB pedig kiírásra?
(#) Pali79 hozzászólása Nov 26, 2014 /
 
Szimulálni szeretnék egy programot Mplab alatt, de ahogy elindítom a szimulációt ez a hibát adja:
CORE-E0001: Stack over flow error occurred from instruction at 0x0000da
Ha újraindítom akkor a végén lévő szám változik valamelyest.
Következő: »»   597 / 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