Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
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.
Szia. Ez alapján ha jól értelmezem, lehet külő és saját oscillátora is? Remélem jól értettem...
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.
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?
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.
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!
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.
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
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
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)
Olvasd el az oldalamon a miérteket.JDM_problemak
Ja, most nézem hogy elszámoltam magam, a 15 az 19.
Azért még van esély rá, hogy ez működjön??
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.
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!
Szia ! Az impedancia értéke megtalálható az adatlap "ELECTRICAL SPECIFICATIONS" részénél.
Találtál valami hibát amiért nem áll be a TMR1IF a túlcsorduláskor?
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.
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.
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
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.
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.
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.
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...
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!
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
Igazad van tényleg kihagytam sok kommentet! Átírom meglesz!
Szimulátoron hogy hívjak megszakítást?
Ennek a kérdésnek nincs értelme. Mire vagy kíváncsi?
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). |
Bejelentkezés
Hirdetés |