Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   559 / 1319
(#) histu1985 válasza Hp41C hozzászólására (») Aug 28, 2009 /
 
Szia

18F46K20 a PIC típusa. Megnézem az adatlapot hogy mit mond a bemenetek beállítására.

Köszi a tippet.

Köszi lidi a linkeket, megnézem hátha találok benne valami hasznosíthatót.

Megpróbáltam közvetlen IO-ként a lábat üzemelni és rendesen felment magasra és adta az alacsony jelszintet is. Szóval elbizonytalanodtam hogy hardvergond lenne. De még nincs 100%osan kizárva.
(#) watt válasza zsoltee0001 hozzászólására (») Aug 28, 2009 /
 
Igaz, hogy nem ide tartozik, ezért csak még annyit, hogy keményforrasztással, rézlemezből is lehet ilyen feltétet készíteni, vagy egy 4mm átérőjű szűkítőt, csak azzal az a baj, hogy amelyik fúlyó nincs erre felkészítve, lehet, hogy leég, mert csökken a légáramlás sebessége a fűtőszálon.
(#) icserny válasza Hp41C hozzászólására (») Aug 28, 2009 /
 
Idézet:
„Nem írtad meg a kontroller típusát, de a TRISC = 0b10000111; csak a Rx -e állítja bemenetre.”

Helyes az észrevétel, ugyanis kiderült, hogy PIC18F46K20-ról van szó. Az adatlap egyértelmű:

For all modes of EUSART operation, the TRIS control bits corresponding to the RX/DT and TX/CK pins should be set to ‘1’. The EUSART control will automatically reconfigure the pin from input to output, as needed.
(#) frecsko hozzászólása Aug 28, 2009 /
 
Sziasztok.
Lenne egy bátor válálkozó ( Szilva mester ) aki elmagyarázza az A/D portok használatát? Itt az analóg részre gondolnék, hogy hogy smint lehet használni.
(#) kissi válasza szilva hozzászólására (») Aug 28, 2009 /
 
Ez OK, de nem bináris volt a rendelkezésre álló formátum és már az átalakítás is több konverziót igényel, ezért gondoltam, hogy akár az eredi formátumból is dolgozhat!

Mostmár várom a jelentkezését, hogy milyen formában oldotta meg!

Steve
(#) szilva válasza frecsko hozzászólására (») Aug 29, 2009 /
 
Szia!

Nem vagyok mester, csak egy lelkes amatőr. Az A/D-kről meg nem tudom, mi pontosan, amit szeretnél tudni, elég tág témakör. Alapvetően az A/D segítségével a bemeneten lévő feszültség értékét lehet digitális, a PIC által feldolgozható formába (8, 10 vagy 12 biten ábrázolva) átalakítani. Mi a kérdés?
(#) icserny válasza frecsko hozzászólására (») Aug 29, 2009 /
 
Idézet:
„Lenne egy bátor válálkozó, aki elmagyarázza az A/D portok használatát?”

Mi nem érthető az adatlapból, vagy a Referencia Kézikönyvből, vagy ebből a leírásból?
(#) gydanee hozzászólása Aug 29, 2009 /
 
Sziasztok!

Azt akarom meg kérdezni hogy Kónya László úr könyve, a PIC Mikrovezérlők Alkalmazástechnikája c. könyv 3. kiadása mennyire jó választás, egy olyan kezdőnek aki Assembly-vel, és 16, 18F-ekkel szeretne foglalkozni? Úgy gondolom hogy a második kiadás jobban erről szól. Ti mit gondoltok?
(#) kissi válasza gydanee hozzászólására (») Aug 29, 2009 /
 
Szerintem is jobb az adott témákhoz a 2. kiadás, de sokkal többet tanulhatsz a netről és itt a fórumon ( olvasd el a hozzászólásokat az elejétől, sok ismeret van benne és nézd meg az ajánlott oldalakat, linkeket!) !

Jó szórakozást a PIC táborban !

Steve
(#) frecsko válasza icserny hozzászólására (») Aug 29, 2009 /
 
Nem túl nagy angol szókincs meg még nem hallottam a referencia kézikönyvről és még nem láttam ezt az oldalt.
Kb ennyi.
(#) frecsko válasza szilva hozzászólására (») Aug 29, 2009 /
 
Lelkesen megértetted velem a számolást is.
Az A/D-ről minden. Hogyan tudom feszültségmérésre használni de nem a hardveres része ( fesz osztó a bemenetre) érdekel hanem a progi.
(#) gydanee válasza kissi hozzászólására (») Aug 29, 2009 /
 
Helo!
Köszi a meg erősítést, NET-en keresztül is ismerkedek a témával természetesen.
Esetleg be lehet szerezni szerinted a 2. kiadást valahonnan? Google csak Vaterát dobott ki. Majd lehet írok egy e-mailt ChipCad-nak hátha van elfekvőben egy db.
(#) gyengus válasza gydanee hozzászólására (») Aug 29, 2009 / 1
 
Nekem úgy rémlik, hogy a 3. kiadás lemezmellékletén megtalálható digitális formában az 1. és a 2. kiadás.
Ebből a szempontból mégiscsak a 3. a jobb választás.
(#) gulasoft hozzászólása Aug 29, 2009 /
 
Elkezdtem a soros progit megírni. Az explorer 16 alapján csináltam, ott megy is, abban mondjuk f4fj120ga010 van az 100 lábú az enyém csak 80, de átírtam melyik az usart2 rx tx cts rts, hiba nélkül lefordul de nem történik semmi.
Az a valószínűbb, hogy a saját készítésű soros modulom rossz.
Mellékelem a kapcsolási rajzot, de találtam egy csomó fajtát, ezért a c1-et és c2-őt fordítva kötöttem be, mert egy rajzon meg úgy volt.
Rá tudnátok nézni a kapcsolásra és arra, hogy tényleg fordítva kell e bekötni vagy simán.

kapcs.png
    
(#) Blint válasza frecsko hozzászólására (») Aug 29, 2009 /
 
A legfontosabb: a PIC-eknél nem lehet szétválasztani a HW-SW részt, az egyik a másikat alapvetően meghatározza.

Hogy hogy kell megcsinálni a progit?
1. Mekkora feszültséget szertnél mérni?

2. Ezt a PIC melyik portjára szertnéd rákötni?

3.A PIC-nek milyen refererencia feszültsége(ke)t szeretnél megadni?

4. A referencia feszültségek alapján és a PIC A/D átalakító pontosságának (hány bites) tudatában már könnyedén ki tudod számolni az LSB- legkisebb helyiértékű bit értékét

5.Ekkor már tudod, hogy mi az a legkisebb mennyiség (mV) amit elvileg egy helyesen, zajmentesen felépített áramkör esetén mérni tudsz fizikailag.

6. Min szeretnéd megjeleníteni? 7szegmenses kijelzőn, LCD-n, Nixie csöveken? mind, mind más és más meghajtást követelnek meg. Vagy esetleg nem is akarod kiíratni, csak valamit csinálni a beolvasott értékkel/ regiszterrel?

7. Most jutottál el addig, hogy egyáltalán belefogj a tényleges programozásba.

8. Ha ki akarod íratni kell keresned egy algoritmust, ami alapján a mért érték bináris értékéből egy, az általunk elfogadott decimális értéket konvertál. (Vagy táblázatból keresteted ki (lassú), vagy vagy keresel (kitalálsz) egy hatékonyabb keresést. (Helyi értékenként kerestetsz, először megnézed, hogy mi lesz a kijelzőn a legmagasabb helyi érték értéke -na ez szép mondatrész -, és így mész egészen a legalsó helyi értékig .

Ezeknek a kérdéseknek a tisztázása, és megértése az egész PICezésben a lényeg.
(#) rponert válasza gydanee hozzászólására (») Aug 29, 2009 / 1
 
Szia.

Szerintem a 3. kiadás a jobb választás mert egyrészt tartalmazza a 2. kiadás teljes anyagát, és maga a 3. kiadás is sokk értékes anyagot tartalmaz. Mint pl. C nyelvű programozás vagy DSP használat a PIC-en.
(#) watt válasza frecsko hozzászólására (») Aug 29, 2009 /
 
Igazából nincs is progi, mert az A/D egy teljes periféria. Be kell állítani, majd indítani egy mérést és kiolvasni a két regiszterét. Ennyi! Ezek között egy sem olyan jellegű probléma, ami programozási ismereteket kívánna, csupán az adatlap írásait kell szó szerint venni.
(#) gulasoft válasza gulasoft hozzászólására (») Aug 29, 2009 /
 
Rossz képet raktam be, ezt a kapcsolást csináltam meg.

kapcs.png
    
(#) frecsko válasza Blint hozzászólására (») Aug 30, 2009 /
 
Szia.
Elsősorban azt kérdezném meg, hogy mi az a HW-SW? Mert a pic adatlapján nem olvastam ilyet vagy csak figyelmetlen voltam és elsiklottam felette.
Egy stabil ellenállás és egy termisztorból épített feszültségosztót akarok a pic RA0 lábára kötni, majd mikor már értem a lényegét bővíteném még 3 lábra. Lényegében egy hőmérőt szeretnék építeni ami majd egy 2x16-os Lcd-re fogja kiírni az értéket. A Pic tápját fogom használni a feszosztóhoz. Az adatlapon az RA2 és RA3 láb a referencia bemenet, csak ezt a két lábat használhatom annak?
(#) kissi válasza frecsko hozzászólására (») Aug 30, 2009 /
 
Nézd még át 2-3-szor az adatlapot ( nem rosszakaratból mondom, tényleg nehéz lehet elsőre megérteni és átlátni, de lassan kikristályosodik!!) ! A referenciafeszültséget az AD használja az átalakításhoz, ezt osztja fel részekre és megmondja, hogy hanyadik részt éri el a bemenetre kapcsolt feszültséged ! Amit emlegettél, az azzal van összefüggésben, hogy referenciaként használhatod a PIC 5V-ját ( nyilván a PIC terhelésétől függően minimálisat ingadozik, ami jó tápnál mV-kat jelent, ezért nagyon sokszor megfelelő!!), vagy használhatsz szuperstabil, külső referenciát, amit csak az AD ref bemenete terhel (amiről kérdeztél és azt tényleg csak a megadott lábakra kapcsolhatod!)!


Steve
(#) frecsko válasza kissi hozzászólására (») Aug 30, 2009 /
 
Az adatlapot böngészem most is, sőt fordítom már amennyire tudom. A kristályosodástól még messze árok nagyon.
Az 5V-ot nem referenciára akarom használni hanem az adja a tápot az osztónak és a termisztor ellenállásának a változását figyelném.
(#) kissi válasza frecsko hozzászólására (») Aug 30, 2009 /
 
OK, de a PIC AD-je tudja az 5V-os tápját használni referenciának ( és akkor nem igényel lábat v. lábakat a referencia bejuttatása!)!
Az előbb még nem említettem,hogy a külső referencia jól jöhet akkor is, ha egy tartományt pontosabban akarsz mérni, mert pl. 10 bites felbontás --> 1024 lépcső. Ha referenciafeszültségnek 5V-ot adsz (pl. a táp!), akkor 1 lépcső 5V/1024 ~ 5mV!. Ha azonban kívülről pl. 1V-ot kap referenciafeszültségnek, akkor 1V/1024 ~1mV a felbontás ( igaz, hogy csak 1 V-os tartományban!)!

Szerintem neked most simán megfelel a +5V-os táp, mint referencia és az ADRESH, mint eredmény ( így könnyebben tudod kezelni az eredményt, viszont csak 256 lépcsőd van, de hőm. mérésére ez elegendő lehet !) !


Jó munkát !

Steve
(#) lidi válasza kissi hozzászólására (») Aug 30, 2009 /
 
Mintha úgy rémlene nekem hogy nem lehet 1V a referencia fesz. Én vref+ nak valami minimum 2.5V ra emlékszem. Meg kell nézni az adott pic adatlapján az ELECTRICAL SPECIFICATIONS résznél.
(#) kissi válasza lidi hozzászólására (») Aug 30, 2009 /
 
A két Uref láb között 1V-ot értettem, tehát pl. Urefmin 2,5V a potenciál, az Urefmax 3,5V ( az adatlapot én most nem néztem, de mintha én is az általad említett értékre emlékeznék! )!

Steve
(#) frecsko hozzászólása Aug 30, 2009 /
 
Hát..az angol rövidítésekből meg a mellettük lévő apró megnevezésből nekem nem sok jön le. Nincs véletlenül magyar adatlap?
(#) kissi válasza frecsko hozzászólására (») Aug 30, 2009 /
 
Milyen adatlapot nézel és melyik részét ( nem olvastam vissza a topicban! )?

Steve
(#) frecsko válasza kissi hozzászólására (») Aug 30, 2009 /
 
A pic16f877 -es adatlapját.
11.0 ANALOG-TO-DIGITAL
CONVERTER (A/D) MODULE
111-dik oldal.
(#) kissi válasza frecsko hozzászólására (») Aug 30, 2009 /
 
Nem tudtam, hogy milyen PIC-ről beszélünk...

Mit nem értesz az adatlapról ( sajnos nem tudok magyar nyelvűről!) ?
Ne csak a szöveget, hanem az ábrákat is nézd!!

Steve
(#) frecsko válasza kissi hozzászólására (») Aug 30, 2009 /
 
Az angol szavakat lefordítom magyarral és próbálok belőlük értelmes mondatot kirakni. De mivel nem nagyon sikerül az értelmeshez közelítenem ezért nem is nagyon értek az adatlapból semmit.
(#) kissi válasza frecsko hozzászólására (») Aug 30, 2009 /
 
Watt már írta, hogy ez is egy periféria és "csak" fel kell programozni.

Ne olvasd végig ha nehezen megy az angol, mert szerintem így nehezebben érted meg. Szerintem nézd meg, hogy az adott regiszterek melyik bitje mit állít ( ezeket a szokásos módon be tudod állítani !) és csak akkor keresgélj a szövegben célirányosan, ha a regiszter melletti leírásból ( + a RAJZOKBÓL, ÁBRÁKBÓL ! ) nem jössz rá az adott bit funkciójára!

Próbálok Neked keresni egy mintapéldát!


Steve[code=c]; Feladat: A PORTA 0.bitjén található potenciométer feszültségének konvertálása az AD segítségével
; és a kapott érték kiírása a kijelző 1.sorának 0. pozíciójától.

list p=16F874A
#include



CBLOCK 20H
Timer1 ; változók az LCD kezeléséhez, az INC-ből kiolvashatóak!
Timer2
KARAK
PORTD_SAVE
HELY

MUTATO ; a táblázatos kiírásnál használom a következő elem kijelölésére a táblázatban!

SZAM ; változók az AD átalakítás eredményének feldolgozásához ( SZAM --> maga a szám, illetve a feldolgozás végén az egyesek számát tartalmazza!)
SZ ; százasok számát tartalmazza
T ; egyesek számát tartalmazza
ENDC




BANKSEL TRISD
MOVLW 00010100B ; az LCD-hez PORTE lábai digitálisak, PORTA is digitális, kivéve RA0-t!
MOVWF ADCON1 ; 7 bit: az AD átalakítás 10 bites eredményét balra rendezi ( ADRESH-ba jut a felső 8 bit!)
; 6 bit: az AD átalakítás konverziós sebessége Fosc/32
; 5-4 bit: nem érdekes
; 3-0 bit: Az 'A' és 'E' port digitális, csak a PORTA,0 lesz analóg, az AD átalakító a ref.feszültséget a PIC 5V-os tápjáról kapja!
CLRF TRISE ; a PORT-okat kimeneteknek állítjuk az LCD működtetéséhez!
CLRF TRISD ; a PORT-okat kimeneteknek állítjuk az LCD működtetéséhez!

BANKSEL PORTD ; a PORT-okat tartalmazó BANK-ra váltás
MOVLW 10000001B
MOVWF ADCON0 ; 7-6 bit: az AD átalakítás konverziós sebessége Fosc/32
; 5-3 bit: az AN0-s csatornát (PORTA,0) fogjuk digitalizálni
; 2 bit: AD átalakítás nincs folyamatban ( a bit='0' )
; 1 bit: nem érdekes
; 0 bit: Az AD modult kapcsolja be ( most kap tápot!)

CALL LCD_INI ; az LCD inicializálása 2 soros, 8 bites, automatikus léptetésűre ( az INCLUDE-ban van a rutin!)



UJRA:
CALL Kesl2 ; Az INCLUDE fájlból használom késleltetésnek, mert két AD feldolgozás között kell egy kicsit várni -->Busy flag olvasását "helyettesíti"
BSF ADCON0,2 ; indul az AD átalakítás
BTFSC ADCON0,2 ; AD készen van?
GOTO $-1 ; még nincs!
MOVF ADRESH,W ; készen van, a felső 8 bitet berakom az akkumulátorba,
MOVWF SZAM ; majd a SZAM regiszterbe!
CALL SZTE ; a kapott SZAM-ot felbontom százasokra, tízesekre és egyesekre

MOVLW 128 ; megadom, hogy kiírás az 1.sor 0. pozíciójától
MOVWF HELY
CALL LCD_POS ; ténylegesen itt állítom be
CALL KIIR ; meghívom az SZTE értékeit kiíró rutint!

GOTO UJRA




SZTE:
CLRF SZ ; törlöm a százasokat
CLRF T ; és a tízeseket

SZAZ_KIVON:
MOVLW 100
SUBWF SZAM,F
BTFSS STATUS,C
GOTO TIZ_KIVON ; már nem lehetett belőle 100-at kivonni
INCF SZ ; még ki lehetett vonni a százat, ezért megnövelem a százasok számát!
GOTO SZAZ_KIVON ; újra próbálom!

TIZ_KIVON:
MOVLW 100 ; nem lehetett kivonni a százat, ezért visszaadom!
ADDWF SZAM,F
TIZ_KIVON_1: ; százat már nem lehetett, ezért próbálgatom a tízek kivonását!
MOVLW 10
SUBWF SZAM,F
BTFSS STATUS,C
GOTO EGY_KIVON
INCF T ; a tízesek növelése
GOTO TIZ_KIVON_1

EGY_KIVON:
MOVLW 10
ADDWF SZAM,F ; nem lehetett kivonni a tízet, ezért visszaadom és így a SZAM-ban lesznek az egyesek!
RETURN

KIIR:
MOVF SZ,W ;a százasok kiírása
ADDLW 30H ; a megfelelő ASCII kód megkapásához
MOVWF KARAK
CALL Write
MOVF T,W ; tízesek
ADDLW 30H
MOVWF KARAK
CALL Write
MOVF SZAM,W ; egyesek
ADDLW 30H
MOVWF KARAK
CALL Write
RETURN

#include Lcd_8_bit.inc ; az LCD rutinok "include"-olása ( ugyanabban a könyvtárban legyen, mint projekt! )!

end
Következő: »»   559 / 1319
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