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   109 / 1210
(#) szitko válasza watt hozzászólására (») Máj 12, 2011 /
 
Igen értem. Köszi mindenkinek a türelmet és a segítséget. Nincs probléma, csak Trudnai írta a 2,5V ref feszt, ami nem annyi, hanem 3,2 .......amit írtam is késöbb.Még az ADRESH-ADRESL-be vagyok belekeveredve un. mint a CCP modulnál a CCPRH-CCPRL-el. Lehet,hogy nem tudok 16 bitben gondolkodni, de ez már az Én gondom.
Mégegyszer köszi mindenkinek.
(#) watt válasza szitko hozzászólására (») Máj 12, 2011 /
 
Pedig csak a számrendszereket és a helyiérték fogalmát kell megértened. Két 8 bites értékből úgy számolod ki a valós értéket, hogy H*256+L. Ez a 256-os számrendszernek felel meg.
Nézd meg azt is, hogy felfelé számláláskor, amikor az L túlcsordul, (amit a C bit jelez a STATUS regiszterben), egyel növelni kell a H-t, miután egy helyiértéken 255-ig lehet számot megjeleníteni, ezért a 256 már a következő helyiérték 1-el való növelésével jár, és az L helyiérték nullázódik(azaz túlcsordul).
Összeadásnál először az L értékeket kell összeadni, majd a H-kat, de ha túlcsorulás volt az L-en, akkor a H-t még 1-el növelni kell.
Nézz fel az oldalamra van néhány matematikai alap rutin!
(#) szitko válasza watt hozzászólására (») Máj 12, 2011 /
 
Köszi Watt, kezd érthetöbbé válni az egész PIC programozás. Még a 80'-as évek végén, egy TVC-n (Videoton Computer) tanultam ASM-ben és Basic nyelven programozni több kevesebb sikerrel,de az valahogy más volt.Valahogy a "Hofmanné Boskovitz Éva" máshogy írta az egésszet, (vagy már akkor se figyeltem oda rendesen) lehet, hogy ezért nem értem meg első nekifutásra, mert az ott leírtak járnak az eszembe.(Az pedig igazából a Z80-ra vonatkozik.)

Amúgy sokat olvasom a honlapodat, csak gratulálni tudok hozzá.
Mégegyszer kösz a segítséget.
(#) watt válasza szitko hozzászólására (») Máj 12, 2011 /
 
Én is Z80-at programoztam először asm-ben. Nem sok elvi különbség van a dolog között, csak a PIC más architektúrájú, amit figyelembe kell venni. Lényeg, hogy ne add fel, és ne hagyd, hogy elmenjen a kedved egy nehezebben emészthető résznél.
(#) szitko válasza watt hozzászólására (») Máj 12, 2011 /
 
Nem szoktam feladni ha nemsikerül valami, csak a tanulás megy nehezen.(kivülálló dolgok miatt.) De az nem ide tartozik.
Köszönöm.
(#) ipijani hozzászólása Máj 15, 2011 /
 
Üdvözlök mindenkit.
Egy kis segítséget szeretnék kérni.
Van egy program, amely egyesével kapcsol 8 kimenetet (PORTA).
Vagyis 8gomb 8 kimenet. Azt szeretném, hogy a kimeneteken binárisan kódolva jelenjenek meg gombok számai.
A 73. sorról van szó. Remélem érthető voltam.
Előre is köszönöm.
Üdv:ipijani

count3 btfss action,7 ;62 new action
goto t3a ;63 no
movf action,w ;64
andlw B'00000111' ;65 mask
xorlw B'00000010' ;66 is it output 2a?
btfss STATUS,Zbit ;67 yes
goto t3b ;68
btfss CV514a,2 ;69 is this bit enabled?
goto t3c ;70 no
btfss action,3 ;71 on or off
goto off3 ;72
bsf PORTA,2 ;73 F2a on
bcf PORTA,3 ; *********
clrf tick1 ;74
clrf time3 ;75 start timer
bcf action,7 ;76 action done
goto ret4 ;77 *********
off3 bcf PORTA,2 ;74 F2a off
bcf action,7 ;75
goto ret6 ;76
t3a nop ;65
nop ;66
nop ;67
nop ;68
nop ;69
t3b nop ;70
nop ;71
t3c movlw 3 ;72 get CV516 time on
movwf EEARD ;73
bsf f0,rd ;74
movf EEDATA,w ;75
btfsc STATUS,Zbit ;76 if zero then always on
goto ret5 ;77
subwf time3,w ;78 compare time
btfsc STATUS,Carry ;79
bcf PORTA,2 ;80 time out so put off
goto ret2
(#) zenetom válasza ipijani hozzászólására (») Máj 15, 2011 /
 

Ez emészthetetlen így ebben a formában!
Töltsd föl az asm fájlt!
(#) ipijani válasza zenetom hozzászólására (») Máj 15, 2011 /
 
A korábban írtaktól kicsit bonyolultabb a dolog, de próbáltam csak a problémára koncentrálni.
Valójában ez egy digitális digitális vasút váltó dekódere.
üdv:
(#) Auf hozzászólása Máj 22, 2011 /
 
Sziasztok!
Szeretném megtudni, hogy mit nem vettem figyelembe, azzal kapcsolatban, hogy az asm-be létrehozott programom végén feltüntetett eeprom adatok, a lefordításkor miért csak 0x1A -ig jelennek meg a hex -ben?
Csatolom a fájlt.
Köszi a segítséget!

LCD_CCP_1.asm
    
(#) Hp41C válasza Auf hozzászólására (») Máj 22, 2011 /
 
Szia!

Próbáld meg több sorban. Csak az első elé kell az org, a többit folyamatosan helyezi el az adat EEProm memóriában..
(#) karaszbandi hozzászólása Máj 22, 2011 /
 
Lenne egy kérdésem a hozzáértőkhöz.
Egy PIC18F4550 sériaszámát lehet e clónozni egy másikba?
Vagyis, átírható e valahogy?
(#) nemgyuri válasza Auf hozzászólására (») Máj 23, 2011 /
 
Szia!
Itt egy minta, nekem ezzel működik:

org 0x2100 ;EEPROM "alap"
dt" Hetfo &0?V"
dt" Kedd &0?V"
dt" Szerda &0?V"
dt"Csutort. &0?V"
dt" Pentek &0?V"
dt"Szombat &0?V"
dt"Vasárnap &0?V"
end
(#) watt válasza karaszbandi hozzászólására (») Máj 23, 2011 /
 
Melyik számra gondolsz konkrétan?
Mert van olyan hogy PIC azonosító(Device ID Word), ami minden 18F4550-nél egyforma(nem lehet átírni, de minek is kéne!)
Aztán van olyan, hogy USer ID, azt szabadon lehet módosítani, 8 bájt méretű.
Vagy netán egy USB-s alkalmazásra gondolsz, aminek semmi köze a 18F4550 "szériaszámához"?
(#) Auf válasza nemgyuri hozzászólására (») Máj 23, 2011 /
 
Sziasztok!
Jó lett ezzel a megoldással:

Idézet:
„org 0x2100 ; eeprom adat
dt h'FF', h'15', h'1E', h'04', h'04', h'04', h'04', h'00'
dt h'1F', h'13', h'1E', h'12', h'1E', h'13', h'1F', h'00'
end”


Köszönöm szépen!
(#) hackerfish hozzászólása Máj 27, 2011 /
 
Sziasztok!
Szeretnék építeni egy PIC-es fénykövetőt.
Ezalapján (csak PIC-kel):Leírás
A kérdésem az lenne, hogy a csatolt kapcsrajz megfelelő -e? Minden irányba nézne egy fotoellenállás. Ezek lehetnek közös fényérzékenység-álító potméteren? Az értékek megfelelőek?

szenzor.jpg
    
(#) hackerfish hozzászólása Máj 27, 2011 /
 
Ja és még valami:
Fotodiódákkal is meg lehet csinálni valami hasonlót?
Úgy hogy a diódák egyik végét Gnd-re, a másikat a PIC bemenetekre kötöm? Ha jól tudom, minél nagyob a fény, annál több áramot termelnek. Ezeket is be lehet olvasni analóg bemenetként?

Ez a fotodióda használható fényérzékelésre?
Hullámhossz: 900nm. Ez beleesik a napfény, és a lámpák hullámhosszába?
Bővebben: Link
Melyik a jobb, az átlátszó, vagy a szűrős (sötétített) lencséjű?
(#) Hp41C válasza hackerfish hozzászólására (») Máj 27, 2011 /
 
Szia!

Ha vezetékkel összekötöd a mérendő A/D bemeneti pontokat, akkor minden bemeneten ugyan azt az értéket fogod mérni... Külön ellenállás / potenciométer kell nekik, hogy az irányt is meg tudd állapítani..
(#) hackerfish válasza Hp41C hozzászólására (») Máj 27, 2011 /
 
Köszi! Igen, valahogy nem volt kerek a dolog...
És mi a véleményed erről? (fotodiódás)
Alkalmas annak megállapítására, hogy melyik oldalon a legerősebb a fény? (PIC-kel együtt természetesen.)
Ha igen, hogy kell csatlakoztatnom a PIC-hez? A zöld a Gnd, azt rákötöm Vss-re. A többit csak úgy kössem a PIC bemeneteire, vagy kell még más is?

szenzor.jpg
    
(#) hackerfish válasza hackerfish hozzászólására (») Máj 27, 2011 /
 
Rajz javítva.

szenzor.jpg
    
(#) Hp41C válasza hackerfish hozzászólására (») Máj 27, 2011 /
 
Szia!

Fotodióda: Az átlátszó tokozású használható a látható fényre is, a sötétített tokozású az infravörös tartományra hasunálható.
A 4 irány fotoérzékelője saját ellenállással alkosson 4 független feszültség osztót, mind a 4 osztási pont menjen egy-egy A/D bemenetre. A 4 bemenetet egymás után kiválasztva, a feszültséget digitális formára alakítva már össze fogod tudni hasonlítani. A legnagyobb érték a legvilágosabb irányt jelenti, ha a foto érzékelő a +5V felöl van az osztókban. Ha van egy 5. A/D csatorna, arra lehet kötni egy potenciométert, azzal lehet egy minimális fényességet beállítani - ezt az 5. csatornát is ki kell időnként választani, átalakítani, tárolni. A többi adatát csak akkor kiértékelni, ha meghaladja az 5. -en mért értéket... A határ értéket lehet digitálisan is eljuttatni a kontrollerbe: usart, spi, I2C felületen keresztül...
(#) hackerfish válasza Hp41C hozzászólására (») Máj 27, 2011 /
 
Hali!
Értem, mire gondolsz, de kíváncsi lennék, hogy ez így is jó -e, és ha nem, miért nem?
A fotodióda fény hatására termel valamekkora feszültséget. Nem lehet ezalapján kiválasztani a legnagyobbat?
Ezesetben maradhat a közös poti nem? Mindegyik kivezetés más mértékben fog eltérni Gnd-hez képest. Vagy rosszul gondolom?
(#) lalca válasza hackerfish hozzászólására (») Máj 27, 2011 /
 
A fotodiódát záróirányban kell bekötni! Fény hatására a dióda visszárama nő meg,amit a vele sorba kötött ellenálláson tudsz mérni.
(#) hackerfish válasza lalca hozzászólására (») Máj 27, 2011 /
 
Szia! Lerajzoltam. Így gondoltad?
Melyiket célszerűbb használni fénykövető robothoz a fotodióda és a fotoellenállás közül?

dioda.png
    
(#) hackerfish hozzászólása Máj 29, 2011 /
 
Végül egy egyszerűbb fotoellenállásos megoldás mellett döntöttem, mert találtam itthon két LDR-t.
Elkezdtem az építést. A motorokat már megrendeltem. A képeken a robot "feje" látható. Szenzorok + PIC + tápcsati + "köldökzsinór" (icsp). A következő lépés a H-híd lesz, meg a Mi a véleményetek, eddig jó?
Az RA0, RA1 ugye tud analóg bemenet lenni PIC16F627-nél?
(#) watt válasza hackerfish hozzászólására (») Máj 29, 2011 /
 
A 627-ben nincs A/D csak comparátor. Olvasd el az adatlapját mi van benne!
(#) hackerfish válasza watt hozzászólására (») Máj 29, 2011 /
 
Hali!
A komparátor használatáról hol olvashatok?
[Az adatlapon is megnézem, de jó volna valami gyakorlati példa is.]
Egy ilyen témájú fórumtopicban belinkelt oldal már nem található:
Bővebben: Link
Rákerestem, és ha jól értem, a komparátor összehasonlít két feszültséget, és ezalapján generál jelet egy digitális kimeneti porton.
(Lehet, hogy hülyeséget mondok, de ez még egyszerűbbnek tűnik, mint átkonvertálni az értékeket + összehasonlítani.)
(#) watt válasza hackerfish hozzászólására (») Máj 29, 2011 /
 
A komparátorról a megfelelő analog irodalmakban olvashatsz. Ugyanilyen van a PIC-ben is. Jól gondolod, egy beállított feszültségnél átbillen a kimenete. Az adatlapban olvashatod a lehetőségeit, beállításait (9. fejezet, 9-2-es ábrán jól megérthető a működése is.).
(#) hackerfish válasza watt hozzászólására (») Máj 29, 2011 /
 
Máris olvasom az adatlapot!
Találtam egy kódot, ami alapján majd elindulhatok:
Bővebben: Link
(#) hackerfish válasza watt hozzászólására (») Máj 29, 2011 /
 
Találtam még ezt is:
Bővebben: Link
Bár nemigazán értem, hogy ez hogy kapcsolódik az összehasonlításhoz...
Átnéztem a belinkelt kódot.
Ez nekem jó is lesz, csak át kell állítanom, hogy ne RA2-t hasonlítsa össze RA1-el, hanem RA0-át RA1-el. És a kimenetet ne az RB0-ra rakja, hanem RB7-re.
Itt átírtam RB7-re:
  1. ORG     4
  2. BCF     PIR1,CMIF               ;itt ezt lenullázom, hogy ha kilépek a megszakításból, akkor megint lehessen megszakítás
  3. MOVLW   B'01000000' ;itt a portb7-es lábon egy ideig 1 lesz

A bemeneteket itt állítom be?
  1. MOVLW   B'00000101'     ;beállítom a komparátorokat, így csak 1 komparátor fog működni, az RA1 RA2-es
  2. MOVWF   CMCON
(#) hackerfish hozzászólása Máj 29, 2011 /
 
Most nézem, hogy RA0 - RA1 nem fog menni:
Bővebben: Link
Csak RA1-RA2 vagy RA0-RA3. Akkor inkább átkötöm az áramkörömet, és megpróbálom használni az eredeti kódot...
Következő: »»   109 / 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