Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   460 / 1320
(#) menyus hozzászólása Ápr 16, 2009 /
 
Sziasztok!

Kérdezni szeretném hogy véleményetek szerint ez így működőképes?

Igazándiból csak a movf indf,rcreg ben nem vagyok biztos...


x.txt
    
(#) szigetivan válasza menyus hozzászólására (») Ápr 16, 2009 /
 
Csatold a programod!
(#) menyus válasza menyus hozzászólására (») Ápr 16, 2009 /
 
Valahogy nekem mindíg összevissza jelenik meg a kód, de biztos csak én vagyok a béna és nem tudom használni az oldalt..Ezért csatolom .txt ben.
(#) menyus válasza menyus hozzászólására (») Ápr 16, 2009 /
 
Hát ez így nem lesz jó már látom...Talán így

y.txt
    
(#) trudnai válasza menyus hozzászólására (») Ápr 16, 2009 /
 
Idézet:
„Valahogy nekem mindíg összevissza jelenik meg a kód, de biztos csak én vagyok a béna és nem tudom használni az oldalt..Ezért csatolom .txt ben.”


De miert TXT-ben? Miert kell atnevezni az ASM-et TXT-re mielott csatolod?
(#) menyus válasza trudnai hozzászólására (») Ápr 16, 2009 /
 
Nem átnevezem, csak ilyenkor megynyitok egy jegyzettömböt és az ASM ből kimásolom a kérdéses részt. De csatolom az teljes programot is ASM ben. Ez csak egy piszkozat, a fejléc szövegezése a működésével kapcsolatban erre az átírt programra már nem aktuális.
(#) szigetivan válasza szigetivan hozzászólására (») Ápr 16, 2009 /
 
Megtaláltam a hibát, csak nem értem, hogy miért hibázik.
para = (ADRESH<<8)+ADRESL;

ezt nem jól csinálja meg, míg az előtte lévő részben jól , ha külön-külön kiolvasom az ADRESH és ADRESL értékét úgy nincs gond.>>
(#) icserny válasza szigetivan hozzászólására (») Ápr 17, 2009 /
 
Valószínűleg az a gond, hogy ADRESH 8 bites regiszter, s a fordító nem csinál automatikus típuskonverziót, hanem a balraléptetéssel "kisöpri" belőle a biteket...
(#) icserny válasza szigetivan hozzászólására (») Ápr 17, 2009 /
 
Idézet:
„A nyákon most 1,92 V-ot ad”

Ha már kezedben volt a voltméró, az 5 V-ot (a szenzor tápfeszültségét) is megmérhetted volna!

Arra egyébként ügyelj, hogy az ADC referenciája és a szenzor táfeszültsége azonos legyen, s akkor legalább a tápfeszültség változásának hatása kiesik.

Az adatlapon levő képleteket meg majd átkell szőrözni, mert egyik helyen 0.958V-nak olvastam az offszet értékét, máshol meg 0.8V-nak. Utóbbival számolva az 1,92 V 36.5 %-ot ad, ami jó egyezés a "majdnem 40 %"-kal.

A magasabbrendű görbével illesztett karakterisztika paramétereiről meg a hőfok kompenzációról még nem is szóltunk... Remélem, azok is szerepelnek a teendők listáján!
(#) watt válasza icserny hozzászólására (») Ápr 17, 2009 /
 
Nekem már elsőre gyanús volt, hogy hogyan lesz ez értelmezve.
Az viszont fura, hogy elsőre jó, aztán meg nem? Szerintem egyáltalán nem jó így, mert szerintem is kisöpör belőle mindent, és telerakja valamivel, még az is lehet, hogy a carry épp aktuális értékeivel, vagy nullákkal.
(#) szilva válasza watt hozzászólására (») Ápr 17, 2009 /
 
Azt nem csinálhatja, hogy "valami" belekerül jobbról, mert ez a művelet definiálva van a c-ben (left shift, nullákkal feltöltve). Az meglehet, hogy nem megfelelő hosszúságú adaton hajtja végre a balra tolást, de ezen meg tudni kellene segíteni egy casting-gal, pl.:

para = ( ( (int16)ADRESH ) << 8 ) + ADRESL ;

Persze "int16" helyére olyan típust kellene írni, ami az adott c implementációban 16 bites egészt jelent. A sok zárójel közül is lehet, hogy vannak elhagyhatók, de én inkább kiírom mindet, hogy egyértelmű legyen a végrehajtás sorrendje.>>
(#) watt válasza szilva hozzászólására (») Ápr 17, 2009 /
 
Szerintem is a casting lehet egy megoldás, bár annak is jónak kéne lenni, hogy
para = ADRESH*256+ADRESL
Ha a fordító elég fineszes, akkor shiftelésre fordítja a szorzást. Van egy sejtésem, hogy ez nem minden esetben lenne így!
(#) icserny válasza watt hozzászólására (») Ápr 17, 2009 /
 
Idézet:
„Nekem már elsőre gyanús volt, hogy hogyan lesz ez értelmezve.”

Az a baj, hogy ilyenkor a fordító "jóindulatára" van bízva a dolog értelmezése. A CCS C fordító például nemes egyszerűséggel "kioptimalizálta" az (ADRESH<<8) tagot, mondván: úgyis nulla lenne, akkor minek kiszámolni...

Más bitszámú eltolásnál csak 8 biten végzi el a műveleteket, így a kicsorgó bitek elvesznek.

Az alábbi sor viszont jól fordul le:
  1. para = ((int16)ADRESH<<8) +ADRESL;
(#) lidi válasza icserny hozzászólására (») Ápr 17, 2009 /
 
Én is néztem ezt régebben Hi-Tech-el hogy hogyan oldja meg. Ha jól emlékszem volt annyi esze, hogy az para = ADRESH*256+ADRESL esetében simán bemásolta a felső byte helyére a 256-os szorzatot, az alsó byte-ra meg az ADRESL -t. Tehát nem shiftelt, meg szorzott, hanem csak a megfelelő 8 bites memória részekre másolta az adatokat.
(#) trudnai válasza lidi hozzászólására (») Ápr 17, 2009 /
 
Idézet:
„Én is néztem ezt régebben Hi-Tech-el hogy hogyan oldja meg. Ha jól emlékszem volt annyi esze, hogy az para = ADRESH*256+ADRESL esetében simán bemásolta a felső byte helyére a 256-os szorzatot, az alsó byte-ra meg az ADRESL -t. Tehát nem shiftelt, meg szorzott, hanem csak a megfelelő 8 bites memória részekre másolta az adatokat.”


Igen, ezt minden normalis kod optimalizalonak tudnia kell. Az egyetlen bokkeno, hogy ezekben az ingyenes "hobby valtozatokban" vagy teljsen kikapcsoljak az optimalizalast vagy csak reszlegesen, es akkor kezdodnek a gondok a kodmeretekkel meg a futasi idovel. Ezt az egyet nagyon jol csinalja az AVR, hogy ingyen van hozza a GCC aminel nincs sem kod sem pedig optimalizacios korlat.
(#) watt válasza lidi hozzászólására (») Ápr 17, 2009 /
 
No igen, ez is teljesen ésszerű lenne!
(#) drywater hozzászólása Ápr 17, 2009 /
 
Hali!

Óra feledékenyeknek kapcsolást szeretném megépíteni, de saját tervezésű nyákon. A nyák elkészült, minden be van forrasztva. De valami oknál fogva nem megy.

Már 3x átnéztem a forrasztásokat, a nyák összeköttetéseket meg az adatlapokat. A diódák, tranzisztorok, IC-k szerintem jó irányban vannak. A táp és föld mindenhol megvan és az értéke is stimmel.

Ami látványosan rossz: melegszik a PIC16F628A, mint a villanyrezsó...

Megmértem a 4MHz-es kristályt szkóppal is. Valami randa 100Hzes jel volt a lábain.

Szerintetek hol rontottam el, de nagyon?
(A nyákról csak este tudok infot feltenni.)
(#) potyo válasza drywater hozzászólására (») Ápr 17, 2009 /
 
Fordítva van ráadva a táp?
(#) drywater válasza potyo hozzászólására (») Ápr 17, 2009 /
 
Szerintem nem. De megnézem újra.
(#) drywater válasza potyo hozzászólására (») Ápr 17, 2009 /
 
Egyre jobb.
A PIC és a meghajtó IC egy-egy foglalatban van. Egy 12Vos adapterről kapják a naftát, amiből egy stab ic 5V-t csinál. Első körben a feszültségeket az IC-k nélkül néztem.

Ha bent vannak az IC-k, a következő feszeültség lesznek:
5V -> 2.5V
12V -> 5V

Ezt már végképp nem vágom, hogy mitől lehet.
(#) potyo válasza drywater hozzászólására (») Ápr 17, 2009 /
 
Úgy értettem, hogy a kontrollerre van fordítva adva a táp, hogy össze van cserélve a két táplába. A 7805 kimenetére kellene egy 100nF-os kerámiakondenzátor közvetlenül a lábaira, illetve ugyanilyen kellene a PIC két táplába közé is, szintén a lehető legközelebb hozzá. Lehet, hogy gerjed a 7805. Melyik IC behelyezésekor alakulnak így a feszültségek?
(#) bladika válasza drywater hozzászólására (») Ápr 17, 2009 /
 
Szerintem ha küldesz egy nyáktervet mert azt mondod, hogy az saját, akkor tuti meg lesz a hiba!
(#) drywater válasza potyo hozzászólására (») Ápr 17, 2009 /
 
A feszeket az ic lábakon nézem.
Most bent volt mind a kettő, de megnézem őket külön-külön is.
(#) drywater válasza bladika hozzászólására (») Ápr 17, 2009 /
 
Lehet. De most nem tudom közzétenni a nyák-ot, mert nincs nálam a ter.

A feszültségek csak a PIC miatt változnak. Lehet, hogy valahol rövidre zártam?
(#) bladika válasza drywater hozzászólására (») Ápr 17, 2009 /
 
Biztos nem cserélted fel a tápokat véletlen a PICen amikor áttervezted? Nem keverted össze a Vdd/Vcc és Vss/Gnd elnevezéseket? Én rendre mindig eljátszom ezt figyelmetlenségből és akkor szokott nagyon melegedni a PIC.
(#) drywater válasza bladika hozzászólására (») Ápr 17, 2009 /
 
Az a baj, hogy az ember a saját hibáit nehezen veszi észre...

PCB terv lentebb.
(#) watt válasza drywater hozzászólására (») Ápr 17, 2009 /
 
Sehol nem látok szűrőkondit, amitől szerintem az egész gerjed.
(#) menyus válasza drywater hozzászólására (») Ápr 17, 2009 /
 
Én úgy látom a táp nincs fordítva a panelen, az IC foglalatokat jó oldalra ültetted be? Mert ugye be lehet forrasztani a TOP és a BUT oldalról is. Ha nem jó a beültetés akkor már fordítva van benne a PIC is...
(#) watt válasza menyus hozzászólására (») Ápr 17, 2009 /
 
Előbb írtam egyet, aztán töröltem, mert észrevettem, hogy a jobb felső sarokban jelölve van, hogy zöld sávok a TOP oldalon vannak. Hacsak tényleg nem cserélte fel az egészet(azaz az IC-ket nem a zöld, hanem piros túloldalról ültette be), akkor ennek jónak kéne lenni(eltekintve attól, hogy jelenleg nem minden részletét néztem meg, mert csak haladjunk fokozatosan.).
(#) whisky hozzászólása Ápr 17, 2009 /
 
Sziaszok!

Lenne néhány kérdésem a projektemmel kapcsolatban:

egy LED-et akarok villogtatni meghatározott frekvenciákon, 50-50% ki és bekapcsolással.
Ha megérintem a PIC-et a 10.-11. lábak környékén (nem a lábat, csak az IC tetejét), a frekvencia megváltozik, vagy ha sleepben van, akkor felvillan a LED, néha pedig egyszerűen elindul az egész, ráadásul a LED nagyon magas frekvencián, halványabban villog. nem tudok valamit csinálni, hogy stabilabb legyen? az MCLR lábat 10KOhm-val összekötöttem +5volttal, ami sokat javított, de még mindig instabil az egész.

Használok megszakításokat, de tesztelgetés közben úgy vettem észre, hogy nem csinál semmit a gomb(frekvenciát kellene növelnie vagy csökkentenie). a megszakítási rutin szerintem biztosan jó, többször is átnéztem már adatlap szerint, és több tutorialt is átrágtam. a gomb úgy van bekötve, hogy +5 voltot ad az egyik megszakítási lábra, és van egy 10KOhm-os ellenállás, ami ezt a lábat köti össze 0-volttal, ha ez az ellenállás nincs, akkor már ha megmozdulok, már másképp viselkedik az egész.
Következő: »»   460 / 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