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   125 / 1210
(#) NyariG hozzászólása Aug 13, 2011 /
 
Itt egy kodrészlet ami tökéletesen müködik:
  1. MOTOR1
  2.        
  3.         BCF             ADCON0,CHS0
  4.         CALL    ANALOGMERES
  5.         MOVWF   ANALOG1
  6.         XORWF   LEPTETO1,W
  7.         MOVWF   T1
  8.         ;BTFSC  STATUS,Z
  9.         ;CLRF   LEPTETO1
  10.         ;BSF    ADCON0,CHS0
  11.         ;CALL   ANALOGMERES
  12.         ;MOVWF  LEPTETO2
  13.         MOVF    LEPTETO1,W
  14.         MOVWF   PORTD
  15.         GOTO    MOTOR1


Ez meg nem müködik:

  1. MOTOR1
  2.        
  3.         BCF             ADCON0,CHS0
  4.         CALL    ANALOGMERES
  5.         MOVWF   ANALOG1
  6.         XORWF   LEPTETO1,W
  7.         MOVWF   T1
  8.         ;BTFSC  STATUS,Z
  9.         NOP
  10.         ;CLRF   LEPTETO1
  11.         ;BSF    ADCON0,CHS0
  12.         ;CALL   ANALOGMERES
  13.         ;MOVWF  LEPTETO2
  14.         MOVF    LEPTETO1,W
  15.         MOVWF   PORTD
  16.         GOTO    MOTOR1


Pedig csak annyi a különbség hogy ebben van egy NOP is.
A "LEPTETO1" regisztert egy TIMER0-ás megszakítás lépteti mindig egyel nagyobb értékre. Elsőnél tökéletesen működik másodiknál nem számol... mi lehet a baj? Teljesen mindegy hogy nop vagy más parancs van ott mindegyiknél ezt csinálja. Vagy ez a tipikus 104 es kondi hiánya a táplábról? Sajna nincs nálam ilyen kondi mivel épp elvagyok otthonról utazva . de ha ez lehet a hiba akkor abba is hagyom az egészet míg haza nem érek.
(#) kissi válasza NyariG hozzászólására (») Aug 13, 2011 /
 
Az a kérdés, hogy ez a programrészlet hol helyezkedik el a programodban?! A 16-os sorozatnál oda kell figyelni a laphatárokra ( 2k ! ), mert nem fog tudni jó helyre ugrálni ( olvasd el a GOTO-val kapcsolatos részt a pdf-ben és nézd meg az ábrákat is! ) !

Ha pont laphatáron vagy, akkor ezt fogja csinálni !

Steve
(#) icserny válasza NyariG hozzászólására (») Aug 13, 2011 /
 
Nem csak a sebesség számít, hanem az is, hogy Timer1 számlálója 8 vagy 16 bites.
(#) NyariG válasza kissi hozzászólására (») Aug 13, 2011 /
 
Attól tartok itt nem ez a megoldás mivel a 0059 ben van a legutolsó adat.

pic16f877.jpg
    
(#) trudnai válasza NyariG hozzászólására (») Aug 13, 2011 /
 
A 100nF kondi kell oda igen. Ez a nop-os dolog egy ufo, vagy a kondi hianya vagy pedig valamit nem tudunk ami kellene ahhoz, hogy kideuljon mi van.
(#) kissi válasza NyariG hozzászólására (») Aug 13, 2011 /
 
Még egy lehetőség: a Watchdog nincs bekapcsolva ( nem tudom előtte esetleg mennyi idő telik el ! ) ?

Steve
(#) NyariG válasza trudnai hozzászólására (») Aug 14, 2011 /
 
Hát akkor ha hazaérek berakom a kondit tesztelgetem, még hátha változik valami és közzéteszem az eredményt.
(#) brato hozzászólása Aug 14, 2011 /
 
Üdv!

A PIC16f877-es elmenne 20.480 MHz-es kvarcról?
Csak ez van itthon.
(#) potyo válasza brato hozzászólására (») Aug 14, 2011 /
 
16F877-ből van 4MHz-es változat, az nem biztos, hogy menne. A 20MHz-es biztosan.
(#) brato válasza potyo hozzászólására (») Aug 14, 2011 /
 
Akkor ez szerintem 20MHz-es. a tipusa: 16F877-20/L
(#) potyo válasza brato hozzászólására (») Aug 14, 2011 /
 
Igen.
(#) ferkoo hozzászólása Aug 15, 2011 /
 
Sziasztok, egyszer már kértem segitséget, de biztosan bennem van a hiba hogy nemkaptam. Szoval ha tudna valaki segiteni nagyon megköszönném! Mellékelem a problémám forrását, aki tud segiteni nekem ne fogja vissza magát! Köszönöm, 4Mhz röl menne a 12F508-Pic

swich pwm.asm
    
(#) potyo válasza ferkoo hozzászólására (») Aug 15, 2011 /
 
(#) joci1987 hozzászólása Aug 15, 2011 /
 
üdv,

Először is köszönöm az eddigi segítségeket
Már sikerült bemeneteket is csinálnom de van egy kis probléma. A beállítások rész szerint a GP3/MCLR/VPP is bemenetre van állítva, de mégsem működik megfelelően, míg, ha a GP2-t használom az tökéletesen működik.
Miért lehet ez?
Elküldtem a programomat is hátha abban van a hiba.
(A Start részt nem én írtam, hanem a pic könyvéből másoltam ki - nem is értem ezt a rész igazából. Láttam, hogy ez beállít két bemenetet és négy kimenetet és beszúrtam a programomba)

villogo.asm
    
(#) potyo válasza joci1987 hozzászólására (») Aug 15, 2011 /
 
A konfig biteknél be kell állítani, hogy az MCLR láb ne reset legyen, hanem digitális bemenet.
(#) trudnai válasza ferkoo hozzászólására (») Aug 16, 2011 /
 
Idézet:
„Sziasztok, egyszer már kértem segitséget, de biztosan bennem van a hiba hogy nemkaptam.”


Valoban! Pl leirhatnad mi a problema (mert ugye azt nyilvan Te sem varod el tolunk, hogy a forras kodot elkezdjuk bogaraszni, kitalaljuk annak mit kellene csinalnia es egyaltalan milyen hardveren, es akkor ki is javitsuk ha mar ugy ott vagyunk). Tehat a hardver reszet is definialnod kellene, es, hogy mit kellene cinalnia az eszkoznek, es akkor ahhoz kepest mi nem klappol.

A hiba / problema leirasan kivul meg azt is jo lenne ha megosztanad velunk, hogy eddig mivel probalkoztal es ezeknek a probalkozasoknak mi volt az eredmenye.
(#) ferkoo válasza trudnai hozzászólására (») Aug 16, 2011 /
 
Természetesen nemvárom el hogy helyettem kijavitsa bárki a kódot, elnézést kérek mindenkitöl de nemvagyok túl gyakorlott fórumozó(ami azt illeti a pic-el is most kezdtem el foglalkozni), bár több hónapja olvasgatom a hsz-eket illetve egyéb forrásokat, azért vanmég mit bepótolnom ! A 12C508 ra épülö kapcsolás szerint 2 nyomógomb (osc1, osc2)testre huzásával ,lehetne szabályozni a kimenő frekvencia kitöltési tényezőjét fel-le, ami 61 hz-re van beállitva. A kapcsolás eredeti kitalálója 4Mhz belsö oscillátort használ(amit nemigazán értek, a pic adatlapján nemtaláltam meg). Mplab-al probálkozom, úgy gondolom kezdőknek is elég érthető, első nekifutásra átnéztem a mov utasitásokat a subrutinokbol visszatéréseket illetve a megszakitásokat, az ellenörzésnél talált 26 hibát a kódban de hiába nézem nemtalálom. A segitséget előreis köszönöm!
(#) edison14 válasza ferkoo hozzászólására (») Aug 16, 2011 /
 
Nem tudom hogy hányas MPLAB-ot használod de én nem így csinálnám az elejét mert már ott sok hibát látok. Az első hogy ahol kommentet akarsz ott a sor elején mindenhol kell lennie pontosvesszőnek. Úgy tudom az MPLAB-ban nincsen olyan funkció hogy a két pontosvessző közti részt ha több sorból áll is kommentnek fogja venni. A másik hogy én a kódot az elején így csinálnám:
  1. LIST p=12c508
  2. #INCLUDE <P12C508.INC>
  3. __CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_ON

Szerintem így érdemes csinálni bár nálad nem tudom hogyan lehet az MCHIP_Tools mappában az INC fájlod. Szerintem használj újabb fordítót pl 8.73 vagy a 8.76 ami most e legújabb.
  1. ORG    H'000'
  2. MOVWF  OSCCAL ;Move internal trim value to osccal
  3. GOTO   MAIN

Itt nem tudom hogy milyen értéket helyezel az OSCCAL regiszterbe mivel semmilyen visszaugrást nem találtam és nem is lett volna értelme. Ezzel valójában a belső oszcillátor értékét állítod be. Itt valami ilyesminek kellene lennie:
  1. ORG  0
  2. MOVLW    0b'0000XXXX'
  3. MOVWF    OSCCAL
  4. GOTO       MAIN

Az adatlapban megnézed, hogy az OSSCON felső 4 bitjét mire kell állítanod hogy megkapd a 4MHz-es órajelet. Első ránézésre ennyit találtam.
(#) ferkoo válasza edison14 hozzászólására (») Aug 16, 2011 /
 
Köszönöm a gyors választ, kiis probálom nemépp a legújabb Mplabot használom(6.61) megprobálom befrissiteni!
(#) zenetom válasza ferkoo hozzászólására (») Aug 16, 2011 /
 
A 6.61-es verzió "kicsit" régi! A hivatalos Microchip oldalról le tudod tölteni a legújabb verziót.
Én a 8.43-ast használom, de ajánlott a legújabb verzió használata.
(#) Hp41C válasza zenetom hozzászólására (») Aug 16, 2011 /
 
A 8.73 illetve 8.73a verzióknak sok problémája volt - kihagyható... Már a 8.76 -nál járnak. Az újabbak viszont mininum XP -t igényelnek.
(#) qvasz2 válasza Hp41C hozzászólására (») Aug 16, 2011 /
 
Ez biztos? Pár napja töltöttem le, és most is ha frissítést kerestetek vele a 8.73-at hozza: MPLAB IDE v8.73.
Vagy ez nem ugyanaz?
(#) vilmosd válasza edison14 hozzászólására (») Aug 16, 2011 /
 
Jo az ugy ahogy volt. A regebbi 12C, 12F PIC-ek tartalmaztak a program memoria utolso cimen egy OSCCAL erteket, es a PIC Reset-kor betoltotte a W regiszterbe ezt az erteket, es ezert van a 0 cimen a movwf OSCCAL utasitas.
(#) edison14 válasza vilmosd hozzászólására (») Aug 16, 2011 /
 
Értem. Ez legalább jó megoldás mert egyből a program kezdetekor beállítódik az oszcillátor.
(#) Hp41C válasza qvasz2 hozzászólására (») Aug 16, 2011 /
 
(#) edison14 válasza Hp41C hozzászólására (») Aug 16, 2011 /
 
Mondjuk az MPLAB szoftverfrissítője nem a legjobb. Én ahányszor próbáltam (8.5-nél sem írta ki hogy van frissebb pedig volt) mindig azt írta hogy az a legújabb amim van. Tehát ezek szerint erre nem nagyon lehet támaszkodni.
(#) vilmosd válasza edison14 hozzászólására (») Aug 16, 2011 /
 
Mert miert jo ha allandoan nyaggat egy program hogy "Frissits-frissits!". Az altalanos felhasznalo szempontjabol a 8.01 es a 8.76 kozott csekely kulonbseg van. Legfeljebb belekerulnek a legujabb eszkozok, meg egy-ket csicsa. Mukodeset ugyis a ASM fordito hatarozza meg. Azt pedig nem szoktak minden heten valtoztatni.
(#) icserny válasza vilmosd hozzászólására (») Aug 16, 2011 /
 
Idézet:
„Jo az ugy ahogy volt.”
Nem lesz az úgy jó, ahogy volt, mert kell elé egy CALL 3FFh (vagy ahol van a memória vége) utasítás, ami feltölti WREG-et a gyári beállítással.

De előtte meg kell nézni a bankot is, mert pl. PIC12F629 esetén OSCCAL a BANK 1-ben van. Az adatlap ajánlása:
  1. BSF STATUS, RP0 ;Bank 1
  2. CALL 3FFh ;Get the cal value
  3. MOVWF OSCCAL ;Calibrate
  4. BCF STATUS, RP0 ;Bank 0
(#) edison14 válasza vilmosd hozzászólására (») Aug 16, 2011 /
 
Igen ez igaz csak ha már van akkor működjön. Ha meg nem akarom hogy nyaggasson akkor meg kikapcsolom. De ez pl fontos lehet azok számára akiknek régebbi verzió van mint például frekko-nak. Lehet hogy ő nem is tudta hogy van frissebb és ezt a szoftver sem mutatta neki tehát nem is tudott utána járni. Mondom ez főleg olyanoknál látszik meg akik régebbi verzióval dolgoznak az iskolában vagy ezt olvassák egy régóta nem frissített weboldalon. Viszont elég sok javítás is van benne ami nem csak az assembler részére vonatkozik hanem magára a program működésére és bugokra. De ez már nem ide tartozik hanem inkább a microchip szakembereire.
(#) Hp41C válasza vilmosd hozzászólására (») Aug 16, 2011 /
 
Szia!

Nem tudom mennyire érinti az átlagos felhasználót, hogy egy (esetleg több) teljesen új kontroller család jelent meg, amihez a fordító makróit, definícióit (nem beszélve a "bevasalt" dolgokról -- pl. 16F memóriája nem lehet 8K -nál nagyobb, stb) javítani, átdolgozni kell. Megjelent pl. a Enhanced Mid-Range Architecture. A szimulátor programrészben is kellett módosítani, hiszen az elmített kontrollereknél máskép mennek a bankválások, a nagyobb memória méret miatt az ugrások és az indirekt memória kezelés.
Elterjedtek a 16 - 32 bites mikrokontrollerek is...

A 8.01 megjelenése - 2008 január - óta nagyon sok új kontroller jelent meg...
Következő: »»   125 / 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