Fórum témák

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

Kissé elakadtam és elbizonytalanodtam, ezért segítséget kérnék. Az előző projectemet (GSM modul, CID funkció, 12 figyelt telefonszám)
szeretném bővíteni. A kütyünek (max) 250 telefonszámot kellene azonosítania. A 628A EEPROM
jában 12 telefonszám fér csak el. Kaptam egy jónak tűnő ötletet hogy ne kelljen külső EEPROM
a megvalósításhoz. A SIM kártyán tárolt számokkal kéne dolgoznom, a SIM en 250 szám fér el. A 250 db telefonszám elnevezésének
első 3 bájtja hordozná az azonosításhoz szükséges sorszámot ( 001 - 250 ig, 3 bájton ábrázolva.)
A számok kiértékelését a következőképpen gondoltam. A figyelt 3 bájt értékét összeadnám,
ez 250 esetében maximum 15 lehet. Az összeadás eredményét pedig egy hármas elágazás megvalósításával kiértékelem.
Ha az eredmény kisebb vagy egyenlő 15 el akkor érvényes az adat,(tehát a hívószám sorszáma 001 és 250 között van)
ha az eredmény nagyobb akkor érvénytelen. Mi a véleményetek erről? Nekem ez jóval egyszerűbbnek tűnik mint a 250 db 11 jegyű telefonszámot egyenként végignézni, mert így csak a telefonszámok 001 - 250 ig számozott sorszámait kell kiértékelni, azt is ebben a leegyszerűsített formában. Az alap ötlet nem az enyém, én csak a kiértékelés részét találtam ki úgy ahogy felvázoltam. (lehet hogy "feltalálták" ezt már előttem pár százan..."spanyolviasz esete")

A másik megoldás hogy maradok az előző project forrásánál, csak külső EEPROM ban tárolnám a telefonszámokat.
Ez persze kicsit bonyolultabb mert itt a telefonszámok feltanítását és törlését is meg kell oldani. Ráadásul címezni kell a számokat hogy egyenként is lehessen átírni vagy törölni. A SIM kártyás megoldásnál ugyanez egy kártya editorral megoldható. Arról nem is beszélve hogy nem tudom hogyan kell külső EEPROM ot kezelni, mivel még nem csináltam ilyet. Bonyolult? Esetleg valakinek valamilyen "mankója" nincs ehhez amin látnám a lényeget? Hálás lennék érte...

Köszönöm.



