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   387 / 1210
(#) kissi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Idézet:
„packed code_pack”
után beírod, hogy hova szeretnéd írni az adatokat a programmemóriába, a code után pedig, hogy hova akarod a programot írni ( én most nem írtam semmi programot, csak az adatok tárolását próbáltam ki gyorsan egy korábbi projektbe beillesztve! ) ! "Sima", abszolut kódban nem megy ( próbáltam! ), csak a relokálható kódban engedélyezte !

szerk.:
Idézet:
„Illetoleg latom, ott a codepack vegen de akkor mitol relokalhato, ha megadod a cimet?”
Attól, hogy relokálható még köthetek bizonyos programrészletekre kikötéseket !
A hozzászólás módosítva: Márc 24, 2013
(#) bbalazs_ válasza kissi hozzászólására (») Márc 24, 2013 /
 
Hálás vagyok, hogy ram aldoztad az idodet.
Ugy tunik, a direkt assemblerem ezt a relokalhato dolgot nem tudja.
Bent a cegnel van mplabom, akkor ott azzal fogom megcsinalni es belemelyedek ebbe is.

Meg egyszer koszonom a faradozasodat!
(#) nedudgi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Azt meg tudod tenni, hogy #define-al definiálod, és kommenteled a byte-ok értékeit. Ezután a tényleges definiálásnál pedig összevonod a kettőt egy sorrá. Nem értek a C-hez, de valami "<<" szerű dolog kell hozzá.
(#) kissi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Miért nem az MPLAB-ot használod ?!
(#) kissi válasza nedudgi hozzászólására (») Márc 24, 2013 /
 
Nem ezzel volt a baja, hanem, hogy páros darabszámot kellene neki soronként létrehozni... na ez "macerás" !
(#) bbalazs_ válasza kissi hozzászólására (») Márc 24, 2013 /
 
Kiver a viz, hacsak ezekre a PROJECT nevu baromsagokra gondolok...
en a sima mpasmwin-t hasznalom, ami egybol hexet keszit.

En mindent egy fileba szoktam tenni, a forditas utan egybol programozom is be.
A programozomat en irtam, en keszitettem a hardvert hozza, nem kompatibilis az IDE-vel.
(#) kissi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Idézet:
„A programozomat en irtam, en keszitettem a hardvert hozza, nem kompatibilis az IDE-vel.”
Ez OK, csak így minden PIC-hez "szenvedned" kell egy égetési metódust, tesztelni, míg egy PK2-t 3-4 ezer Ft-ból utána tudsz építeni és nagyon sok PIC-hez jó ( sőt, ha HP41C kolléga megosztja a fejlesztését, akkor már-már "nagyágyú" lesz! ! )...
Az MPLAB szerintem jól használható, a debuggolás része nagyon hasznos, a PK2 integrálásával akár debuggerként is, szintén sokat segíthet !
Idézet:
„Kiver a viz, hacsak ezekre a PROJECT nevu baromsagokra gondolok...”

Nem olyan rossz dolog ez, hogy minden egy projektben van, mert egy helyről elérem a hozzátartozó dolgokat ( adatlap, leírás, include, header fájlok ) és nagyobb programoknál nagyon hasznos, hogy több modullal lehet dolgozni!
Persze tudom az építés és az önálló alkotás öröme ( nekem is van ilyen, még egy régi DOS-os verziót akarok kiváltani egy régi projektemben lévő 80C535-höz ) !
Örülök, hogy tudtam segíteni !
Steve
A hozzászólás módosítva: Márc 24, 2013
(#) matheattila hozzászólása Márc 24, 2013 /
 
Sziasztok, senkinek semmi ötlete a tegnapi problémámmal kapcsolatban?
Bővebben: Link
(#) kissi válasza kissi hozzászólására (») Márc 24, 2013 /
 
Nem figyeltem, hogy a gépelés "eltolta" az ablakot !
(#) kissi válasza matheattila hozzászólására (») Márc 24, 2013 /
 
Nem használom a Proteust, de:
-RESET után ugyanazt csinálja, mint bekapcsoláskor, kivéve, hogy a RAM megőrzi a tartalmát ( néhány regisztertől eltekintve! ) --> ha nem indul, akkor valamelyik cellába bekerült ( beírtál ! ) valami, ami inicializáláskor nincs megfelelő alaphelyzetbe állítva!
Azt írod, hogy másik mikrovezérlővel jó --> ebből nekem az következik, hogy valószínűleg rossz a szimuláció ( ez alapján nem valószínű az első pont! ) --> próbáld ki "élesben" !
Steve
(#) bbalazs_ válasza kissi hozzászólására (») Márc 24, 2013 /
 
Hobbista vagyok, nem ebbol elek. Idokorlat sincs. Keves PIC tipust hasznalok, azokhoz megirtam mar a forditohoz szukseges reszeket.
Altalaban akkor szoktam valami ujra valtani, ha a rendelkezesre allo, megszokott eszkozokkel nem tudom a problemat megoldani. Most tanulgatom mar az MPLAB-ot.
Ugy tunik, a c-t sem lehet kikerulni...
(#) matheattila válasza kissi hozzászólására (») Márc 24, 2013 /
 
Ki fogom próbálni, csak jelenleg a kollégiumban nincs rá módom, mert a mikrovezérlő és egyéb cuccok mind otthon vannak, így csak szimulációban tudom tesztelni, amúgy csak azért lenne fontos, mert egy projektemhez kell szerdára, de szerencsére elég szimuláció is
Attila
(#) Lüke Aladár hozzászólása Márc 24, 2013 /
 
Üdv.!

Egy fűtésvezérlővel küzdök: adott a szonda, ami egy 1kohmos ellenállással sorba kötve pont a hőmérséklet kétszeresét adja (analóg) értékül. Ha ezt osztom kettővel, pontosan mér 10 és 40°C között mivel csak szobahőmérsékleten lesz használva ez nekem tökéletes. Van még egy potméter is, ami a referenciaértéket állítja be. Ezt eddig megcsinálni kb. 20 perc volt, de a többivel szívok egy napja.
A gond ott kezdődik, hogy fokonként lépked, nekem pedig arra lenne szükségem, hogy fél fokot tudjak értelmezni. Tehát ha be van állítva 22°C akkor ne 23°C-nál kapcsoljon, hanem 22.5°C-nál. Ezt hogy lehet kivitelezni? Rettenetes gyenge voltam matekból mindig is, szóval biztosan valami egyszerű a megoldás csak még nem jöttem rá.
(#) Attila1975 válasza pjg hozzászólására (») Márc 24, 2013 /
 
Szia,

küldtem mailt a címedre amit itt az oldalon találtam.

Üdv


Attila
(#) Hp41C válasza Lüke Aladár hozzászólására (») Márc 24, 2013 /
 
Szia!
Idézet:
„...Ha ezt osztom kettővel...”

Ne oszd 2 -vel. A referencia értéket szorozd meg 2 -vel és adj hozzá 1 -et. Ha ezeket hasonlítod össze, kész a fél fokos kapcsolás.
(#) kissi válasza Lüke Aladár hozzászólására (») Márc 24, 2013 /
 
Ha analóg, akkor folytonos, nem "fokonként lépked", legfeljebb Te nem tudod megfelelően feldolgozni !
Így látatlanban, ha felerősíted a jelet a kétszeresére, akkor a páratlan értékek a fél fokot jelentik, míg azután 4-el osztva megkapod a hőfokot!
pl.: Azt írtad, hogy X-et osztod kettővel és így 10 ... 40 C-ig mér.
Ha 2X-et nézek, akkor 20 ... 80 C lenne, de itt minden a duplája, azaz 40 --> 20 C, de 41 az 20,5 C ! ezután osztva 2-vel ( az eredetit 4-el ) már eltűnnek a fél fokok, de azt már korábban meg tudtad jegyeztetni!
Remélem érthető volt ?!
A hozzászólás módosítva: Márc 24, 2013
(#) kissi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Az MPLAB helpjét érdemes nézegetni a kép alapján!
Steve
(#) bbalazs_ válasza kissi hozzászólására (») Márc 24, 2013 /
 
Kiprobaltam, jol mukodik mplab alatt, DE
az a baj, hogy tobb uj cimet nem enged megadni, tehat csak egyszer jatszhatom el a packed code_pack xxxx jatekot, utana azt irja, hoigy folytonosnak kell lennie.

  1. code 0x0000
  2.         goto _mainprogi
  3.         return 0
  4.  
  5. packed code_pack 0x0008
  6.         retfie 0
  7.         return 0
  8.  
  9. packed code_pack 0x0018
  10.         retfie 0        ;high priority int
  11.         return 0



Szoval a start, az inthi, intlo, data, prog reszeknek hogyan adok cimet?
(#) icserny válasza zoox hozzászólására (») Márc 24, 2013 /
 
Idézet:
„hogyan lehet aktiválni a pullup funkciot az RB0-RB7-ig mert csak az RB2-RB7 -ig sikerült”
Próbáld meg ADCON1 = 0x0E; értékadással letiltani az összes analóg bemenetet, TRISB = 0xFF; értékadással beállítani az adatáramlási irányt és töröld az INTCON2 #RBPU bitjét! (# itt a felülhúzás helyett van). Ha előtte mást nem állítottál el, akkor ennyi elég kell, hogy legyen. Hogy a CCS C mit csinál, azt nem tudom...
(#) kissi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Most ezt nem értem: a megszakítási címekre akarsz adatokat rakni ?!
Egyébként közötte program lenne vagy csak az adatokat akarod "szaggatva" berakni ?!
A hozzászólás módosítva: Márc 24, 2013
(#) zoox válasza icserny hozzászólására (») Márc 24, 2013 /
 
Köszi .Ezeket csináltam én is ,de ugy néz ki a dolog hogy megoldodott.
Proteusban szimuláltam és ott nem jól müködött,de a HW-ben már müködik normálisan. PROTEUS se jó mindenre .Köszi a segítséget.
ui: ez már a 2. bug a proteusban 18F4550 uc RB4-RB5 lábát az adatlap szerint csak I/O ban csak I aza bemenetre lehet hsználni és a proteusz simán leszimulálta ,hogy outnak is lehet .Szívtam vele mert 1 hd44780 LCD engedélyező lába volt ezen a porton és szimulátorban jól müködött de HW-n pedig nem.
(#) kissi válasza bbalazs_ hozzászólására (») Márc 24, 2013 /
 
Ez nem jó ( a "packed" csak cimke! ) ?!
Steve
A hozzászólás módosítva: Márc 24, 2013
(#) aroxol hozzászólása Márc 24, 2013 /
 
Sziasztok!

Egy kis segítséget szeretnék kérni. A három részt szeretném külön működtetni,
de valahogy nem akar összejönni. A páciens pic18f46k22
  1. ORG 0000H
  2.         GOTO LED
  3.                        
  4.         ORG 0008H      
  5.         CALL HANG,1    
  6.         RETFIE 1
  7.  
  8.         ORG 0018H      
  9.         goto IDO
  10.        
  11. LED
  12.         BSF LED
  13.         RETURN 
  14. HANG
  15.         BSF HANG
  16.         RETURN,1       
  17. IDO
  18.         BSF IDO
  19.         BRA IDO
(#) matheattila válasza zoox hozzászólására (») Márc 24, 2013 /
 
Üdv, nem tudom, te mit láttál, de az adatlap szerint a PIC18F4550-esnek a csak VDD, VSS, CLKIN és MCLR (RE3) lábai bemenetek, az összes többi (beleértbe az RB4, RB5-öt is) kétirányú! Eddig nem találkoztam olyan PIC-el amelyiknek a B portja ne lett volna kétirányú
(#) nedudgi válasza aroxol hozzászólására (») Márc 24, 2013 /
 
A bsf utasítás operandusa egy memóriaregiszter egy bitje. Te egy utasítás címét adtad meg a programterületről.
Mit szerettél volna csinálni?
(#) aroxol válasza nedudgi hozzászólására (») Márc 24, 2013 /
 
Szia!

Igen bocsánat kicsit elgépeltem. A 0000H, 0008H mellett szeretném a 0018-at futattni ido cimen.
  1. org 0000h
  2.         goto led
  3.  
  4.         org 0008h
  5.         call HANG,1
  6.         RETFIE 1
  7.        
  8. LED
  9.         BSF LED1
  10.         RETURN 
  11. HANG
  12.         BSF HANG1
  13.         RETURN,1       
  14. IDO
  15.         BSF IDO1
  16.         BRA IDO
(#) bbalazs_ válasza kissi hozzászólására (») Márc 24, 2013 /
 
Nem feltetlenul, de a sima code 0x0100-re hibat ad.
A cimkek cimei csak pelda, ha packed1 es packed2, tok ugyanezt csinalja, nincs jelentosege, odaig el sem jut, hogy a cimkek azonos neve miatt panaszkodjon.

Tehat a kerdes, hogy a megszakitasok es a progi kezdetet hogyan adom meg.
Ma szavakkal, ha mondjuk harom, egeszen eltero reszre akarok pakolni, monduk 0x0100, 0x0200 es 0x0300 par byteot, akkor a koztes terulete ne kelljen nullakkal feltolteni.

Vagyis ha keverem mondjuk a tobb adatot a tobb koddal, akkor mit kell irni?
(#) nedudgi válasza aroxol hozzászólására (») Márc 24, 2013 /
 
A kódírás úgy látszik, még nem megy. Még mindig nem világos, mit szeretnél csinálni.
A 00008h címen a megszakítás van, az ott levő szubrutinokat nem szokás közvetlenül meghívni, pláne nem szokás interrupt rutinban olyan szubrutinhívást kiadni, ami az árnyékregisztereket módosítja. Letiltottad az ASM kisbetű/nagybetű megkülönböztetését, hogy kevered a led/LED alakot?
(#) aroxol válasza nedudgi hozzászólására (») Márc 24, 2013 /
 
A 0000 program, a 0008 megszakítás teljesen jól müködik egy programban. A led, hang idöt, csak példának irtam, de a return, return,1 valos, igy tér vissza. Eddig nincs is gond, de a 0018 ba terveznék egy timert ami a fuggetlenül futna az elözöktöl.
(#) nedudgi válasza aroxol hozzászólására (») Márc 24, 2013 /
 
Menjünk vissza a kályhához. Mit értsek azon, hogy nem akar összejönni. Mi a tényleges kód, mi a hibaüzenet, mi a jelenség?
Következő: »»   387 / 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