Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ebben nem lehet alkalmazni 16F628-at mert nincs benne AD. Amugyis a 12F675 talan 200 Ft ha van, es meg kicsi is.
Sziasztok!
Egy kis segítség ill. instrukció kellene assemblerbe! Nem rég kezdtem el foglalkozni a pic-ekkel és elakadtam. Szeretnék csinálni egy 2 digites számlálót, de nem akar összejönni :S Az egy digites változatot már megcsináltam,de valahogy nem tudok rájönni,hogy hogy kellene a 2 digiteset megcsinálni. mellékelem az eddigig változatot.
Segítségeteket előre is köszönöm...
Szia!
Nem lehet helyettesíteni, mivel a 16f628-ban nincs A/D konverter, és ha lenne is akkor is át kéne írni a lábakat stb. Szerintem vegyél egy 12f675-öt, nem drága, és még a nyákba is belefér. Üdv, mate_x
- Kell egy változó a 10 -es helyiértéknek (SZAM10). Amikor a SZAM eléri a 10 -et , akkor törlöd és ekkor kell növelni a SZAM10 -et, ha az is eléri a 10 -et, akkor törölni kell.
- A delay rutint időzítését több részletben kell lefuttatni, az egyes részek között a kijelzőn a megfelelő helyiértéket kell megjeleníteni.
A TABLA címke utáni MOVFW SZAM utasítás nem kell.
Sziasztok!
Kérnék segítséget olyan valakitől aki foglalkozott AD7710-es A/D átalakítóval vagy hasonló szériával. Hetek óta szenvedek vele és nem sikerül normális működésre bírni a hibajelenség a következő: Az SPI kommunikáció lehetőségét jelző DRDY láb nem akar high-ról low-ra állni csak néha-néha sztochasztikus módon pl. bekapcsolásnál 1x lemegy lowra és a kommunnikáció végét jelző DRDY high a 16. bitnél megfelelően reagál, de ezt csak egyszer hajtja végre utána mondhatni a végtelenségig úgy is marad, illetve van mikor bekapcsolásnál egyáltalán nem akar lemenni megpiszkálom picit a kristályt (10.000 kvarc) és megy megcsinál párat utána megint marad egyszerűen kiszámíthatatlanul. Szakdolgozatomat írom egy mérőrendszerrel amelynek fél lelke ez lenne és egyszerűen nem jön össze el vagyok keseredve, próbáltam felhúzó/lehúzó ellenállásokat berakni, semmi változás a tápfesz normális a megadott értéken belül marad 5V (+-0,3V) a táp lábaknál 0,1µF kondik vannak berakva. 2 db ilyen IC-m van mindkettő ugyanezt a hibajelenséget generálja ugyanazzal a konfigurációval, az ajánlott összekötést az adatlap szerint követtem a kommunikáció protokollját is, nem lehet szoftveres hiba mert az A/D átalakító működését jelző DRDY nem akar LOW-ra állni és az elején nem kell semmilyen paramétert elküldeni, magától feláll és mennie kéne! Minden ötletet, megoldást előre is köszi!!!
Az SPI jól van beállítva? Értem ez alatt az órajel alap állapotát és az adat kiléptetésének idejét, vagyis a 0.0, 0.1 stb. módokra gondolok. Vagy esetleg az nem lehetséges, hogy az utolsó bit kint marad a vonalon? Egy másmilyen SPI-os A/D konverternél nekem ez volt a probléma és ugyanúgy csak reset-kor tudtam egy bájtot beolvasni és kész. Egy plusz, felesleges bájt beolvasásával megoldódott a problémám. Hozzáteszem, hogy nem néztem az adatlapját az A/D-dnek.
Bocsánat, elírtam... Az RFS jelről lenne szó.
Az adatlap szerint a DRDY lábat kell vizsgálni és utána az RFS-et LOW-ra vinni addig high-on hagyom még az elöbbi feltétel nem teljesül!
Mellékeltem a kommunikációs folyamatot amit az adatlapján találtam meg.
Nem lehetséges az, hogy a DRDY értéke 312 kHZ-el változik a feldolgozás miatt és a láb sajátkapacitása miatt nem képes elkapni a mikrovezérlő az L szintű jelet?
Szép estét.
pickit2-be lehet olyan firmware-et égetni ami megfelel a pickit3 nak mert a 16f1826-os mikov. nemfogad mást köszi. Vagy milyen megoldás létezik?
Benne van az csak meg Te az eredeti DeviceFile-t hasznalod, ami nem tartalmazza. A MCHP oldalarol letoltheto az utolso "PK2DeviceFile-xxxxxx.dat" majd bemasolva a PK2 telepito konyvtarba mar mukodik is a dolog.
A PICKit2 tudja programozni a 1.8V -os Midrange kontrollereket (pl. 16F1826...), a nyomkövetés más nem lehetséges vele. Ezen kontrollerek (és még sok más típus) nyomkövetéséhez a PICKit3 vagy ICD3 szükséges.
Köszi
jó éjt!
Idézet: Nem lehet, mert egészen más felépítésű. „lehet olyan firmware-et égetni ami megfelel a pickit3 nak?”
Köszönöm a válaszod.
Én CCS-ben fejlesztek és úgy látom hogy az LCD beállításaival lesz gondom.Definiálom az LCD kivezetéseit aztán inicializálom stb.Azonban pár forráskódban azt látom hogy meg kell adni még pár dolgot viszont nem tudom a netes forráskódokból hogy vajon nekem melyik lenne a jó. Tehát az LCD vezérlésem életképes csak a konfigolása nem sikerült még normálisan,
Én minden programomat az LCD adatlapja szerint írtam meg. Mind működik. Javaslom, hogy ne a neten keress példákat, hanem az adatlap szerint járj el!
JDM égető probléma áttéve ide: PIC égetési hibák, problémák, kérdések
Sziasztok! Egy kis segítség kellene a PIC12F615 külső megszakítására. Megírtam a kódsort próbaképp, proteusban szimuláltam de ott se megy.
Az lenne itt a kérdés hogy miért nem ugrik be a megszakitásba? Elvileg minden jól be van állítva... A kód mikropascal-ban van írva:
Megvan a megoldás...
az analóg beállításoknál az ansel-t teljesen nullázni kell... ansel:=%00000000;
Az egészet nem kell, de a 3:0 biteket igen, ha digitális portokat akarsz...
Helló!
Most kezdtem el foglalkozni 16bites PIC-ekkel. Addig el is jutottam, hogy szubrutinból késleltetéssel villogtattam egy LED-et. Ezután a Timer5 megszakítást akartam életre kelteni, ami már nem jött össze. A szimulátor szerint, mikor a megszakításba kéne lépnie resetel egyet, és után (bár a flagek jól állnak) nem lép se megszakításban, se nem resetel többet. Ha tudnátok segíteni, azt nagyon megköszönném.
Sziasztok !
Egy kis segítséget szeretnék kérni, van egy olyan gond, hogy PICel 4bites módban vezérlem a kijelzőt, a következő módon. -- Az LCD modul EN vezérlő jelének pulzálása void lcd_en_pulse(void) { delay_us(50); OUTPUT_BIT(lcd_en,1); delay_us(50); OUTPUT_BIT(lcd_en,0); delay_us(50); } //-- Várakozás a foglaltság megszűnésére void wait_lcd4_busy(void) { char bflag; OUTPUT_BIT(lcd_rs,0); //RS = 0 Busy Flag olvasáshoz SET_TRIS_B(0xF0); // adatport olvasásra OUTPUT_BIT(lcd_rw,1); // R/W = 1, olvasáshoz do { OUTPUT_BIT(lcd_en,1); delay_us(40); // felső 4 bit olvasása bflag = INPUT(PIN_B7); OUTPUT_BIT(lcd_en,0); delay_us(40); lcd_en_pulse(); // az alsó 4 bit olvasása } while(bflag); OUTPUT_BIT(lcd_rw,0); // R/W = 0, íráshoz SET_TRIS_B(0x00); // adatport írásra } //-- Fél adatbájt írása void lcd_write_nibble(unsigned char data) { OUTPUT_BIT(lcd_rw,0); // R/W = 0, íráshoz OUTPUT_B( data & 0xF0); // a felső félbájtba írunk if (rsmode==1) {OUTPUT_BIT(lcd_rs,1);} else {OUTPUT_BIT(lcd_rs,0);} lcd_en_pulse(); } //-- Egy bájt kiírása 4 bites üzemmódban void lcd4_write(unsigned char data) { lcd_write_nibble(data); //felső nibble írása lcd_write_nibble(data << 4); //alsó nibble írása if(chk_busy) { wait_lcd4_busy(); } else { delay_us(40); //40 usec delay } } //-- Adatbájt írása (RS=1) void lcd4_data(unsigned char data) { rsmode=1; // adat mód lcd4_write(data); // az adat kiírása } //-- Parancsbájt írása (RS=0) void lcd4_command(unsigned char data) { rsmode=0; // utasítás mód lcd4_write(data); // az adat kiírása } Nos a gondom az hogy minden tökéletesen működik szépen tudom vezérelni a kijelzőt. A gond ott kezdődik, hogy folyamatos üzemben egyszer fogja magát a kijelző és hülyeségeket futó össze-vissza karaktereket kezd el irogatni. A vezérlés a pic tökéletesen működik, mert más funkciók mennek, csupán a kijelző ír hülyeségeket. Ez esetleg időzítési gond lehet, vagy valami más miatt bolondul meg a kijelző? Ha van valakinek valami ötlete akkor légyszi ossza meg velem. Köszi.>>
Meg van a megoldás!
__T5Interrupt: - ból lemaradt egy az egyik _ . Emiatt szívni órákat... Köszönöm mindenkinek, aki esetleg ebben a rövid időben már is foglalkozott vele.
Az általam is használt (a Mississippi Állami Egyetem oktatói által kifejlesztett és közzétett) C nyelvű PIC24 támogatói programkönyvtárat érdemes lenne megnézni! Az egyik dolog, ami hasznos segítség: az esetleges RESET-ek után meg kell néni és ki kell íratni a resetelés okát. A másik dolog, ami hasznos segítség: a nem használt megszakításvektorok, valamint a kivételek alapértelmezetten egy olyan eljárásra mutassanak, ami kiírja a hiba (vagy elkalandozott megszakítás) okát.
A kiíratás egy olcsó USB/UART konverteren keresztül egyszerűen megoldható.
Sziasztok! A következő kérdéssekkel fordulok hozzátok:
1: Lehet-e bármilyen PIC TOCKI lábával 0-5V egyenfeszültség impulzusokat mérni? A láb TMR0 counter módban van. Ha igen, akkor milyen ellenállás-kapcsoláson keresztül? Kb., mint frekvenciamérő. 2: A kapott értéket TMR0 regiszterben lehet-e szorozni konstans értékkel? Értsd.: pl. frekvenciamérőnél 1000ms alatt mér a számláló 50 impulzust. Ennek a számnak a 6.5 szeresét akarom kivezetni karakteres LCD-re, tehát állandóan 325-öt kellene kapni. A példa haszontalan, a megoldókulcs érdekel. Elnézést, ha esetleg már volt hasonló kérdés. Előre köszönöm a segítségeteket!
Üdv
Lenne egy lehetőség! Egy kedves ismerős tervezett jó pár -16 tipus- smd pic programozó adaptert (+ van rajta 4db AVR is, 2 oldalas furatgalvános lesz), és egy nyákgyártó cégnél profin le tudnánk gyártatni. Ha van rá igény, jellezzétek pü-ben, és annyival többet csináltatunk. Kb. j.hét végére készen van. A mellékelt fotón látni miről van szó. 3mm-es anyás megoldást láttuk a legjobb megoldásnak, hogy programozás közben rögzíteni lehessen a kontrollert. |
Bejelentkezés
Hirdetés |