Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   685 / 1320
(#) Attila86 válasza spepe hozzászólására (») Feb 24, 2010 /
 
100ms-onként veszem a mintákat.
(#) spepe válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Uhh. Akkor nem tudom, hogy mi lehet a gond. :S
Nekem nem volt ilyen vagy csak nem vettem észre.
(#) dinokal válasza spepe hozzászólására (») Feb 24, 2010 /
 
Szia! Érdekelne a szkópod! Hasonlót szeretnék én is csinálni, egy analóg szkópot szeretnék kibővíteni tároló funkcióval.
(#) szilva válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Lehet, hogy más egységek működésének a zaja "hallatszik" bele a mérésbe. Az ilyenen a program kismértékű átszervezésével lehet talán segíteni, hogy a folyamatok ne teljesen aszinkron történjenek.
(#) Hp41C válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Szia!

A mérési hibának az is lehet az oka, hogy más vezérlés (led, optocsatoló, stb.) nagy árama átfolyik azon a vezetéken, ami a hőmérőt és a pic referencia pontját köti össze...

Szia
(#) Attila86 válasza Hp41C hozzászólására (») Feb 24, 2010 /
 
Szia!

Aki nem ismeri az eddigi munkáimat az nem tudja, hogy én már bőven megjártam a hadak útját. Hidd el, tudom hogyan kell huzalozni...
AGND, DGND, csillagpont stb... én ezekkel álmodom...
(#) sucuka válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Én kiváncsi lennék rá, hogy kell huzalozni. Ha jól láttam, ez a leírásod még nincs kint az oldaladon
(#) Attila86 válasza sucuka hozzászólására (») Feb 24, 2010 /
 
Egyszerű. Az a lényeg, hogy a réznek is számottevő ellenállása van. A kapcsolási rajzon minden összekötés helyére képzelj 1-1 ellenállást. Innentől már érthető szerintem a dolog.
(#) t-dani válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Idézet:
„Hidd el, tudom hogyan kell huzalozni...”


Lehet. Mégis inkább szívből örülni kellene annak, ha valaki egy kétes helyzetben méltóztatik a legapróbb lehetséges hibákra is felhívni a figyelmet... ellenkező esetben nem biztos, hogy legközelebb is a segítők mellé szegődik a kedv.
(#) Attila86 válasza t-dani hozzászólására (») Feb 24, 2010 /
 
Igazad van, csak hogy ez a téma már szóba került párszor ebben a topikban is és minden alkalommal elmondtam ugyan ezt...
Sőt, jelen esetben is leírtam hogy a nyák jól van huzalozva.
(#) watt válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Idézet:
„Sőt, jelen esetben is leírtam hogy a nyák jól van huzalozva.”

És ha netán még sem, akkor megmarad a hibád!
Azt is nézd át, hogy milyen megszakítás történhet a mintavétel alatt, hátha valami elrángatja onnan a fonalat!
(#) Attila86 válasza watt hozzászólására (») Feb 24, 2010 /
 
Idézet:
„Azt is nézd át, hogy milyen megszakítás történhet a mintavétel alatt”

Semmilyen, mert a mintavétel is a megszakításban történik.
  1. movlw   b'00000101'
  2.         movwf   ADCON0                  ;AN1 lesz használva, engedélyezve (szonda 1)
  3.         bsf             ADCON0, GO_DONE         ;A/D konverzió indítása
  4.         btfsc   ADCON0, GO_DONE         ;befejeződött az A/D konverzió?
  5.         goto    $-2                                     ;ha nem, akkor kérdezd meg újra!
  6.         movff   ADRESH, MÉRT_HŐMÉRSÉKLET_1_H
  7.         movff   ADRESL, MÉRT_HŐMÉRSÉKLET_1_L
  8.         movlw   b'00000001'
  9.         movwf   ADCON0                  ;AN0 lesz használva, engedélyezve (szonda 2)
  10.         bsf             ADCON0, GO_DONE         ;A/D konverzió indítása
  11.         btfsc   ADCON0, GO_DONE         ;befejeződött az A/D konverzió?
  12.         goto    $-2                                     ;ha nem, akkor kérdezd meg újra!
  13.         movff   ADRESH, MÉRT_HŐMÉRSÉKLET_2_H
  14.         movff   ADRESL, MÉRT_HŐMÉRSÉKLET_2_L
(#) icserny válasza Attila86 hozzászólására (») Feb 24, 2010 / 1
 
Azért a csatornaváltás és a konverzió indítása között várhatnál egy kicsit! Így előfordulhat, hogy a bementi kondenzátor még nem töltődik fel rendesen, s a konverzió meg már lekapcsolja a forrásról.

Próbáld ki úgy, hogy beteszel néhány NOP-ot a movwf ADCON0 és a bsf ADCON0, GO_DONE utasítások közé!
(#) Attila86 válasza icserny hozzászólására (») Feb 24, 2010 /
 
Ez teljesen jó ötlet, kipróbálom!
(#) spepe válasza dinokal hozzászólására (») Feb 24, 2010 /
 
Ennek nagyon örülök! C-ben csináltam a programot a kijelző 128x64-es grafikus, fekete fehér LCD (Bővebben: Link).

Kezdetnek szerintem nem rossz. A felbontása is állítható valamennyire potival. Csak az a gond, hogy a kirajzolás sok processzor időbe kerül ezért nem valami nagy.

Ha érdekel elküldöm a kódot.
(#) The_Saint hozzászólása Feb 24, 2010 /
 
Sziasztok!

Még mindíg bajlódok a bitkép megjelenítéssel. Valami nem akar összejönni. Hogy ne kellejen visszaolvasni: 16F876 és 128x64 kijelző, ks0108-al. Végül is Hp41C által küldött megoldás vezetett a jó megoldáshoz.... a képet már látom , ez egy jó hír, tudom, de a problémám az ott van, hogy 2x8 page van a kijelzőn.... na most ha szépen ctrl-c ctrl-v vel egy más után beillesztem a page kijelző szubrutint, akkor tökéletesen műkodik, közben a kellő chipváltással és page szám növeléssel.... na de igy kilóméteres a lista. Amint beleraknék egy növeldapageértéketaztángotoazelejére utasításpárt, a kijelzőn megjelenik Neo és a Watsovsky B. összes spec efektje.... ilyen problémám már volt, akkor potyo megoldása segített, de most valahogy nem jön össze egyedül.... aztán sajna van még egy kérdésem is, de azt majd később. Kérlek ha van valami ötletetek erre, hogy mit is ronthatok el, osszátok meg velem...

Köszi!

The_Saint
(#) dudzsi hozzászólása Feb 24, 2010 /
 
Sziasztok.

Most ismerkedek a Pices dolgokkal. És találtam egy programot ami nekem böven megfelel. "Flowcode"Nem akarok mega projekteket csinálni. De lenne egy nagy kérdésem. Szeretném a Picet sleepbe rakni és WDT-vel egy álltalam beállitott idö után vagy port állapot változásra felébreszteni. Ehez kellene nekem C-be valami amit a flowcode meghiv. Csak sajna ehez nem igazán értek. Megköszönném ha tudna valaki segiteni.
(#) Hp41C válasza Attila86 hozzászólására (») Feb 24, 2010 /
 
Szia!

Elnézést, még egyszer nem írom le....
Bár ezt a kérdést is kitárgyaltuk többször itt a topikban, sőt az adatlapon még számítás is van (us nagyságrendű késleltetés kell).

A vezetékeknek nem csak ellenállása, hanem induktivitása is van, a vékony hosszúnak nagyobb ...

Még azt sem írom le többször, hogy a 230V-os és a leválasztott részek között nyákon 7.5 mm szigetelést kell alkalmazni, a nyákos nyomógomb nem felel meg az életvédelmi előírásoknak...

(((Terveztem még a TTL LS korszakban (kb.20-22 éve) 130 IC-t (köztük Z80, I8231, WD2927 stb) egy dupla európa kártyára. A kétrétegű huzalozás (1 mm vastag föld és táp veztékekkel, a hálós kialakítás, rengeteg szűrőkondenzátorral nem volt megfelelő. A CP/M alatt futó (ramba betöltött) programok minduntalan elszálltak, az Eprom- beliek futottak... 4 rétegben kellett elkészíteni - a belső két fólia táp és föld felület volt. Így megbízhatóan működött....)))

Szia
(#) The_Saint válasza dudzsi hozzászólására (») Feb 24, 2010 /
 
Hát, megpróbálok válaszolni a kérdéseidre....remélem sikerrel, de a guruk majdcsak kijavítanak:
1. Sleep
beírod a programba, valahova, hogy sleep akkor ott elalszik a PIC.

2. na itt kezdődik a bonyolultság. TMR0-t a WDThez rendeled az OPTION_REG regiszterben (lsd. PIC Datasheet) és onnantól kezdve a WDT ébresztheti a PIC-edet. 4MHz eseten ez kb 1/4 mp-enként meg is történhet, ha nincs jobb dolga a PIC-nek

3. portlábon jelváltozásra ébredés: Engedélyezed a megszakítást (INTCON regiszter), kell a globális, a periféria és nem áárt, ha a PORTB is configurálod 4-7 lábig bemenetként, bár ebbe most nem vagyok biztos. lehet, hogy csak a RB0 tud ébreszteni.

most ennyire futotta
Üdv
The_Saint
(#) Hp41C válasza The_Saint hozzászólására (») Feb 24, 2010 /
 
Szia!

- Jó kontroller típust kell választani - van olyan, amit a TMR1 (T1 oszcillátorral vagy külső órajellel), és még sok más modulja is fel tud ébreszteni.
- Felébresztés időre: A TMR1-et be kell állítani a megfelelő időzítésre, a megszakítását engedélyezni kell (PEIE és TMR1IE). Felébredés a TMR1 átfordulásakor. A wd timerrel is lehet...
- PortB bitjeinek megváltozására: Általában az RB7..4, de van olyan kontroller is, ahol más lábak, vagy az egész RB7..0 is rendelkezik Interrupt On Change lehetőséggel. A kívánt bitekre engedélyezni kell. A megszakítást is engedélyezni kell (PEIE, RBIE).

Amikor a program a sleep utasításra fut, a végrehajtás leáll (az órajel is). Ha megjön az ébresztés két lehetőség van aszerint, hogy a megszakítás (GIE) engedélyezett volt vagy sem:
- Ha engedélyezett volt, akkor a megszakítási rutinra adódik a vezérlés
- Ha a GIE tiltva volt, a következő utasítással folytatódik a program.

Szia
(#) dudzsi válasza The_Saint hozzászólására (») Feb 24, 2010 /
 
A sleepelés az megy. Van egy fül ahol c kodot lehet be illeszteni. 16F676 picem van abba van TMR1 viszont B lábak nincsenek csak A meg C. Ezzel a piccel konkrétan hogy kellene?
(#) The_Saint válasza dudzsi hozzászólására (») Feb 24, 2010 /
 
na most konkrétan ezzel a PIC-el még nem dolgoztam. De biztos van leírásod róla. Ott meglátod, hogy melyik lábak, mire konfigurálhatóak.... Mi a B portról beszéltünk, de szerintem bármelyik láb, amelyiket az INTCON regiszterrel kapcsolatba lehet hozni, azt használhatod.... első blikkre az RA2...

De! nem néztem végig a datasheetet, de az A PORT általában AD converter is. Tehát az ADCON regisztereket is configurálnod kell.

Üdv

The_Saint
(#) vicsys válasza icserny hozzászólására (») Feb 24, 2010 /
 
Köszi. Átnyáladzom.
(#) szilva válasza Hp41C hozzászólására (») Feb 24, 2010 /
 
Vigyázni kell, mert van sok olyan interruptforrás, ami sleep-ből _nem_ ébreszt! Ezek azok, amikhez kell az, hogy az utasításvégrehajtás pörögjön, mert annak az egyik fázisában ellenőriz valamit (pl. az előző állapothoz képesti változást). Minden esetben meg kell nézni az adatlapot, hogy mik azok, amik a konkrét PIC-en tudnak ébreszteni.
(#) sucuka válasza Hp41C hozzászólására (») Feb 24, 2010 /
 
Szia!
Ezzel kapcsolatban kérdeznék:
Idézet:
„hogy a 230V-os és a leválasztott részek között nyákon 7.5 mm szigetelést kell alkalmazni”


Melyik ez a szabvány amiben ez le van írva? jó tisztában lenni az ilyen dolgokkal. Köszi!
(#) The_Saint hozzászólása Feb 24, 2010 /
 
Sziasztok!

van valakinek PIC-hez, bármilyenhez, asm forráskódja a DS18B20 thermo-sensor SearchROM commandhoz? Vagy ha valaki elmagyarázná nekem emberi nyelven, hogy hogy működik, még az is segítene...

Előre is köszi!

Üdv
The_Saint
(#) icserny válasza dudzsi hozzászólására (») Feb 24, 2010 /
 
Az adatlap felületes átfutása alapján ezek "ébresztenek":
- RESET
- WDT túlcsordulás
- RA2 interrupt bementre adott jel
- PORTA interrupt-on-change
- Timer1 túlcsordulás (aszinkron módban, saját oszcillátorról vagy külső forrásból)
- Analóg komparátor interruptja
- Analóg-Digitál átalakító interruptja
(#) icserny válasza The_Saint hozzászólására (») Feb 24, 2010 /
 
Ebben a topikban nézz szét: DS18B20 hőmérő-szenzor (Ha mást nem, valami linket csak találsz benne).
(#) The_Saint válasza icserny hozzászólására (») Feb 24, 2010 /
 
Köszi, már megtettem, de sajnos vagy nem vettem észre, vagy senki nem akart még ilyet csinálni.... a maximmal is felvettem a kapcsolatot, de korrekt választ nem adtak, csak két app.note-ot, ami nekem is megvan, de nem mentem vele semire eddig... nem a kezeléssel van baj, csak ezzel az egy commandal. 2 nyamvadt szenzort kellene rárakjak arra a bizonyos 1-wire-ra, de a S.ROM command nem nagyon jön össze.... na mind1, még küzdök vele
(#) szilva válasza The_Saint hozzászólására (») Feb 24, 2010 /
 
Nem csináltam még ilyet, de emlékszem rá, hogy vagy az adatlapban, vagy valamelyik appnote-ban volt egy elég részletes algoritmus leírva a keresésről.
Következő: »»   685 / 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