Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   599 / 1320
(#) Galdemorph hozzászólása Nov 2, 2009 /
 
Sziasztok, ujra kellett raknom a winfost. MPLAB ujratelepítés ota nem ismeri fel a PIckit 2-met. Konkrétan ezt írja:

Initializing PICkit 2 version 0.0.3.63
PK2Error0009: Write failure (GetLastError = A leíró érvénytelen.)
PICkit 2 Ready

Vkinek 5let?
(#) potyo válasza Galdemorph hozzászólására (») Nov 2, 2009 /
 
Állítsd az eszközt az MPLAB-ban None-ra, húzd le, 10 másodperc múlva dugd vissza, majd újabb 10 másodperc múlva válaszd ki az MPLAB-ban, és úgy próbáld.
(#) Galdemorph válasza potyo hozzászólására (») Nov 2, 2009 /
 
Sajnos nem használt, az üzenet továbbra is fennáll
Feltettem a Pickit saját progiját azzal tökéletesen megy, ergo biztos vmi MPlab hiba. Ujra is raktam már de az sem segített
(#) kiskacsa2009 hozzászólása Nov 3, 2009 /
 
Üdv!
Valaki meg tudja mondani, hogy a PIC16F628-as PIC-nek belső oscillátora van, vagy ezt külön rá kell kötni. Ha igen, akkor mekkorát érdemes?
A válaszokat köszönöm!
(#) watt válasza kiskacsa2009 hozzászólására (») Nov 3, 2009 /
 
Idézet:
„Valaki meg tudja mondani, hogy a PIC16F628-as PIC-nek belső oscillátora van, vagy ezt külön rá kell kötni. Ha igen, akkor mekkorát érdemes?”

1. Ennek a kérdésnek nincs semmi értelme(főleg, hogy az első mondatod végén pont van!), csak ha nagyon akarom, akkor értem meg, hogy mit akarsz! Fogalmazni sem tudsz, akkor hogy akarsz PIC-el foglalkozni? Az nem egyszerű dolog, gondolom tudod!?

2. Az adatlap világosan leírja, hogy mi a helyzet, idézem.

Idézet:
„Selectable oscillator options
- FLASH configuration bits for oscillator options
- ER (External Resistor) oscillator
- Reduced part count
- Dual speed INTRC- Lower current consumption
- EC External Clock input
- XT oscillator mode
- HS oscillator mode
- LP oscillator mode”


Aztán az oszcillátoroknál az adatlap ismát részletesen tárgyalja a dolgot:
Idézet:
„• LP Low Power Crystal
• XT Crystal/Resonator
• HS High Speed Crystal/Resonator
• ER External Resistor (2 modes)
INTRC Internal Resistor/Capacitor (2 modes)
• EC External Clock In”


Majd itt még egyértelműbben leírja mia a helyzet:
Idézet:
„14.2.6 INTERNAL 4 MHZ OSCILLATOR
The internal RC oscillator provides a fixed 4 MHz (nom-
inal) system clock at Vdd = 5V and 25°C, see “Electrical
Specifications” section for information on variation over
voltage and temperature.”


Ha azt várod, hogy más oldja meg azokat a kérdéseket, amiket te is meg tudsz oldani(meg kell tudj oldani, ha ezzel akarsz foglalkozni) akkor ne csodálkozz, ha ilyen válaszokat kapsz! Használd az adatlapot és a fejed(és tanulj meg fogalmazni és írni!)!
(#) Beles hozzászólása Nov 3, 2009 /
 
Helló mindenkinek!
Pic-el szeretnék egy távirányító vevőt építeni. De nem tudom hogy kellene elkezdeni. Két verziót gondoltam, az egyszerűbb, hogy megnézem előre a kódot, amit a távirányító ad (van gépemhez infra vevő, a girder nevű progi, és az kiírja a kódot...), és utána csak ezt kellene analizálni. A bonyolúltabb, pedig majd az lenne, hogy tanítható is legyen. Assemblerben írom majd a progit.
TSOP 1736-om van itthon erre a célra. Ötleteket várok, hátha valaki már jártas a témában. Gondolom ccp modullal kellene kiolvasni a jelsorozatot? Vagy egyyébb ötlet?
(#) potyo válasza Beles hozzászólására (») Nov 3, 2009 /
 
CCP jónak tűnik, de akár egy INT lábbal meg timerrel is megoldható, sőt még INT láb nélkül is úgy, mint ahogy a szoftveres UART adatfogadás történik.
(#) watt válasza Beles hozzászólására (») Nov 3, 2009 /
 
Igen a CCP modullal lehet digitális jelet analizálni fel és lefutó jelnél egyaránt. Ezt fel lehet használni tanítható távirányító építésére is.

Ha fixen bedrótozod a programba a jelet, akkor erre nincs szükség, csak valahogy meg kell tudd nézni, milyen az eredeti jel.
(off) A programod nem tudja megjeleníteni az időket, azaz oszcillogrammot meg tud jeleníteni időkkel? Ha nem, akkor esetleg a vevő jelét fel lehetne venni hangkártyával és egy szerkesztő programmal ki lehetne analizálni.
(#) Beles válasza watt hozzászólására (») Nov 3, 2009 /
 
Akkor jó, ha nem muszály ccp-t használni. INT + timer megoldás egyszerűbbnek néz ki. Végülis elég a "fixen bedrótozott" megoldás,mert arra szeretném hazsnálni, hogy távirányítóval lehessen egy lámpát ki, és bekapcsolni,meg fényerőt állítani.
Sajna a progi nem tudja, de szkópon néztem már meg a jelet. Hangkarival fel tudom venni. Most igazából azt kellene megtudnom, hogy milyen időközönként követik egymást a bitek?
(#) watt válasza Beles hozzászólására (») Nov 3, 2009 /
 
Idézet:
„Akkor jó, ha nem muszály ccp-t használni. INT + timer megoldás egyszerűbbnek néz ki.”

Nem egyszerűbb, már ami a programot és a pontosságot illeti. (feltéve, ha már érted a működését a modulnak)

Idézet:
„Végülis elég a "fixen bedrótozott" megoldás,”

Akkor egyik megoldásra sem lesz szükséged(sem CCP, sem INT, sem szoftveres)

Idézet:
„Most igazából azt kellene megtudnom, hogy milyen időközönként követik egymást a bitek?”

Pontosan. Tudnod kell pontosan a jelalak magas és alacsony szintjeinek időtartamát, és ezt leprogramozni. Nem nagy ügy...
(#) Beles válasza watt hozzászólására (») Nov 3, 2009 /
 
Megcsináltam nero waw editorral. Az első képen kinagyítottam a lényeget. A második képen a távirányító nyomvatartva.
CCP mudult tanúlmányozgattam. Akkor szoktam igazán megérteni, amikor már programmal is megírtam, és látom hogy miért működik.
Idézet:
„Nem nagy ügy...”
Egyenlőre nekem még az De majd leesik. Legutóbb I2C-s hőmérőt programoztam, lm75-öt.Az volt idáig a legnagyobb projektem Két nap alatt sikerült megcsinálni. Kb 10órámba került + előtte megtanúlni az i2c-t, az is jópár óra. Ezt csak azért írom, hogy a tudásommal kicsit tisztába legyetek.
(#) Beles válasza Beles hozzászólására (») Nov 3, 2009 /
 
Nah ha jól értelmezem 1ms egy bit, de még felrakok egy másik progit, amivel lehet jobban ki tudom elemezni. És valóban egyszer küldi ki a jelet. Utána már csak az átvitel indító bitje van. Ezt nem is tudtam.
(#) watt válasza Beles hozzászólására (») Nov 3, 2009 /
 
(off)Próbálkozz a SoundForge-vel, az elég jól ki tudja nagyítani...
(#) Beles válasza watt hozzászólására (») Nov 3, 2009 /
 
Pontosan azt rakom fel! Csak nem lelem
(#) icserny válasza Beles hozzászólására (») Nov 3, 2009 /
 
Idézet:
„Két nap alatt sikerült megcsinálni.”

Minek ez a nagy rohanás? Ha az adatlapokat is tüzetesen megnézed, meg a szoftver megoldásoknak is alaposan utánanézel, könnyen elszaladhat egy-egy ilyen feladattal akár két hét is. De érdemes rászánni, mert a tudásod alaposabb lesz.
(#) Beles válasza icserny hozzászólására (») Nov 3, 2009 /
 
Mert két nap alatt csak ezzel foglalkoztam. Egyébként sehogy nem jön ki az a kód, amit a girder program ír ki, azzal, ha átváltom a sound forge-ben kapott kódot. Úgyhogy így elakadtam.
(#) Mate78 válasza icserny hozzászólására (») Nov 3, 2009 /
 
Igazad van,érdemes több időt rászánni,megismerni részleteiben a dolgot.
Én is most éppen I2C kommunikációval foglalkozom, és már egy TC74-es hőszenzor, egy 24FC256 EEPROM, és egy DS1337 RTC is van a buszon.Már egész jól megy, igaz tényleg 2 hete írom a programot.
Ha ez megvan akkor jön az SPI.


üdv
(#) watt válasza Mate78 hozzászólására (») Nov 3, 2009 /
 
Idézet:
„Ha ez megvan akkor jön az SPI.”

Az meg olyan egyszerű, mint a faék, így nem lesz sok gondod vele...
(#) Mate78 válasza watt hozzászólására (») Nov 3, 2009 /
 
Igazából nincs is konkrét feladat, csak tanulás a cél.
Majd nézek itt is valami hőszenzort meg memóriát, és azzal fogom próbálgatni.

üdv
(#) icserny válasza Mate78 hozzászólására (») Nov 3, 2009 /
 
Idézet:
„Majd nézek itt is valami hőszenzort ...”

Nézhetsz digitális potenciométert (pl. MCP41050 és társai), portbővítőt (MCP23S08, MCP23S17) vagy SPI vezérlésű Digital-analog konvertert is, hogy ne mindig a hőszenzor legyen terítéken.
(#) Mate78 válasza icserny hozzászólására (») Nov 3, 2009 /
 
Igen, elég széles a Microchip palettája ezen a téren.(is)
Hőszenzorból úgyis csak smd tokost találtam egyelőre.(TC72,TC77)
(#) Beles válasza Beles hozzászólására (») Nov 3, 2009 /
 
Nem megy sajna a távirányító dekódolás. Elég beteg vagyok,lehet azért nem fog eléggé az agyam. Próbáltam feltérképezni a jelet is, de hiába írtam programot, nem jó. A képet mellékeltem. A progi pedig olyan elven ment, hogy btfsc parancsal teszteltem azt a portot, amire rá volt kötve a tsop kimenete. Ha kapott jelet, várt 10ms-et,majd 1ms-onként tesztelte a port állapotát. Az egészet úgy csináltam, hogy 60ms legyen a periódusidő összesen, mert annyi a távirányítónál is egy jelsorozat. Még csak 8 bitet olvastattam be ily módon, és raktam ki portra, ledekre, de mindíg ugyan azok a ledek világítottak szinte, akármelyik gombot nyomtam Ötleteket várok.
(#) watt válasza Beles hozzászólására (») Nov 4, 2009 /
 
Egyrészt nem vagyunk jósok vagy látnokok, hogy lássuk milyen a programod, azaz hogyan akarod ezt megoldani(csatold az asm-ot, készülj fel a kritikára, nem fogsz belehalni, feltéve, ha nyeled a békát, ami jár! Feltéve, ha jár! ).

A másik, hogy azt mondtad, hogy nem akarod a jelet elemezni, hanem be akarod égetni fixen, akkor most meggondoltad magad? Mert ha igen, akkor inkább a CCP modult ajánlom, bár kb. háromféle módon lehet ezt megoldani...

A jelről annyit, hogy úgy túnik mindegyik ugyanúgy indul(hosszabb L szakasz, kicsit rövidebb H szakasz(valószínű szinkronizációs céllal), majd jön a kód. Te valószínű csak ezt a szakaszt kezelted le, de lehet hogy tévedek(kód!)...

A másik gyanúm, hogy a jeled inverze a valóságos fényintenzitásnak. (tehát a nem világításból indulunk, ami L szint egy diódán)

Egyébként az egyik megoldás megszakítás nélküli megoldása az lenne, hogy beállítod valamelyik Timert egy relatív alacsony számlálási ütemre, olyanra, hogy ne csorduljon túl a leghosszabb szakasznál se(Ha szükséges, akkor a PIC órajelét is csökkenteni kell, vagy a túlcsordulásokat is számolni kell!). Amikor észlelsz egy szintváltást, eltárolod a számláló tartalmát, majd a következő szintváltáskor kivonod az előzőt a jelenlegiből(hozzáadod a túlcsordulásokat is, ha kezelni szükséges) és a jelenlegit újra eltárolod. Az így kapott számok sorban arányosak lesznek a jelek közötti idővel.
A CCP modul ebben segít sokat, mert eltárolja a megszakításnál a Timer értékét, van időd kiolvasni, nem szalad el a ló!
(#) Beles válasza watt hozzászólására (») Nov 4, 2009 /
 
Csatolom akkor, és várom a kritikát

TAVIRTO.ASM
    
(#) szilva válasza icserny hozzászólására (») Nov 4, 2009 /
 
Ugye itt egy 18F-ről van szó, ahol a kimenet kapcsolgatáskor inkább a LAT regisztert kellene piszkálni és nem a PORT-ot. Ha a LAT kapcsolgatásakor villog a LED, akkor viszont elektromos probléma van az áramkörrel, leginkább túl kicsi (vagy semmilyen) soros ellenállás a LED-nél.
(#) watt válasza Beles hozzászólására (») Nov 4, 2009 /
 
Akkor kezdem!
Nos, az első és talán az utolsó kritika az, hogy a megjegyzéseket nem nekem írod, (bár nagyon örültem volna, ha tudom mit szerettél volna attól a sortól ami talán teljesen mást csinál), hanem magadnak. Tehát mindig írj megjegyzést, még ha kétsoros a program akkor is.

Én azt hiszem, hogy azt szeretted volna, hogy várakozásokkal időzítetten, baudrate szerűen levizsgáltad volna a jelfolyamot, és ezt eltároltad volna a bájton(A1), amit a végén megjelenítettél volna D porton.

Biztosan jó baudrate-t állítottál be?
Milyen az oszci sebessége?
Lemodellezted a simulátorral, hogy a várakozás mekkora időtartamú? Ha igen mennyi?
Egyezik a vizsgált jeled mért periódusidejével? Mennyi ez a periódus, amit mértél?
(#) Beles válasza Beles hozzászólására (») Nov 4, 2009 /
 
Jól van, mostmár máshogy megoldottam, és megy a dolog. PORTB,0 lábon a bemenet, vizsgálom az INTCON,INTF bitet, és minden lefutó élnél eltárolom a TMR0 értékét. Hogy egyszerűbb legyen, minden eltárolás után nullázom a TMR0-t. Szépen működik így már. Mostmár csak szép progit kell hozzá írni Mert eddig csak úgy csináltam, icd2-vel Brake pontot raktam az olvasás végére, és az eltárolt TMR0 értéket megnéztem a Watch ablakkal .Most először nagy hasznát vettem végre az ICD2-nek.
Köszönöm a segítséget, innentől már menni fog. És bocs, ha sokat hablatyoltam, de hátha valakinek adtam ötletet vele!
Üdv mindenkinek!
(#) szilva válasza trudnai hozzászólására (») Nov 4, 2009 /
 
Egy csomó dolgot nem lehet automatizálni az MPASM-ben, mert a linker olyan buta, hogy ő már nem tud számolni, csak behelyettesíteni a relokálható szimbólumok értékeit. Most nem emlékszem, hogy pontosan mi volt, de én is futottam már bele ilyesmibe, hogy a forrásban valami kifejezést akartam elhelyezni, hogy "univerzális" legyen, de a linker nem bírt vele sehogy, nem sikerült a problémát megoldanom.

Többek között ilyenek miatt sem lehet normális rutingyűjteményt csinálni PIC-ekhez, hogy egy másik, itt felmerült témához is hozzászóljak.
(#) szilva válasza pajti2 hozzászólására (») Nov 4, 2009 /
 
PIC16 és PIC18-okhoz létezik az SDCC-nek is Win-es verziója. Én most épp Linux és PIKlab alatt SDCC-zem, így azért gyorsabb fejleszteni, mint ASM-ben, bár az erőforrásigény meg láthatóan nagyobb PIC oldalon.
(#) szilva válasza Kriss hozzászólására (») Nov 4, 2009 /
 
A watch-ban jó lenne látni TIME címét/értékét is. Lehet, hogy bankolási probléma lesz, nem tudom pl., hogy a MOVWF-nek így írva access vagy banked-e az alapértelmezése, és hogy a BSR jól áll-e.
Következő: »»   599 / 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