Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   686 / 1320
(#) trudnai válasza The_Saint hozzászólására (») Feb 24, 2010 /
 
A WDT-nek saját oszillátora van. Független a pic fosc-jától.
(#) The_Saint válasza szilva hozzászólására (») Feb 24, 2010 /
 
Szia, nekem is megvan az a részletes cucc, AN187 néven fut. De vagy aludnom kéne rá egyet....vagy nem ittam még eleget, de nem értem ami ada van írva... próbálom megfogalmazni amit én értek:
1 reset és presence detect...
2 SROM command... (eddig tisza)
...
erre válaszol a mindegyik eszköz a saját ROM kódja 1 bitjével ami ÉS kapcsolatban leolvasható. Na ezt én úgy értelmezem, hogy ha minden 1 akkor 1, ha valami 0 akkor 0, ha mind 0 akkor is 0...
...a master kéri a következőt...
... erre az eszközök válaszolnak az 1. bit complemensével ÉS kapcsolatban....
az elv u.a. , de ebből hogy lesz számomra egyértelmű valami....
és mindez még 63 szor.... hhhhhhhh
(#) szilva válasza The_Saint hozzászólására (») Feb 24, 2010 /
 
Letöltöttem az appnote-ot, annak a végén még C kód is van. Most nincs hozzá agyam, hogy átnézzem, de valami bináris keresést emleget, tehát nyilván a kód és a részletes leírás alapján meg lehet írni akár asm-ben is.

De az is lehet, hogy nem is kell neked ez a keresés! Ha csak arra van szükséged, hogy két eszközt használj, akkor azt is megteheted, hogy egyenként a buszra csatlakoztatva őket kiolvasod az azonosítóikat és eltárolod azokat pl. EEPROM-ban. Ezután már a normál lekérdezéskor nem kell keresni, csak az eltárolt azonosítók alapján megszólítani őket. Ez nem jó megkerülő megoldas?
(#) The_Saint válasza szilva hozzászólására (») Feb 24, 2010 /
 
Ebben teljesen igazad van! De mindezt pár ezer eszköznél....Hát, külön embert kéne foglalkoztassak, aki éleszti a szenzoraimat , de az ötlet jó. Szerintem nekemis már az agyammal van baj...aludnom kéne

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

Ennek a dokumentumnak a 323. oldalán (relé beépítés ürügyén írnak róla).

Szia
(#) dudzsi válasza icserny hozzászólására (») Feb 24, 2010 /
 
Néztem az adatlapot. Én is láttam hogy mire tud felébredni. Csak azt nem tudom hogy melyikkel a legegyszerüb megcsinálni? A/D az használva lesz. A többi nem. Ismeri valaki a flowecode-t?
(#) icserny válasza dudzsi hozzászólására (») Feb 24, 2010 /
 
Idézet:
„Csak azt nem tudom hogy melyikkel a legegyszerüb megcsinálni?”

Szerinted mi honnan tudjuk, hogy mi a cél? Nem tudom, hogy hetente vagy fél miliszekundumonként akarod felébreszteni. Enélkül elég nehéz okosnak lenni...

Idézet:
„Ismeri valaki a flowecode-t?”

Van saját topikja,akik oda írnak, feltételezhetően ismerik, vagy ismerni akarják.
(#) sucuka válasza Hp41C hozzászólására (») Feb 25, 2010 /
 
Köszi szépen! Remélem hasznos lesz.
(#) kissi válasza The_Saint hozzászólására (») Feb 25, 2010 /
 
Ezt nem értem... Ha sok szenzort használsz, akkor nyilván különböző pontokon vagy kíváncsi a hőmérséklet értékekre , akkor pedig neked tudnod kell, melyik hol mér ( ezt az automatikus felderítés nem tudja megmondani!)!
Így mi értelme van az automatikus felderítésnek?
Az algoritmust egyébként szerintem jól látod, azzal a kiegészítéssel, hogy a kontroller visszaadja, hogy milyen bittel akar foglalkozni és amelyik eszköznek valamelyik kiadott bit nem stimmel az lekapcsolódik ( ezt most emlékezetből írtam, remélem jól!).

Steve
(#) dudzsi válasza icserny hozzászólására (») Feb 25, 2010 /
 
Sajna a flowcode forumba se tudja senki . Mert még nem használták. A cél az hogy kb 1 óránként felébredjen magátol.
(#) dinokal válasza spepe hozzászólására (») Feb 25, 2010 /
 
Szia! Érdekelne a kód és a kapcsolás is! Kijelző még nem biztos hogy lesz majd rajta, ha igen, van egy nokia kijelzőm. A szkóp egyik csatornájának van egy egyvoltos kimenete, erről venném a jelet, ramban tárolnám, és ha kell egy D/A átalakítón keresztül kiküldeném a másik csatornára. Max 100KHz-es jelig lenne érdekes, tápegységek, kapcsolók, relék vizsgálatához. Ez analóg szkópon elég bajos dolog a jelek egyszeri gyors lefutása miatt.
(#) icserny válasza dudzsi hozzászólására (») Feb 25, 2010 /
 
Idézet:
„A cél az hogy kb 1 óránként felébredjen magátol.”

Ugyan, ki adná az eseményjelet hozzá? Tegyél Timer1-re egy órakvarcot, s akkor 2 másodpercenként ébreszthetsz a számláló túlcsordulással! Szoftveresen számlálod az ébresztéseket, s amikor letelt az egy óra, akkor megcsinálod, amit óránként elvégezni akarsz. Ha pedig még nem telt le az egy óra, akkor visszaalvás.
(#) Hp41C válasza icserny hozzászólására (») Feb 25, 2010 /
 
Szia!

Órakvarcról, ha a Timer1 előosztóját is bekapcsoljuk, akkor 4, 8, 16 másodpercenként következik be az ébresztés. De alkalmazható esetleg külső oszcillátor is (pl. 32.768kHz oszcillátor egy 225 módusú CMOS előosztóval - Timer1 külső órajellel, 8-as előosztással pontosan óránként ébreszt.) Ha a Timer1 módusát programozod, akkor az előosztó akár 256-ot is oszthat - felhasználható a belső osztóval is rendelkező bináris osztó CD4060). Ha a készülék hálózati táplálású és a pontosság nem túl nagy igény, a hálózati 50Hz is felhasználható..

Szia
(#) icserny válasza Hp41C hozzászólására (») Feb 25, 2010 /
 
Külső áramkörökre én azért nem gondoltam, mert feltételeztem, hogy az energiatakarékosság miatt fontos az altatás. A Timer1 előosztása valóban bekapcsolható, arról megfeledkeztem.
(#) watt válasza icserny hozzászólására (») Feb 25, 2010 /
 
Hacsak nem egy RTC pl. belső kvarccal. Be lehet állítani azt is, hogy milyen időközönként adjon megszakító jelet a PIC felé. Addig a PIC aludhat...(nekem a hazvezérlőm órája ilyen, bár azt nem kell altatni, hanem 1s-ként ad egy megszakítást.)
(#) dudzsi válasza (Felhasználó 15355) hozzászólására (») Feb 25, 2010 /
 
Tudom, hogy a flowcodeba külön kel megadni c-be vagy asm-be. Már néztem én is a külföldi forumot amit te is belinkeltél. De azért kérdezem itt mert sajna nem tudok se c-be se asm-be programozni.
Igen, azért kell az alvás mod mert elemröl menne. Plusz külsö energia falok nélkül szeretném megoldani. Jelenleg Timer0 fut a proci de van 32kHz és 4MHz kvarcom is. Még most ismerkedek a Picekkel azért rakok fel hülye kérdéseket. Simpi sokat segitett hogy megértsem a Timer0. Ott valahogy agyhalálom volt.
(#) watt válasza dudzsi hozzászólására (») Feb 25, 2010 /
 
Idézet:
„Plusz külsö energia falok nélkül szeretném megoldani”

Az RTC(R2025S) nem energiafaló(egy gombelemről évekig elmegy). Ha a PIC alszik, és óránként felébreszti a PIC-et, akkor az kevesebb fogyasztás lesz, mint ha 2sec-enként felébred a PIC számolni. Arról nem is beszélve, hogy mennyivel pontosabb egy beépített kvarc...
(#) takytaky hozzászólása Feb 25, 2010 /
 
Sziasztok!
Segitene valaki egy egyszerű flip-flop-ban, ami zavarvédett? 16f84a
köszi... nem tudom mit rontottam el... de össze vissza kapcsol...néha igen, néha nem, néha rögtönki-be kapcsol.. próbáltam RB int.-al is ugy se jobb

flip-flop.asm
    
(#) Hp41C válasza icserny hozzászólására (») Feb 25, 2010 /
 
Szia!

32.768kHz-n a CD4060 sem zabál sokat (5V-on 5-10uA, 125 fokon <150 uA), az R2025S 3.3V-nál 0.45uA. (A timer 1 osszcillátor 6.5- 65 uA-t fogyaszt 5V-on, amit a külső áramkörök miatt ki lehet kapcsolni) Attól tartok nem ezek fogják lemeríteni az elemeket....

Szia>
(#) szilva válasza watt hozzászólására (») Feb 25, 2010 /
 
Nálam a PIC (16F946) másodpercenként 16-szor ébred fel egy timer1-es órakvarcról, olyankor kezeli a billentyűzetet, az idő számolását és hasonlókat (belső, 8MHz-es órajelről), majd visszaalszik. Közben az LCD üveget folyamatosan frissíti a belső 31kHz-es órajeléről (ezt ilyenkor tudja alvás közben is). Az egész áramkör áramfelvétele 3db AA celláról 6uA körüli. Láttam olyan óra IC-ket, aminél 50uA-es fogyasztás volt megadva...
(#) watt válasza szilva hozzászólására (») Feb 25, 2010 /
 
Végül is én nem azt állítottam, hogy a PIC sokat eszik, hanem azt, hogy többet, ha fel-fel éled, mint ha nem + az RTC.
(#) dudzsi válasza Hp41C hozzászólására (») Feb 25, 2010 /
 
Köszönöm a segitséget. Van böven információ Igazábol a pontosság nem lényeges. Nekem az is jó lenne ha 65uA enne. Szóval ha nem szeretnék RTC+CD4060-at. Csak a Timer1 orakvarccal. Akkor oda egy 32kHz kell?
Másik kérdés létezik az hogy Timer0-ba belsö oscillatorral ugy hogy semmi nincs rajta "led"2mA vessz fel 5V-4MHz-en?Vagy sz*r a müszerem.

Moderálva --vicsys
(#) szilva válasza dudzsi hozzászólására (») Feb 25, 2010 /
 
Szerintem reális a 2mA 4MHz-en. Soknak, vagy kevésnek találod?
(#) petXYZW hozzászólása Feb 25, 2010 /
 
Üdv mindenkinek!

Egy kis segítségre lenne szükségem, első PIC-es feladatomnál el is akadtam.

A probléma a következő:
-Sleep utasítás után nem tudom felébreszteni a PIC-et.

Nem akarom, hogy a megszakítást futtason, csak hogy felébredjen és ott folytassa ahol abbahagyta.

Ehhez az INTCON regiszterben törlöm a GIE-bitet és csak az INTE bitet engedélyezem.

Azt olvastam több helyen a PIC adatlapjában is hogy ezt így kellene csinálni, de csak nem ébred fel.

-Olvastam a hobbi elektronika erről szoló cikkét is.
-A google-ban is kerestem de mindenhol csak "GIE negedélyezett" verziót találok.

Tehát:
-44Pin DebugExpress panel
-PIC16f887
-RB0/INT külső megszakítás, ( a panelen ezen van a kapcsoló)
-Multiméterrel én látom a megfelelő jelszinteket mikor nyomkodom a kapcsolót.

A program a következő:

  1. #include <p16F887.inc>
  2.         __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
  3.         __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V
  4.  
  5.      cblock 0x20
  6. Delay1                                              ; Define three file registers for the
  7. Delay2
  8. Delay3                                              ; delay loop
  9.      endc
  10.      
  11.      org 0
  12. Start:
  13.      bsf       STATUS,RP0               ; select Register Bank 1
  14.      clrf      TRISD                    ; make IO Pin RD0-RD7 an output
  15.      movlw     0x01  
  16.      movwf     TRISB                    ; Make RBO pin input (switch)
  17.          movlw     B'10111111'                  ; lefutó él INTEDG(6)
  18.          movwf     OPTION_REG
  19.          bcf       STATUS,RP0                   ; select Register Bank 0
  20. MainLoop:
  21.          movlw     B'00010000'                  ; Clear GIE(7)/INTF(1). INTE(4) mask for external interrupts
  22.          movwf     INTCON                                
  23.          movlw     .1
  24.          movwf     PORTD                                ; LED-ek bekapcsolása
  25. OndelayLoop:
  26.      decfsz    Delay1,f             ; Waste time.  
  27.      goto      OndelayLoop                  ; ~1 min.
  28.      decfsz    Delay2,f                    
  29.      goto      OndelayLoop                                                         
  30.          decfsz    Delay3,f                
  31.      goto      OndelayLoop
  32.  
  33.      clrf       PORTD                       ; LED-ek kikapcsolása
  34.          sleep
  35.      goto      MainLoop                 ; Do it again...
  36.  
  37.      end


A segítséget előre is köszönöm.
(#) potyo válasza petXYZW hozzászólására (») Feb 25, 2010 / 1
 
Nem tiltottad le az AD átalakítót így az RB0 lábról a kontroller mindig nulla szintet olvas, így nem csoda, hogy nem történik megszakítás.


Szerk.: ajánlom figyelmedbe ezt a hozzászólást: Link, főleg az ötödik bekezdést. Mert mélyebben belegondolva nálad is emiatt nem működik.
(#) watt válasza dudzsi hozzászólására (») Feb 25, 2010 /
 
Idézet:
„Szóval ha nem szeretnék RTC+CD4060-at.”

Nem + , hanem vagy! Mert így nem azt jelenti, amit szerintem írni szerettél volna!
Ha pedig így értetted, akkor csak az RTC+PIC kell, 4060 nem!
(#) petXYZW válasza potyo hozzászólására (») Feb 25, 2010 /
 
Köszi a választ, elolvastam a linkelt hozzászólást, és kipróbálom. Remélem igazad lesz.
(#) dudzsi válasza szilva hozzászólására (») Feb 25, 2010 /
 
Igazábol soknak. De majd kiprobálom 2V-al és külsö oscilátorral és kiderül. Amit írtál áramkör abba az órakvarc mekkora?
(#) dudzsi válasza watt hozzászólására (») Feb 25, 2010 /
 
Én ugy értettem, hogy egyik se. Bocsi ha félre érthető volt.
(#) Hp41C válasza dudzsi hozzászólására (») Feb 25, 2010 /
 
Szia!

Csak felsoroltam a lehetőségeket, végülis azt építed meg, amelyik Neked tetszik. Az alábbi három lehetőség (kiszáró) vagylagos:
- Pic, TMR1 oszcilátor, 32.768kHz órakvarc,
- Pic, külső TMR1 órajel, RTC (amilyent kiválasztasz...),
- Pic, külső TMR1 órajel, 32.768kHz órakvarc a CD4040-on (ld. adatlapja - a kvarc oszcillátorra is van példa), 1/256 osztással megy a pic-re.

- A timer 1 belső oszcilátora felhasználható más 32 kHz körüli frekvenciára is (32.000kHz-re is). A timer 1 a jelet 1,2,4,8 módusú előosztóról viszi a 16 bites számlálóra. Megszakítás (ébresztés), akkor lesz, ha a 16 bites számláló átfordul (0xFFFF -> 0x0000). A felhasznált kvarc frekvenciájából kiszámíthatod az átfordulások közötti időt....

Szia
Következő: »»   686 / 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