Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   97 / 1319
(#) gulasoft válasza watt hozzászólására (») Nov 8, 2007 /
 
Kezdem kapisgálni, hogy a fő oszci, meg a külső forrás az amiben értelmezési gond van.
Én azt hittem, hogy a külső forrás, amit én gyártok neki egy quartzal meg a két kondival, és a belsőt az valami belül ketyegő oszcinak gondoltam.
De most már értem ám, hogy a belső az amit én gyártok neki az quartzal, a külső meg a T0CKI lábon jön, és gondolom szinkronizálásnál fontos, ha több chip akar ugyan azon a mazzagon beszélgetni.
Ki fogom próbálni, köszi az helpet.
(#) watt válasza gulasoft hozzászólására (») Nov 8, 2007 /
 
Javaslom az adatlap elolvasását, mert még mindig nem érted mi az a T0CKI!

És azt miből gondolod, hogy ilyen tempónál, amit a megszakításban beállítottál, mindig rá fog futni a megszakításon kívüli lekezelő rutinodra a programszál(simán elidőzhet máshol a program, és közben meg jönnek a megszakítások, csak senki nem veszi észre!)? Mást nem fogsz csinálni, csak időzítgetni? Most mondom, nem fog működni, ezt másképp kell megoldani, és pont a megszakításban!
Kint csak az idő meglétét jelző flag-eket kell akkor figyelni, de még az sem lesz tökéletesen pontos, attól függően, hogy a megszakításba honnan ugrott ki a program, és ott még mi van hátra a visszatérés után.

Nem tudom mit akarsz időzíteni, de nem jól közelíted a kérdést ez kétségtelen!
A másik amire megkérnélek, hogy ne jelents ki addig semmit, amíg nem vagy biztos benne! Nem jól jön ki és elég nehéz nagyokat nyelni!
(#) gulasoft válasza watt hozzászólására (») Nov 8, 2007 /
 
Ez egy delay rutin, mit csinálna még a program delay-ben?
Azért nem multitaszking oprendszert írok rá.
Egy előző hozzászólásban pont azt írták, hogy a megszakítás legyen minél rövidebb, ott is egy flag lett beállítva.
Egyébként meg miért is nem futna rá?
Tök mindegy hogy mennyivel hajtom 2 órajel ciklus alatt dolgozza fel az utasításokat (jó tudom a 18-as az már csak egy, meg itt is lehet kötözködni, de most a nagyságrendekről van szó)
Ha 255-ös osztót használok, és egy bytos időzítőt akkor két tick közé igazán sok utasítás belefér, és ha láttad a kódot akkor az semmit nem csinál, csak figyeli, hogy a flag bebillent e. Egy BTFSC, egy BTFSS és egy GOTO van az újabb vizsgálat között.
De mindegy, a lényeg az, hogy a timer forrás beállításban volt a hiba, a többi tanácsot meg köszönöm.
(#) ka213 hozzászólása Nov 8, 2007 /
 
Sziasztok!
Még új vagyok.
A kérdésem a következő lenne:
Egy 16F628 as picbe kellene egy fordulatszámmérő lefordított programot belevinni. Csinál ilyet valaki közületek, és ha igen, akkor mennyiért?
köszönöm, Attila
(#) gulasoft válasza ka213 hozzászólására (») Nov 8, 2007 /
 
Ha megvan a progi, akkor Én megcsinálom neked ingyen.
A XVII. kerületben lakom ha az jó neked.
(#) ka213 válasza gulasoft hozzászólására (») Nov 8, 2007 /
 
Szia!
Köszönöm, én is a XVII-ben lakom, a Borsó utcában.
Szombaton megveszem a picet, me ami kell hozzá, majd akkor írok hogyha megvan.
Nagyon jó lenne, és előre is nagyon köszönöm.
Attila
(#) gulasoft válasza ka213 hozzászólására (») Nov 8, 2007 /
 
Többit privátban.
(#) grapee hozzászólása Nov 8, 2007 /
 
Sziasztok!

Egy talán már nagyon unt kérdéssel nyitnék e körben:

Építettem Oshon féle égetőt, az ő szoftverüket használom a gépen, de a pic-be (16F628A) nem akar sehogyse "bemászni" a program. Mindig Verify Failed, ill. ha visszaolvasom, akkor 3fff mindenhol.
Ez utóbbi gondolom a nem megfelelően beállított kimeneti invertek miatt van, így felmerül az első kérdésem is:

mi a pontos beállítása eme 5 pipának? Mit kell invertálni és mit nem?

A másik pedig, hogy első körben az lvp-re gyanakodtam, így az újra fordított kódban beszúrtam egy _LVP_OFF parancsot is a megfelelő PIC konfiguráló részbe, égető szerint is off (Config Word 3f6e - ha jól rémlik), de így is eredménytelen a dolog.

Vpp és Vdd rendben, szépen kapcsolgatja is, ha a Hardware - Check menüpontban állítgatom.

Ami talán érdekes lehet, hogy ha beteszem a foglalatba a pic-et, akkor (ha jól rémlik), a Vdd ledje haloványan világít. Amikor meg szoftverből bekapcsolom, akkor teljes fényerővel.
Esetleg emiatt nem megy az írás?

Köszönöm a segítséget.

Egy lelkes amatőr
(#) potyo válasza grapee hozzászólására (») Nov 8, 2007 /
 
A másik három pipának ellentétesen kell állnia, mint ahogy a vpp és a vdd van.
(#) watt válasza grapee hozzászólására (») Nov 8, 2007 /
 
Ahogy a Vpp-t és Vdd-t kipróbáltad a check menüben, ugyanúgy az óra és az adatvezetékeket is ki tudod. Ha nincs műszered(mondjuk az elég fura lenne!), akkor akár egy LED-et is fel tudsz tenni a kimenetre, úgy, hogy az anód +5V-on, a katód egy 1k-n keresztül a kimenetre. A LED-nek akkor kell világítania, amikor a pipa nincs betéve!
A printer porttól milyen hosszú vezetéket használsz, és milyet?
Az ICSP porttól a PIC-ig milyen hosszú a vezeték és milyen?
(#) szilva válasza watt hozzászólására (») Nov 8, 2007 /
 
Ahogy nézem azt a rajzot, nem lehet, hogy a clk/dat lábakat meghajtó 7406 kimeneti felhúzóellenállásai nem a kapcsol Vdd-re, hanem a +5V-ra lettek kötve?

Talán az okozhatna olyat, hogy a PIC behelyezésekor a Vdd led halványan világít (a PIC bemenetein lévő clamp-diódákon és a felhúzó ellenálláson keresztül). Egyéb esetben nem látom, hogy mitől világíthatna a LED.
(#) watt válasza szilva hozzászólására (») Nov 8, 2007 /
 
Nekem akartál válaszolni?
Egyébként nem nagy baj, hogy az a LED pislákol. A többi kérdés sokal fontosabb.
(#) grapee válasza watt hozzászólására (») Nov 8, 2007 /
 
Hazaértem
Egyből neki is estem.
Az eredmények:

LPT = EPP a biosban
Kábelhossz: csatlakozók végétől végéig 30cm

ICSP portot passzolom, nem ismerem ezt a rövidítés (még), de ha arra gondolsz, hogy a PIC foglalat és az égető egyes kimenetei között mekkora a távolsag, akkor az kb. 10cm lábanként.
Teszek fel egy képet a kész íróról, az talán segít.

HW - Settings:
Invert CLK (3), DIN(2), DOUT(10) - zárójelben az LPT láb száma

HW - Check:
Testpont: PIC 5. láb (Vss)
Sehol nincs pipa -> minden kimenet = 0

Pipa (PIC láb száma) -> Mért érték
Vdd (14) -> 4,97V
Vpp(4) -> 13,10V
CLK(12) -> 3,2V - itt lesz a bibi szerintem
Data(13) -> 3,27V
Lvp(10) -> 0,0V

Ha kipipálom a Vdd-t, akkor CLK és Data felmegy 4,97V-ra.

Mindezt úgy mértem, hogy a PIC benne volt a foglalatban.

Remélem tudtam segíteni a távdiagnosztikában és előre köszönök minden segítséget!!!

(Vettem új 74LS06 és 07-es IC-ket, hátha építés közben megsült - ha esetleg cserélni kéne)
(#) potyo válasza grapee hozzászólására (») Nov 8, 2007 /
 
Ezek így nagyjából jónak néznek ki, az még a kérdés, hogy amikor a DATA-t bepipálod, akkor bepipálódik-e az alatta levő doboz is? A vizsgálódásnak csak bekapcsolt vdd mellett van értelme, mert arra vannak a felhúzóellenállások kötve.
(#) grapee válasza potyo hozzászólására (») Nov 8, 2007 /
 
Igen, amint bepipálom a Data-t, az alatta lévő is kap egyet.
Ez így jó?

Csatoltan az ígért képek
(#) grapee válasza grapee hozzászólására (») Nov 8, 2007 /
 
2. adag
(#) szilva válasza watt hozzászólására (») Nov 8, 2007 /
 
Hát.. izé

Szóval én csak rajzról ismerem ezt az égetőt, nincs vele tapasztalatom, de az írásodból úgy éreztem, Neked annál több lehet.

Az eredeti kérdésben felvetett LED-pislákolásra tettem csak egy észrevételt, de ha tapasztalatod szerint ez normális, és nem elkötés okozza, akkor nyílván máshol kell keresni az esetleges hibát.

Azért ugye nem baj?
(#) watt válasza szilva hozzászólására (») Nov 8, 2007 /
 
Persze, hogy nem! Csak azt hittem véletlenül válaszoltál nekem, mert ugye nem én kérdeztem.
Egyébként ez a pislákolás azért van amit írtál, de meg is lehet szüntetni, pont azzal amit írtál(kapcsolt feszre kötni a felhúzókat).
(#) watt válasza grapee hozzászólására (») Nov 8, 2007 /
 
Én úgy látom, hogy a Status of DATA IN line nem pipálódik ki, miközben a DATA OUT be van pipálva!

Ha kiveszed a pipát az OUT-ról és akkor kipipálódik, akkor az Invert Data IN pipát vedd ki!
Az IN-nek akkor kell kipipálódni, ha az OUT be van pipálva.
A Vdd-t kapcsold be, PIC-et vedd ki!
(#) grapee hozzászólása Nov 8, 2007 /
 
Módosítottam:

Invert CLK és DOUT van csak kipipálva.
Így már a CHECK menüben úgy viselkedik, ahogy leírtad:

Alap esetben csak a Status... van kipipálva.
Ha viszont engedélyezem a Data Out-ot, akkor a Status... mellől eltűnik a pipa.

Így sikerül is írnom a PIC-be, de van két furcsaság:
1. Ha első lépésben Erase All-t nyomok majd ez után egy Blank Check-et, akkor hibát dob: 0000h-n nem üres, ott 000h-t olvasott - nem ez lenne az üres?

2. Újra Erase All - biztonság kedvéért. Visszaolvasom Read All-al és minden 0000, eddig jó.
Programot betöltöm, első hex: 294B, Program All ....
Majd ha visszaolvasom, akkor az első hex: 16B4
Ez a kettő együtt meg pont 3FFF-et ad, azaz ha jól sejtem, az invertját írja a PIC-be....

Ha a HW - Settingsben átállítom az Invertet a Data IN-re (Data Outról leveszem), akkor meg nem ír semmit a PIC-be....

(#) watt válasza grapee hozzászólására (») Nov 8, 2007 /
 
Csak a pontosítás miatt kérdem, hogy amikor a DATA IN nincs invert pipálva, és így amikor a DATA OUT check-et kipipálod, akkor az IN is kipipálódik magától?

Nehéz elhinni, hogy invertálva íródna bármi a PIC-be, mert az írás folyamata egy lépésenkénti programvégrehajtáshoz hasonlít. Ha valami beíródik, akkor az tutira nem inverz!
(#) grapee válasza watt hozzászólására (») Nov 8, 2007 /
 
Nem.
Azaz felváltva megy csak.
Ha Dout kap pipát, Din-ről eltűnik és vice versa.

Az inverz pedig nekem is fura volt...pedig többször is írtam így és mindig az inverzét olvasta vissza - de még a config word is pont inverz...
(#) watt válasza grapee hozzászólására (») Nov 8, 2007 /
 
Invert Data IN pipával nem tudod a szinkront megteremteni? Az egyik állapotában jónak kell lennie!!!
(#) menyus hozzászólása Nov 8, 2007 /
 
Sziasztok!

Még mindíg nem boldogulok ezzel az LCD s dologgal... Úgy döntöttem elég nekem a nyolc bit az ADC nél, tehát az ADRESL t nem használom. Akkor nem kell szenvednem a 10 bittel, legfeljebb kisebb lesz a tartomány felbontása. Jelenleg úgy van megoldva a mintavételezés hogy rutinból meghívom 16 X az ADRESH t, és utána átlagolom, azaz osztom 16 al(szintén rutinból meghívok egy 16 os osztást "4X RRF adresh_i ". Így jelenleg 000 - 255 közötti tartományt tudok átfogni. Ha ismét meghívom az osztást, azaz tovább osztok 16 al, akkor ugye 000 - 015 ig kéne lebutuljon a felbontás. Na itt a bibi, mert nem változik semmi..Vajon miért?

MINTA
bcf STATUS,RP0
clrw
movf ADRESH,w

addwf adresh_i
return

ATLAG


clrc
rrf adresh_i
rrf adresh_i
rrf adresh_i
rrf adresh_i

G.JPG
    
(#) grapee válasza watt hozzászólására (») Nov 8, 2007 /
 
ááááá - megőrülök...megpróbáltam 4 variációban is.
Inv Clk - Inv DOut - Din
Inv Clk - Dout - Inv Din
Clk - Inv Dout - Din
Clk - Dout - Inv Din

És csak egy esetben ír a pic-be, mégpedig az elsőben - de akkor is inverzet.....sztem iszom egyet (kis koffeint ), aztán filó tovább, mert ez lesz a jó, csak miért pont inverzet ír.....ezt kell megfejtenem

De ami még mindig kotoszkál bennem: miért hasal el a blank check, ha egyszer erase all után a rad all csak 0000-t ad vissza?....
(#) watt válasza menyus hozzászólására (») Nov 8, 2007 /
 
A léptetések előtt a C-t érdemes törölni(BCF STATUS,C).
Lehet, hogy ezért húz be egy 1-es pl.

A másik, hogy erősen figyelj a bankokra! Főleg, ha a szimulációban sem változik egy regiszter értéke, akkor nagy eséllyel ez a baj!
(#) menyus válasza watt hozzászólására (») Nov 8, 2007 /
 
Minden "RRF" előtt törölni kell vagy elég az osztás elején? A bankos dolgot átnézem, tegnapelőtt már belefutottam egy ilyen hibába... Norberto segített át rajta.
(#) watt válasza grapee hozzászólására (») Nov 8, 2007 /
 
Törlés után 3FFF-nek kéne lenni mindegyiknek, csak az inverz visszaolvasás miatt lesz 0000, ami nem jó fázist jelent a DATA IN-nél!

Tedd be úgy az inverz pipát, hogy a Data OUT bejellölésekor a DATA IN is bejellölődjön, és így próbálj eredményre jutni, mert egyébként soha nem fog jó lenni!
(#) watt válasza menyus hozzászólására (») Nov 8, 2007 /
 
Mindegyik előtt kell, mert ha az előzőből kilépet egy 1-es, akkor az be fog lépni a következőbe!
(#) potyo válasza grapee hozzászólására (») Nov 8, 2007 /
 
Szerintem csak inverzet olvas vissza. Az nem ugyanaz, mint az, hogy inverzet ír bele! (Egyébként sem lehet olyan hiba, hogy az inverzét írja bele). A flash pedig törölt állapotban 1-et tartalmaz, nem 0-t.
Következő: »»   97 / 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