Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   939 / 1320
(#) vilmosd válasza kraissadam hozzászólására (») Márc 23, 2011 /
 
Hali
Elsonek szerezz be egy kis irodalmat a PIC-rol. A gyarto honlapjan elkepeszto mennyisegu adatlap, es AN talalhato. Onnan le tudod tolteni a MPLAB IDE fejleszto programot, es ezzel mar akar el is kezdheted a programozast. A PIC programozasat ASM nyelvjarasban illik elkezdeni. Mondjuk ezek nem rendelkeznek 2 Gbyte memoriaval, es nincs 160Gbyte hattertar, tehat jobban jarsz ha nem keresel ilyen programnyelveket mint C#, C++, .NET, Java. Viszont van hozza ingyenes ASM, nem egeszen ingyenes C, Basic, Pascal. Kezdoknek erosen ajanlott az ASM nyelv, mert igy gyorsabban megismered a HW felepiteset, programozasi fogasait. Esetleg nezz szet a konyvespolcon, ahol talahatsz konyveket, demo panel leirasokat, mintapeldakat, es sok egyeb mast. Programozo eszkozkent ajanlanam a PK2 gyari programozot, esetleg a 16F887 probapanelt hozza. Meg lehet probalni a sajat gyartasut is, ha jartasabb vagy az elektronika epiteseben. Amugy mint az elottem hozzaszolo is mondta: olvass szorgalmasan!
(#) bbalazs_ válasza kraissadam hozzászólására (») Márc 24, 2011 /
 
Adam!

Sokfele pic van. Szerintem kezdonek a 18-as sorozat jo kezdet (a 16f84-et felejtsd el!).
Az olvasast nem fogod meguszni, de nem 900 oldal, nagyjabol inkabb a tizede. Olvasni azert is jo, mert akkor latod, hogy masok a magyar szavakat eltero modon irjak (akadaly, milyen, stb) es hasznalnak olyan egyszeru mondattagolo fogasokat, mint pl. az irasjelek.

Masreszt jo lenne tudni valamit az elokepzettsegedrol. Teljesen kezdokent huzos ebbe igy belevagni. Melyik oldalrol probalod megkozeliteni? Programozas vagy elektronika? Ha programozas,akkor milyen nyelv all kozel hozzad? Olvasol angolul vagy inkabb a hazai forrasokra szoritkoznal? Alkatresz-adatlapot tanulmanyoztal-e mar?
A programozasi resze talan egyszerubb, annyi a kulonbseg a PC-tol, hogy itt a programmemoria es a RAM kulonvalik. Bizonyos esetekben hasznalhatod a programmemoriat is adattarolasra. Assemblyvel kezdenek a helyedben (ASM).
Az elektronikai oldal kicsit bonyolultabb lesz, ha kezdo vagy. Ha viszont ismeros neked, akkor rengeteg kapcsolast talalhatsz a neten, ha inkabb kesz dolgot vennel, akkor a kulonbozo KIT-eket ajanlom. Adnak hozza programozot, programot is. Tulajdonkeppen komplett kis cucc. USB-n keresztul megy. Szerintem az ara sem veszes. Torlore nem lesz szukseged, ezek EEPROMOK, az iras elott automatikusan torolnek a programozok.

De van egy PIC kezdoknek tema is, ott talan meg bovebb felvilagositast kaphatsz.
(#) bankimajki hozzászólása Márc 24, 2011 1 /
 
Most főleg Watt kollégától kérdeznék. (Vagy attól aki utanaépítette ezt a fajta PK2 klónt.) A csatolt képen melyik LED mikor jelez? Csak hogy tudjam, hogy hova milyen színűt tegyek. (Illetve ennek a verziónak a másik oldalán van egy olyan SMD kondi, ami a TRAXMAKER-es tervekben nincs benne, de a fényképen ott van Pont a PIC 1-es kivezetésénél van.)
(#) VillTMK hozzászólása Márc 24, 2011 1 /
 
Segítséget kérnék ***

Ez az apróhirdetésbe való, ez itt a fórumunk egy témája, aminek szabályai vannak : fórumszabályzat . és a használat feltételei ! Kéretik elolvasni és betartani, köszönöm, moderátor .
(#) kekbon hozzászólása Márc 24, 2011 /
 
Halihó!

Adott ez az eepromkezelő progi:

movlw 127
movwf eecim

iii movff eecim,eeadat (eecim->eeadat)

movwf eeadat
call eesave ; eeprom feltöltése
decf eecim,1
movlw 255
xorwf eecim,0
btfss z
b iii

A program (16f676) esetén feltölti az eeprom cellát a címével. Azonban a 127. cellát nem tudom írni. Marad benne az ff gyári érték. Szerintetek mi lehet a baj?

ha direktbe címezem, akkor is hatástalan.
(#) Auf hozzászólása Márc 24, 2011 /
 
Sziasztok!

Azt szeretném kérdezni, hogy:

- a megszakítás végén a RETFIE az bekapcsolja a GIE-t? valahol olvastam, hogy igen, de akkor miért van külön paranccsal néhány példa asm-ben?

- a jelzőbitet RB0/INTINTF esetében mikor töröltessem? (mármint a W,STATUS,PCLATH lementése után vagy elötte? vagy netán csak a RETFIE elött?)

Bocsánat ezekért az alap kérdésekért, de sajnos egyik helyen ez, a másikon meg az van írva. Elbizonytalanít. Főleg ha ez miatt nem megy jól egy megszakítási rutinom majd.

Köszi szépen!
(#) Hp41C válasza Auf hozzászólására (») Márc 24, 2011 /
 
Szia!

- A RETFIE 1 -re állítja a INTCON regiszter GIE bitjét. (Ahol a megszakítási rutinban állítják, az hibás működéshez vezet. ld.: cikk)
- Akkor kell törölni a kérés bitet, ha már kiszolgáltad, időkritikus esetben, ha azonosítottad a kérést és elkezdted kiszolgálni. A terjengős kiszolgálás alatt esetleg beérkező következő kérés nem vész el így. A kilépéshez érve már minden kiszolgált kérésbitet le kellett törölni.
(#) potyo válasza Auf hozzászólására (») Márc 24, 2011 /
 
Bekapcsolja. Ez a különbség a RETFIE és a RETURN között. Azok az asm példák hibásak.

A mentés mindig az első és a visszaállítás az utolsó. A kettő között érdemes rögtön azután törölni, hogy eldöntötted, hogy INTF megszakítás miatt került a kontroller a megszakítási címre, így ha közben jön újabb INTF megszakítás, akkor kisebb eséllyel maradsz le róla (bár mondjuk ilyen esetben már felmerül a kérdés, hogy megfelelő hardvert választottál-e, ha a megszakítás kiszolgálása közben beesik egy ugyanabból a formásból származó megszakításkérés).
(#) kekbon válasza kekbon hozzászólására (») Márc 24, 2011 /
 
megvan.
A PIC bekapcsolás (és reset) után 72ms-ig tiltja a eeprom írását.....

Ha várok 100ms-ot, utána már minden szuper.....
(#) potyo válasza kekbon hozzászólására (») Márc 24, 2011 /
 
Ezt adatlapban találtad?
(#) Auf válasza Hp41C hozzászólására (») Márc 24, 2011 /
 
Na igen, olvastam már a cikket. Nagyon hasznos információkkal látott el! Jó szerzemény!
Épp ez miatt gondolkoztam el rajta. A megszakításokba most kezdtem igazán belekóstolni.
Tehát, ha jól sejtem, amikor a megszakítás létrejön, akkor az le is tiltja a GIE bitet?. És így az esetlegesen közben keletkező más jellegű megszakítás nem okoz gondot az előző végrehajtásában. RETFIE után majd visszalép és jön az. gondolom
Viszont, szerintem a végén törlöm, hogy a megszakítás "végére" ne legyen az hogy potyára visszalép, mert mondjuk pergés lép fel a bemeneten. ha azon egy nyomógomb van. És ezáltal, mondjuk "egy" jelre többször hajtja végre, például egy regiszter növelését.
Köszönöm a segítséget!
(#) kekbon válasza potyo hozzászólására (») Márc 24, 2011 /
 
igen.
itt:
PICmicro™
Mid-Range MCU Family
Reference Manual
(#) potyo válasza Auf hozzászólására (») Márc 24, 2011 /
 
A pergést nem így kell lekezelni, valamint alapvetően a külső megszakítás nem nyomógombhoz van kitalálva, mivel ahhoz eléggé felesleges megszakítást csinálni. A külső megszakítás más áramkörből jövő jel fogadására való, olyanra, ami nem hajlamos pergésre.
(#) emmzolee hozzászólása Márc 24, 2011 /
 
Hello
Szeretnék egy Ilyet építeni.Bővebben: Link
Van benne egy attiny2313-20pu. Nekem van egy szilva féle pickit2 klónom. Azzal föl tudom programozni? Gondolom nem. Azt írták, hogy PonyProggalföl lehet programozni.
Ha a pickitt2-mmel nem lehet, akkor érdemes a pónit meg építeni? Esetleg az eredeti pickit2, vagy 3 tudná ezt? Lehet akkor az e-bay-ről beszereznék egy eredetit.
(#) icserny válasza emmzolee hozzászólására (») Márc 25, 2011 /
 
A kérdésedet az AVR - Miértek,hogyanok c. topikban kellett volna föltenni! Sőt, kérdezni sem kellett volna, csak rákeresni a PICkit2 kulcsszóra abban a topikban. Ott a megoldás...
(#) Hp41C válasza icserny hozzászólására (») Márc 25, 2011 /
 
Valóban ott van, de ide is felteszem, mivel PICKit is great...
(#) menyus hozzászólása Márc 25, 2011 /
 
Sziasztok!

Van egy kis problémám amihez segítséget szeretnék kérni. Kéne építenem egy kapcsolást amit hanggal lehet vezérelni. Ez önmagában ugye nem nagy feladat, meg is oldottam. Az audio erősítő után van egy fezsültség kétszerezős egyenirányító ami már "emészthetővé" teszi az erősítő kimenti jelét. De úgy akarnám megoldani hogy minden kósza koppanásra ne reagáljon az áramkör csak pl meghatározott impulzusszám beesésekor. Pl ha becsapódik egy ajtó arra ne induljon el, de ha beszélnek a mikrofon mellett akkor az egységnyi idő alatt beérkező impulzusok száma is több, tehát erre már reagálna az áramkör. Írtam egy kis programot ami a komparátor kimenetet figyeli (polling) és egységnyi idő alatt megszámlálja hányszor billen át a kimenet. Ez a megoldás gyakorlatilag egy 255 (0xff) felbontású impulzus szűrőt alkot. A "mintavételezés" után kiértékelem a kimenet átbillenéseinek számát, összehasonlítom egy referencia értékkel ha nagyobb vagy egyenlő akkor billen az "X" kimenet...stb Ha kisebb akkor folytatja a "mintavételezést" tovább folyamatosan.

A gondom az hogy úgy viselkedik a komparátor mintha belül egy kondenzátor volna a bemeneten. Illetve van is, de annyira kis kapacitású (5pF ha jól láttam az adatlapban) ami szerintem nem okozna ilyen problémát. A jelenség az hogy ha nagyobb intenzitású ( időben 200msec alatt lezajló) zajt értékel a komparátor akkor a kimenet átbillen, de nem billen rögtön vissza hanem tartja az állapotot pl 1 sec ig...ami esetemben nem jó mert közben ugye megy a kimenet pollingja, és ezt beleszámolja az értékeléskor.
Ez természetes is, így kell működnie. Ha a komparátor bemenete meghaladja a másik bemeneten beállított referencia értéket, ez a kimenetet átbillenti. Ez rendben is van. A kérdés az hogy mi okozza ezt az időbeli elhúzódást, és hogyan lehetne ezt kikerülni? Az érdekes az hogy ha lekötöm az egyenirányított audió jelet a komparátor bemenetéről akkor időben stimmel a feszültség ugrás. Tehát elvileg jónak kéne lennie a dolognak ha a komparátor a jel fel / lefutási idejének megfelelően billentgetné a kimenetét. Létezik hogy ez az integrált 5Pf okozza a problémámat..? Mert ez esetben nincs megoldás...Esetleg ADC vel hogyan lehetne ezt megoldani (még sosem használtam...) ? Egy 12F675 el szenvedek...

Köszi
(#) icserny válasza menyus hozzászólására (») Márc 25, 2011 /
 
Segítségnek ott a Tapskapcsoló c. topik
Idézet:
„Esetleg ADC vel hogyan lehetne ezt megoldani?”
Én nem szenvednék ADC-vel. A PIC mikrovezérlőkben is van analóg komparátor. Van mellé egy érdekes kiadvány is: Microchip PIC MCU Comparator Tips 'n Tricks
(#) menyus válasza icserny hozzászólására (») Márc 25, 2011 /
 
Ez a feladat azért szerintem jócskán túlmutat egy szimpla tapskapcsolón, pont az lenne a lényege hogy pl. tapsra ne induljon el az áramkör. Egy tapskapcsolóhoz nem használnék mikrovezérlőt mert kommersz alkatrészekből összerakható fél óra alatt... Az analóg részével nincs is gondom, mint írtam is. És a 12F675 ben lévő komparátort használom. Nem véletlenül írtam a kérdést ide a PIC topicba... A link viszont valóban hasznos olvasmány,

Köszönöm.
(#) watt válasza menyus hozzászólására (») Márc 25, 2011 /
 
Ehhez fourier transzformáció leprogramozására lenne szükség minimum, és gyors A/D-re. Én nem tudnám most ezt kapásból megoldani, az tuti.
A másik, hogy a taps kapcsoló az nem zörej kapcsoló, azaz pont az a lényeg, hogy egy analog, vagy digitális szűrő elemzi, hogy milyen frekvenciák találhatóak a jelben. Egy ajtó csapódás alacsonyabb freki, mint a taps, és a beszédben meg nem találhatóak olyan dinamikai eltérések, mint egy tapsban. Tehát ha jól van megépítve a szűrő, akkor csak a tapsra fog bekapcsolni...
(#) ludus hozzászólása Márc 25, 2011 /
 
Sziasztok!
16f883-at hol tudok jelenleg Pesten beszerezni? Néztem hogy a chipcad-nál van de nem vásároltam még náluk, nem fognak kiröhögni ha 1db-ot rendelek tőlük?
(#) n_yálastrubadúr hozzászólása Márc 25, 2011 /
 
Hello
Infrát akarok feldolgozni 16f84a-val, RBo megszakítással, miközben a timer0-ával mérném az időt. Nemtudom mi a baj, de lecsupaszítva eljutottam odáig hogy nemtudom kiíratni a próba kedvéért se a portb-re egy rövid próbaprogramban sem a tmr0 értékét. Beállítom a portokat meg az option_reg-ben a leggyorsabb számlálást, hogy biztosan legyen valami érték a csak nop utasításokat vivő programnak, majd a végén lehívnám
MOVF TMR0
MOVWF PORTB
de semmi eredmény, segítsetek mit nem állítottam be vagy hol a baj.
köszi
(#) icserny válasza n_yálastrubadúr hozzászólására (») Márc 25, 2011 /
 
  1. MOVF TMR0

Mondani kellene, hogy a WREG-be kerüljön az adat!
  1. MOVF TMR0,W
(#) n_yálastrubadúr hozzászólása Márc 25, 2011 /
 
Azóta is semmi, közben még egy kérdés, amin nem jutok túl. Feltételezem beállítás probléma, de miért van az, hogy van amikor elfogadja az mblap 8.63 a kódot ,és pl néha ha beletörlök és visszaírom ha elfogadja is nem biztos hogy működik. Sőt minnél többször változtatok, annál kevésbé működik, mégha ellenőrzöm valami egyszerű dologgal sem megy, aztán megint.. Ami segíthet és megintcsak bosszantó, hogy pl a toif-nál vettem észre hogy semmilyen módon nem veszi be, csak akkor ha valahonnan bemásolom, bármit kapcsolok ki-be a billnetyűzeten nemtetszik neki.
Köszönöm.
(#) menyus válasza watt hozzászólására (») Márc 25, 2011 /
 
No, ezt a fourier transzformációt én mellőzném.... kiváltképp hogy még te sem állnál neki. Én speciel most hallok róla először, tájékozatlan vagyok e téren. Majd utánaolvasok mi is ez valójában.

Igen a tapskapcsolókban az igényesebb kiviteleknél van egy aktív / passzív alulvágó szűrő hogy csak a magas hangokra legyen érzékeny. (taps "csattanása"..) Ez esetemben azért nem jó mert nekem elég széles , kb 600 - 4000Hz (kb. beszéd spektrum..) tartományban kellene érzékelnem. Persze ezt a tartományt is ki lehetne szűrőzni, de én inkább az impulzusok számlálásában látom a megoldást. Egy rövid idejű nagy intenzitású zaj (ajtócsapódás, taps, tüsszentés..stb) X szer billenti át a komparátort, ez persze attól is függ milyen sebességgel van a kimenete lekérdezve. Lényeg hogy ez esetben mivel az audio jel lefutása rövid, relatív kevés impulzusszám keletkezik (elvileg) a kimeneten. Míg ha mondjuk elkezdek beszélni, az ugyanezen az idő alatt többször billenti át a komparátort, tehát elvileg ebből lehetne következtetni arra hogy az most valami fals zörej volt, (16 ot írt a regiszterbe) vagy valaki elmondott egy fél mondatot...(42 a regiszterben) És itt a dinamika meg a jel amplitudója nem számít elvileg (kivéve persze hogy elérje a referencia feszültség értékét) mert a komparátor billenési küszöbe állandó.



Nos ez az én gondolatmenetem ez ügyben, tuti nem tökéletes megoldás, de szerintem működőképes lenne. Feltéve ha a mikrovezérlőben lévő komparátor kimenete az audio jel lefutásának idejével közel arányosan billegne...de sajnos nem ezt teszi, Jócskán késlelteti a kimenet visszabillenését, és nem tudom miért.

Működik is az áramkör, és a program is jól, csak az a bibi hogy nagy amlitudójú jel esetén a komparátor kimenete másodpercekre is átbillenve marad mert a komparátor bemenetén lassan csökken vissza a feszültség a referencia érték alá. Se a bemeneten, se a feszültség kétszerező kimenetén NINCS kondenzátor (pedig kéne, de ha berakom akkor persze még rosszabb a helyzet..) ... kivéve azt az 5pF et ami a tokba van integrálva az analóg bemeneten. És ez volt az alap kérdés is...hogy ez a tokba integrált kis értékű (5pF) a bemenettel földhöz képest párhuzamos kondenzátor okozhat e ilyen mértékű "pufferelést" a bemenő jel szintjére vonatkozóan. Mert pont olyan a jelenség mint mikor feltöltök egy kondenzátort és az lassan sül ki, másodpercek alatt.

A tapskapcsolós topicból meg tutira ideküldenének ha ott kibököm hogy egy PIC be integrált analóg komparátor működésénél akadtam el... Új topicot meg csak ezért nem akartam nyitni...
sorry
(#) n_yálastrubadúr válasza icserny hozzászólására (») Márc 25, 2011 /
 
Nagyon szépen köszönöm. Nemtudom miért nemhittem hogy jó lesz, talán f-be próbáltam. Az természetes, hogy minden reset után a portb-bitje, amit ledeken keresztül kalkulálok minden alkalommal mást jeleznek?
(#) icserny válasza menyus hozzászólására (») Márc 25, 2011 /
 
Idézet:
„nagy amlitudójú jel esetén a komparátor kimenete másodpercekre is átbillenve marad mert a komparátor bemenetén lassan csökken vissza a feszültség a referencia érték alá.”
Rajzot is mutass, hogy követni tudjunk! Ahol integráló kondenzátor van, oda kisütő tagot is kell tenni, hogy ne maradjon úgy. Lehet, hogy féreértettelek, de az elhangzottakból úgy tűnik, hogy a diódákkal csak töltesz egy kapacitást, ami nem sül ki elég gyorsan.
(#) potyo válasza n_yálastrubadúr hozzászólására (») Márc 25, 2011 / 1
 
Nem az van, hogy te T-Ó-I-F-et írsz a T-nulla-I-F helyett?
(#) menyus válasza icserny hozzászólására (») Márc 25, 2011 /
 
Jogos...le is skicceltem mit követtem el. Van benne pár furcsaság ami szűrés gyanánt nálam nagyon jól bevált. Pl a soros ellenállások a tápágban utána az elkókkal. Lehet kissé szokatlan megoldások de a gyakorlatban nagyon jól beváltak nekem.

Szóval az a párhuzamos RC tag a feszültségkétszerező kimenetén (ami szaggatott vonallal van berajzolva mert jelenleg nincs bekötve) elvileg ott kéne legyen mert az puffereli a kétszerező utáni feszültséget. Először arra gondoltam hogy csökkentem az 1 Mohm értékét...nem jött be. Sőt a jelenség úgyis megmarad miután a kondenzátort kiveszem az áramkörből. Tehát ebben az esetben az 1 Mohm söntöli (tehát ki kéne sütnie) elvileg a tokon belüli 5pF os kondenzátort, mégpedig az igen kis kapacitás tekintve..villámgyorsan! De valamiért mégis lassan esik vissza a feszültség a bemeneten ha a kétszerező is rá van kötve a PIC re. Ha lekötöm a PIC ről (kiveszem a 10K - t) és közvetlenül a kétszerező kimenetét mérem akkor nincs ilyen jelenség. Tehát valami a tokon belül hülyíti meg az egészet..de mi...?

micamp.JPG
    
(#) veress11 hozzászólása Márc 25, 2011 /
 
Sziasztok, most kezdtem el mikrokontroller programozást tanulni és egy olyan problémába ütköztem, hogy a HEX kapcsolóhoz tartozó kódot átalakítsam és a hét szegmensen a kiírassam. A hét szegmensen való számok kiírásával nincs gond, potméter változtatás hatására is változnak az értékek, de a HEX kapcsoló feladta a kérdést.
Következő: »»   939 / 1320
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