Fórum témák
» Több friss téma |
Én PK2-öt, de ez sem eredeti, a Sure Electronic gyártotta. Nézegesd a vaterát, jófogást és itt az aprót, fel-fel szokott bukkanni egy-egy.
köszi a segítséget szétnézek majd hátha ráakadok egyre majd.
Ha nem találnál építs egy PICkit2 -t vagy PICkit2.5 -öt. A kontroller felprogramozásában majd segítünk.
köszi de lehet inkább a kész vásárlása mellett döntök mert akkor az építés adta hibák nem okoznak problémát legalább.
Sziasztok!
ADXL345 gyorsulásmérővel szeretnék játszadozni, I2C protokollon keresztül kommunikálva vele, de az adatlapjában ezeket a sorokat valahogy nem tudom értelmeni: Idézet: „With the SDO pin high the 7 bit I2C address for the device is 0x1D, followed by the read/write bit. This translates to 0x3A for write, 0x3B for read. An alternate I2C address of 0x53 (followed by the read/write bit) may be chosen by grounding the SDO pin (pin 12). This translates to 0xA6 for write, 0xA7 for read.” Tfh az SDO bemenet magas logikai szinten van, ez esetben a cím az adatlap szerint 0x1D. Ezt követi még az írás/olvasás bit, de a 0x1D-t (B'0001 1101') hogyan követheti még egy r/w bit ha az már amúgy is 8 bit összesen? És ez a mondat után, amiben állította hogy a 0x1D címen érhető el az áramkör olyat mond hogy a 0x3A és 0x3B-vel tudok írni olvasni rá. Most akkor mégsem a 0x1D a címe? Ezt nem tudom értelmezni. Van aki már használta az áramkört, vagy van valami ötlete? Üdv.: Jona
A 7 bites cim a 0x1D (0b001 1101), amit kovet meg 1 bit, ami az olvasas vagy iras.
Iras eseten 0x3A, vagyis 0b0011 1010, ahol a sotetitett resz az eszkoz cime+iras bit.
Jaj de jó! Köszönöm szépen!
Sziasztok segítséget szeretnék kérni, nem rég kezdtem el PIc programozással foglalkozni és sajnos meg akadtam és nem találok rá megoldást (több fórumot olvasok napok óta hátha). Csak egy egyszerű áramkört építettem először egy PIC16F883 -al 8 db ledet kapcsolganék több variációba. MPLAb-al írtam rá a programot Assmebly-ben. A PIC RB0-RB7 ig használom a lábakat és nincs külső kvarcom rajta. Az alábbi kép lenne a kapcsolás. A program égetés végén azt írja hogy kész, nem ír ki hibát, de nem is történik semmi. Megpróbáltam kiolvasni a programot, de a program memory az végig 3FFF. Az égetés alatt egy külső tápot azaz egy 1.5 A -es USB-s töltőt használok és erről is működne. Ha valaki tudna segíteni azt meg köszönném. (Amit nem írtam egy PicKit 2 klónnal égetnék, én csináltam de elviekben működik mert egy másik klón PIC-jére is ezzel lett rá égetve a program) Eredetileg egy óra lett volna az első projektem, mivel itt megakadtam nem biztos hogy azt sikerült volna megcsinálni. Egyébként a Program csak annyit csinálna hogy egy kis időzítéssel több féle variációba kapcsolgatná fel a ledeket. (Az MCLR lábra nincs rakva 10K felhúzó ellenállás ez okozhat problémát?)
Olvasd el a sárga kiemelést fent! Pont neked íródott!
Ha a Reset lábat nem húzod föl tápra, akkor a program nem tud elindulni, a kontroller áll! A kondikat se hagyd le a táplábakról! A hozzászólás módosítva: Szept 19, 2015
Be lehet állítani a Reset lábat bemenetnek is, ilyenkor nem kell a külső felhúzás, de ha jól látom, nálad ez kimaradt. Config1: MCLRE bit.
Ha feltennéd az asm-et is okosabbak lennénk, de 100nF-os kondi nagyon hiányzik a táplábak közeléből.
A start részből biztosan hiányzik az I/O-k digitálisra állítása. A hozzászólás módosítva: Szept 19, 2015
Szia!
A rajzodon fel van cserélve a + és - tápfesz, remélem csak a rajz téves... Még valami: 8db led 160mA áram és az adatlapon pedig: Maximum current out of VDD pin ........................................95 mA üdv.: Foxi A hozzászólás módosítva: Szept 19, 2015
Jobban megnézve az Mplab képet rájöttem, hogy szerintem te le sem fordítottad a programot és a nagy semmit programoztad be a pic-be.
Sziasztok!
Flash írás törléssel kapcsolatban lenne egy kérdésem(16f1455). A doksiban az van leírva, hogy a megszakítást törlés és írás legelején kell kikapcsolni és a végén vissza, de én kipróbáltam úgy, hogy csak az unlockba kapcsoltam ki vagy egyáltalán nem kapcsoltam ki és nem történt hiba. De előfordul, hogy nem a megfelelő adat kerül a memóriába így?
Ha azt írják, akkor célszerű betartani, mert ők ismerik a belső felépítést és időzítéseket, Te nem tudod az összes, esetleg előforduló kombinációt kipróbálni, azaz esetleg üzem közben egyszer csak majd hibázik !
Sziasztok!
Csináltam egy pices áramkört, de olyannal találkoztam, amire még sosem volt gondom. Adok tápot az áramkörnek, működik rendesen. Ha közelítek hozzá a kezemmel, resetel, és lefagy. 100n van a táplábakon, a tápegység annyit tesz, hogy 26V-ról megy az áramkör, és van benn egy 7818, illetve egy 7833. Azért 3,3V a tápfesz, mert egy RFM12b modult vezérel a pic. De ezzel sem volt eddig probléma. A program elején két regisztert állítok be, az OSSCON és ADCON1-et. Valami kimarad a programból? A kontakthibát, illetve egyéb fizikai jellemzőket kizárnék, mert két áramköröm van, és mindkettő ugyan ezt csinálja. A vezérlő típusa: 18F2455 A hozzászólás módosítva: Szept 20, 2015
Reset belső vagy külső? Ha külső, fel van húzva tápra?
SW és HW hiányában kevés bármit is mondani...
Viszont én inkább javasolnám a kvarc használatát, gondolom ha az OSCCON-t állítod, akkor belső oszciról megy. De ettől még nem kéne szerintem ilyet csinálnia. Több info kéne...
Külső reset, 10k-val tápra húzva. Belső oszcillátort használok, 8MHz-en.
Átírtam 1Megára a belső oszcit, de úgy is ezt csinálja, így nem hiszem, hogy köze lenne hozzá, legalábbis nem volt túl nagy az órajel. A hozzászólás módosítva: Szept 20, 2015
Az alacsony feszültségű programozás lábat letiltottad a konfigurációnál ?!
Szia! Ami erre tartozik, azon a részen csak ez van:
Nem is találom, hogy tiltva lenne, de mindjárt megnézem a fordítóban.
Az LVP-t tedd OFF-ba ( különben marad a szentelt víz ! ) !
Egyébként az oldal tetején, ha elolvastad volna a sárga ajánlásokat, akkor talán már figyeltél volna erre is ! A hozzászólás módosítva: Szept 20, 2015
Köszi!
A sárga sávot elolvastam többször is, nem akartam én használni az LVP-t, de eddig elcsúszott fölötte a szemem. Köszi, hogy figyelmeztettél! Most már szépen működik az áramkör.
Sziasztok!
Egy 16F630-as PIC-el szeretnék megvalósítani annyit, hogy a PORTA-n lévő gombok megnyomásakor a PORTC adott bitje negálódjon. Tehát: PORTA.F0-on megnyomott gomb esetén: PORTC.F0 = ~PORTC.F0; (Az állapotokat EEPROM-ba menti, hogy következő indításkor megmaradjanak az állapotok. Tudom, hogy az alkalmazott módszer nem a legjobb, de elviekben működnie kéne) PORTA lábai 5V-ra vannak húzva, a nyomógombok földre. Az alábbi program teljesen működésképtelen. PORTC értéke egyáltalán nem úgy változik, ahogy kéne, van hogy az egész PORTC értéke 0 lesz egy gomb megnyomásakor, van hogy nem történik semmi. Valakinek esetleg van ötlete, hogy mi lehet a gond?
Nem tudom, C-ben hogy van ez, de szerintem az eepromba byte-okat mentünk, nem bit-eket.
Azaz a komplett c port értékét mentsd el, egyetlen helyre, és egyben is töltsd vissza!
Köszönöm az észrevételt, módosítom.
Egyelőre viszont kikommenteztem az EEPROM-mal kapcsolatos részeket, mert a PORTC.0 folyamatosan változik, és emiatt egy PIC-ben már elszállt az EEPROM. Ezen kívül WPUA = 0; sorral kikapcsoltam a belső felhúzó ellenállásokat. Jelenleg többnyire nem történik semmi a nyomógombok lenyomásakor.
A gombokon nincs prellmentesites, ez igy nem valoszinu, hogy jol fog menni. A Button fuggvenynek mi a 3. parametere pontosan, mert nem sikerult rajonnom. A belso felhuzo ellenallas mindenkeppen kell, ha nem hasznalsz kulso ellenallast.
Figyeltesd a PIC-el a saját tápfeszét, és csak akkor végezz mentést, ha a táp lecsökken. Így csak kikapcsoláskor ment. (Nénmelyik PIC típusban van beépített LVD)
A nyomógombot pergésmentesítetted?
A nyomógombok külső 4k7-os ellenállással vannak tápfeszre húzva, ezért kapcsoltam ki a belső felhúzó ellenállásokat.
Prellmentesítésnek 100nF-os kondik a bemenet és a föld között + szoftveres is van a függvényben. A Button függvény első paramétere a porton belüli bit, a második a prell időtartama ms-ban, a második a logikai aktív szint. Az EEPROM-os részt át fogom írni. Köszönöm az észrevételeket. A hozzászólás módosítva: Szept 23, 2015
Változatlanul nem értek a C-hez, de a sima időalapú pergésmentesítés nem minden nyomógombnak elég. Ezért én ezt úgy szoktam megoldani, hogy ahányszor záródik az érintkező, nullázom a pergésmentesítő számlálóját. Így a nyomógombhoz igazodik a pergési idő.
|
Bejelentkezés
Hirdetés |