(#) csonthulye válasza berci1987 hozzászólására (») Máj 3, 2009 /
 
Szia. Ez alapján ha jól értelmezem, lehet külő és saját oscillátora is? Remélem jól értettem...
(#) Prince86 válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Nem áll be a számláló túlcsordulását jelző bit!
Mert ha kiveszem a feltételkezelést akkor nullázza a sebesség kijelzést. Most akkor vagy nem megy a külső oszci az órakvarcal vagy valamiért nem áll be az TMR1IF jelzőbit a túlcsorduláskor.
Kipróbálom megint a saját órajelével és ha másképp nem megy akkor 2mágnes lesz betéve vagy több.
(#) Prince86 válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
A saját órajelével sem jobb a helyzet, akkor sem csordul túl vagyis túlcsordul az csak nem jelzi a TMR1IF.
Lehet csak akkor áll be ha engedélyezem neki a megszakítást is?
(#) potyo válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Nem, az anélkül is beáll. Írtam már néhány programot, ami kihasználta ezt a dolgot, tehát a gyakorlatban is beáll az a flag. Mutasd meg a belső oszcillátoros programodat, aminél "nem áll be", mert valamit szerintem rosszul csinálsz.
(#) Prince86 válasza potyo hozzászólására (») Máj 3, 2009 /
 
Ez lenne az!
Nem tudom mi lehet a gond de már azt is észrevettem hogy a napi km értéket nem menti el csak az egészet.
Egésznap kerestem a hibát de nem tudok rájönni mi lehet!

prg.asm
    
(#) berci1987 válasza csonthulye hozzászólására (») Máj 3, 2009 /
 
Nem teljesen : nem lehet, hanem van belső oszcillátora és csatlakoztathatsz hozzá külsőt is. Valamint megválaszthatod (meg kell választanod), hogy melyiket használja.
(#) kissi válasza Prince86 hozzászólására (») Máj 3, 2009 /
 
Le van írva, ha túlcsordul, akkor beáll...Az nincs leírva, hogy a működéséhez engedélyezni kell a megszakítást --> minden túlcsordulásnál bebillen!

Steve
(#) kissi válasza kissi hozzászólására (») Máj 3, 2009 /
 
Bocs, de én az előbb ( 1 perce!) frissítés után még csak a 12:00-s hozzászólásokat láttam... mintha találkoztam volna már régebben is ilyen problémával! Ez mitől van, én csinálok valamit rosszul, vagy a rendszer "bohóckodik" néha?

Steve
(#) kiskacsa2009 hozzászólása Máj 3, 2009 /
 
Sziasztok!
Valaki meg tudná mondani, hogy ennél az égetőnél mire szolgál a potméter?
Válaszotokat előre is köszi!

Ui.:És azt meg tudná nekem mondani, hogy ez a kapcsolás miért nem működik? A nyákot kitűnően csináltUK meg, de nem akar programozni, úgy nálam, mint Béla barátomnál?
Azért elég "kulturáltan" írta meg a hozzászólását, valamint én szégyenlem magam, mert én ajánlottam neki az oldalt! (Ezért már szépen leb#&@tam)
(#) watt válasza kiskacsa2009 hozzászólására (») Máj 3, 2009 /
 
Olvasd el az oldalamon a miérteket.JDM_problemak
(#) menyus válasza menyus hozzászólására (») Máj 4, 2009 /
 
Ja, most nézem hogy elszámoltam magam, a 15 az 19.
(#) kiskacsa2009 válasza watt hozzászólására (») Máj 4, 2009 /
 
Azért még van esély rá, hogy ez működjön??
(#) watt válasza kiskacsa2009 hozzászólására (») Máj 4, 2009 /
 
Esély van, természetesen, hiszen a cikk írójának is működött, különben nem írta volna meg a cikket, de arra is van, hogy nem.
Sajnos nem csak a COM portok okoznak meglepetéseket, hanem az LPT portok is, mint ahogy ez kiderül az LPT_mini égetőmmel kapcsolatban. Pedig nálam milyen jól működik(és még sokaknál), de sok esetben meg nem, mert pl. csak 3V jön ki a kimeneten, és egyéb driver problémák is lehetnek.
Szóval ha jót akarsz, akkor elfelejted az egyszerű égetőket, ha nem működnek elsőre.
(#) bundyland hozzászólása Máj 4, 2009 /
 
Sziasztok !

PIC AD-jét szeretném használni többcsatornás
multiméterként, de az analóg rész bemeneti impedanciáját nem tudom meghatározni, esetleg tudna ebben valaki segíteni hogy ez hogyan is néz ki az AD átalakítóknál. Esetleg még az is érdekelne hogyha 4
független feszt kéne mérjek akkor a leválasztások hogyan oldhatóak meg? ( 4 külön pic és optóval leválasztva az lcd-t hajtó pic ?? )

Előre is köszönöm!
(#) berci1987 válasza bundyland hozzászólására (») Máj 4, 2009 /
 
Szia ! Az impedancia értéke megtalálható az adatlap "ELECTRICAL SPECIFICATIONS" részénél.
(#) Prince86 válasza potyo hozzászólására (») Máj 4, 2009 /
 
Találtál valami hibát amiért nem áll be a TMR1IF a túlcsorduláskor?

prg.asm
    
(#) potyo válasza Prince86 hozzászólására (») Máj 4, 2009 /
 
Azt tippelem, hogy az lehet a gond, hogy leállítod a Timert a SPEED nevű blokkban, és utána ha nincs bejövő jel, akkor sosem indul újra, mert az elindítása csak a megszakítási rutinban szerepel.
(#) skeletornb válasza bundyland hozzászólására (») Máj 4, 2009 /
 
Nem kell több PIC, ezért van a Vref+ és Vref-, hogy a Vss és Vdd-től független feszültségtartományban is lehessen mérni. Arra azonban ügyelj, hogy a Vref- nem lehet negatívabb a Vss-nél, a Vref+ pedig nem lehet magasabb a Vdd-nél, a mért feszültségértéknek pedig ezeken belül kell lenie.

Multimétert írtál, gondolom nem 5 voltig akarsz mérni, az illesztést csinálhatod pl műveleti erősítővel.
(#) Prince86 válasza potyo hozzászólására (») Máj 4, 2009 /
 
kivettem a BCF T1CON TMR1ON sort de így is ugyanaz, nem nullázódik a sebesség kijelzés amikor bekapcsolom se a megszakítások után miután megszűntek, valamiért vagy nem csordul túl vagy nem áll be a TMR1IF 1be és nem teljesül a feltétel ami nullázná. Mert ha kiveszem a feltételkezelést előle akkor nullázza állandóan és kijelzés sincs.

BTFSS PIR1 TMR1IF
(#) szilva válasza skeletornb hozzászólására (») Máj 4, 2009 /
 
Szerintem pedig az elgondolás igencsak korrekt, ilyenen én is gondolkoztam már korábban. Ha tényleg egymástól teljesen független mérőköröket akar kialakítani az ember, akkor ott kell a galvanikus elválasztás.

Legegyszerűbben mondjuk 2x4.5 vagy 2x6V-os trafókból lehet csinálni n+1 egymástól független, 5V-os tápot, n db mérőkört felépíteni, pl. 12F683-akból, amik a +1.-nek optocsatolón keresztül valamilyen kommunikáció segítségével küldik át a mért értékeket. Ez a +1. PIC aztán valamilyen módon megjeleníti és/vagy küldi pl. PC-nek.
(#) icserny válasza szilva hozzászólására (») Máj 4, 2009 /
 
Még nem ismerjük a feladat követelményeit, de számos olyan eset lehet, ami indokolja a galvanikus elválasztást. Szerintem azonban nem a legszerencsésebb megoldás a 10 bites PIC ADC-kre bízni a konverziót.

Vannak sokkal jobb paraméterekkel rendelkező ADC-k (Microchip, Linear Technology, Analog Devices, Texas, Maxim és más gyártók kínálatában). Ezek általában SPI vagy I2C interfésszel rendelkeznek, optocsatolóval leválaszthatók. Én ilyenekkel próbálkoznék, s a végén egyetlen PIC fogadná a jeleket, s USB-n továbbítaná a számítógép felé (ha kell), és írná ki egy LCD kijelzőre is.
(#) watt válasza Prince86 hozzászólására (») Máj 4, 2009 /
 
Nem kezeled le, hogy milyen forrásból származik a megszakítás. Eközben engedélyezed a RB0/INT megszakítást és a TIMER1 megszakítást is. Ez okozhat zavart.
Javaslom, hogy sokkal több megjegyzést tegyél, főleg a beállítások mögé(nem várhatod, hogy mi böngésszük ki mindet, és neked is jobb, ha látod mit állítottál be).
A másik, hogy jobban szeparáld el a részeket, mert áttekinthetettlen a program. Ezt is megjegyzésekkel teheted meg.
(#) trudnai válasza Prince86 hozzászólására (») Máj 4, 2009 /
 
Mar bocsanat, de ne szerencsetlenkedj mar ennyit, vedd elo a szimulatort es nezd meg mi tortenik! Szimulatorhoz a TIMER1-et mindenkepp FOSC/4-re tedd, kulonben kell egy stimulus file-t csinalnod vagy letoltened -- es mivel a tulcsordulasos problemat illetoen teljesen mindegy mi a forras ezert egyszerubb az FOSC/4...
(#) trudnai válasza watt hozzászólására (») Máj 4, 2009 /
 
Idézet:
„Nem kezeled le, hogy milyen forrásból származik a megszakítás. Eközben engedélyezed a RB0/INT megszakítást és a TIMER1 megszakítást is. Ez okozhat zavart.
Javaslom, hogy sokkal több megjegyzést tegyél, főleg a beállítások mögé(nem várhatod, hogy mi böngésszük ki mindet, és neked is jobb, ha látod mit állítottál be).
A másik, hogy jobban szeparáld el a részeket, mert áttekinthetettlen a program. Ezt is megjegyzésekkel teheted meg.”


UFF! Vagy AMEN kinek mi a vallasa!
(#) skeletornb válasza szilva hozzászólására (») Máj 4, 2009 /
 
Ha galvanikus elválasztást akar, akkor valóban külön mérőkör, külön tápkörrel és optocsatoló kell, de ha csak független feszültségeket akar mérni akkor szerintem nincs rá szükség.
Majd kifaggatjuk, hogy mit szeretne és akkor tudunk biztosat mondani

Szerkesztve: icserny előttem írta hasonló véleményét, csak nem frissítettem, ezért elnézést
(#) Prince86 válasza watt hozzászólására (») Máj 4, 2009 /
 
Igazad van tényleg kihagytam sok kommentet! Átírom meglesz!
(#) Prince86 válasza trudnai hozzászólására (») Máj 4, 2009 /
 
Szimulátoron hogy hívjak megszakítást?
(#) watt válasza Prince86 hozzászólására (») Máj 4, 2009 /
 
Ennek a kérdésnek nincs értelme. Mire vagy kíváncsi?
(#) szilva válasza icserny hozzászólására (») Máj 4, 2009 /
 
Ebben természetesen igazad van, de a felvetésből az tűnt ki, hogy a PIC A/D-je elég lenne, egy 8 lábú PIC meg fillérekbe kerül, ami szvsz nem mondható el egy precíziós mérőátalakítóról.

Az "egymástól független feszültségek" mérése nekem valahogy azt sugallta, hogy a földpontjuk (referenciapontjuk) sem közös. Az, hogy a PIC 5V-os tápfeszén belül az egyes csatornák referenciapontját el lehetne tolni, az vajmi keveset jelent ebben az esetben szerintem.

Azt hiszem, hogy az eredeti felvetésben sem véletlenül került elő a csatornák egymástól történő elválasztása. Én valami olyat tudnék elképzelni, mint amikor pl. egy erősítőt akarsz megmérni, és ehhez az erősítő különböző pontjaira feszültségmérő multimétereket aggatsz, majd szeretnéd egyszerre az összes multiméter által mutatott értékeket valami logba pakolni (pl. hosszútávú munkapontelvándorlás megfigyelése).
Következő: »»   475 / 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