Fórum témák
» Több friss téma |
Na igen, de az eredmény 4,7 Volt. Rossz lehet a PicKit3?
Jó méréshatárban van a műszered ?
Valahonnan kap még tápot az a panel. Én a Pickit3-ról mindent rosszat elhiszek, de ez csak akkor lehetséges, ha kívülről jön az 5V a panelra. Vagy tényleg elromlott.
Köszi, ilyesmire gyanakodtam.
Hogy tudom a PORTC összes lábát digitális I/O ra állítani?
Nézd meg a doksit. Az ANSEL és ANSELH regisztereknél jól le van írva.
Köszi, megvan, működik is!
Minden kezdet nehéz... Bocsi a bénázásért...
Nincs más feszütségforrás. Kerítettem egy másikat, az helyes értéket mutat
Közben kiderült, hogy alacsony a tápja az előző műszeremnek...
Akkor közel jártam az igazsághoz. A lényeg az, hogy nem romlott el...
De nagyon hasznos volt a felvetés, mert már szét is szedtem és elraktam mindent, abban a hiszemben, hogy elszállt.
Egy 16F628A esetén tényleg nem sok lehetőséget hoz az LVP, de pl. egy 16F145x esetén a programozó lábak is mások: LVP esetén az RA0/D+/ICSPDAT - RA1/D-/ICSPCLK (3.3V -os), HVP esetén a RC0/ICSPDAT - RC1/ICSPCLK (5V -os) lábakat kell használni.
Nem kell manuálisan nyomni a resetet, nyugodtan összeküthető a PICKit2 vagy PICKit3 Vpp/MCLR kivezetésével - LVP módnál a pickit nem ad ki a Vdd -nél nagyobb feszültéget. A PICKit2 -ben egy 18F2550 dolgozik, egy port lába kb 20mA -rel terhelhető. A legrosszabb esetben a programozó lábat a cél rendszerben egy kimenet hajtja meg. A 18F2550 kimenetén az áram nem haladhatja meg a 20mA -t akkor sem, ha a cél rendszer a programozó lábat az ellenkező szinttel hajtja meg. A feszültség különbség 5V lehet maximálisan. Ebben az esetben 1k ellenállás is 5mA -re korlátozza az áramot. Az áram korlátozása mellett a kapacitív terhezésel leválasztását is el kell látnia ennek az ellenállásnak, azaz a programozó lábra csatlakozó kapacitás nem okozhat jelentős torzítást a fel - lefutó éleken. A PICKit2 összes áramfelvétele nem haladhatja meg a 100mA -t. A hozzászólás módosítva: Ápr 28, 2013
Köszi a választ, nézegettem is de valahogy nem akaródzott összejönni gondoltam hogy a port nincs definiálva azért nem jó csak ez a teszem azt 0b001001 nem tudom miből tevődik össze ami a konkrét portra mutat mondjuk ha ezt meg tudnám fejteni hogy kell összerakni már lehet menne később magamtól is
Szia!
Csak RA0 analóg, +Vref = Vdd, -Vref = Vss: ADCON1 = 0x0E; Az ADRES regisztereket írni felesleges.
Rosszul fogalmaztam. Megtaláltam ezeket a példákat, de ilyen "szájbarágósan" még nem leltem magyarázatot. Nem akartam sérteni senkit, csak tanulni szeretném az analógot és nem volt tiszta egy két dolog.
Nektek köszönhetően jutottam azóta előre viszont nem értem a harmadik bemenetet miért nem tudja megenni? Zavar lehet a bemeneten kimeneten, valamit le kellene tiltani? AN3at külön megjelölni analóg bemenetként? Megtelik az ADRES? Vagy az törli magát és ez hülye gondolat? AN10 és AN11 és a tőle függő RC0 RC1 RC2 RC3 működik, viszont AN3 nem reagál és RC5 villog a csatornaváltás utáni késleltetéstől függően. Mintha AN3 nem is lenne. Kettővel minden rendben, háromnál mi lehet a gond? Illetve ha így "csúnya" a kód, bármiféle szépítő jellegű tanácsot szívesen fogadok és nagyon köszönök!
Szia!
Lehet, hogy valami előzménnyel nem vagyok tisztában, de a programod logikája nekem furcsa egy kicsit: az i, j, k változókba berakod az ADRESH és ADRESL értékeit, utána pedig egyenlővé teszed ezeket az értékeket egy fv. visszatérési értékeivel, miközben nem történt semmi kiíratás vagy egyéb művelet! A ReadADC egyébként nem egy AD olvasó fv. lenne ( csak annak a tartalmát meg nem látom ! ) ?!
Ja hogy ez a két sor ugyanaz lenne? ReadADC() ADRES-ből olvassa az értéket??
j = (((unsigned int)ADRESH) << 8 ) | ADRESL; j= ReadADC(); Kivettem egyszer egyiket másszor másikat és működik... Elnézést. De a harmadik AN bemenetet még igy sem szeretné elfogadni. A hozzászólás módosítva: Ápr 29, 2013
Amíg még volt mplab c, az szimulációban/debugkor automatikusan megnyitotta és megmutatta a ReadADC fv.-t. Most kipróbáltam az XC8 fordítóval és úgy látom, az már nem teszi (bár talán valami beállítással rábírható). Kár, mert abból ezt rögtön láthattad volna, alapból sajnos nem nyilvánvaló, mit is csinál pontosan a fv.
Szerk.: Nálam a c:\Program Files\Microchip\xc8\v1.12\sources\pic18\plib\ADC\ mappában megtalálható az adcread.c és ebben a fv. Elvileg ez az alapértelmezett útvonal, szóval akár meg is nyithatná automatikusan, de nem teszi, talán csak nálam van gubanc. A c:\Program Files\Microchip\xc8\v1.12\sources\pic18\plib\ mappában egyébként megtalálod az összes többi periféria függvényt is, ha valami nem megy, vagy új perifériát próbálunk, érdemes nézegetni. A hozzászólás módosítva: Ápr 29, 2013
Szia!
Milyen oszcillátort használsz? Az AN3 egyben a RA4/AN3/IOCA3/OSC2/CLKOUT láb. Ha az oszcillátor használja... ANSEL, ANSELH és TRISA be van állítva? A hozzászólás módosítva: Ápr 29, 2013
Oszcillátoron nem állítottam semmit, olyanhoz nem nyúltam tudomásom szerint.
ANSEL ANSELH az ADCON0-al állítottam, ott kértem melyik analógot szeretném használni. Kicsit itt is utánaolvasva lehet P18F14K50nek ez kevés? TRISA-n nem változtattam, órán azt mondták alapból bemenet mind ha kimentként szeretném 0-ba állítjuk. Első tippem az volt, hogy az AN3on lévő bemenet OSC2-je zavar be valamit. De ővele mit lehet kezdeni? ???
Idézet: Két különböző dologról van szó. ANSEL, ANSELH-val bitenként azt állítod, hogy melyik bemeneten legyen analóg módba állítva. Az ADCCON0 regiszter CHS0..CHS3 bitjeivel pedig azt állítod be, hogy a sok (lehetséges) analóg bemenet közül éppen melyik kapcsolódjon az ADC bemenetére. „ANSEL ANSELH az ADCON0-al állítottam, ott kértem melyik analógot szeretném használni.”
Szia!
Állítsd be az oszcillátort olyan módra, ami nem használja az OCS2 lábat: pl: Internal RC Oscillator. Ha ez nem felel meg más követelmények miatt, térj át másik lábra az analóg méréssel.
Szia!
TRISAbits.TRISA4 = 1; // az analógként használt láb bemenet OSCCON = 0b11110110; //itt elméletileg bekapcsoltam az internal oscillatort CONFIG1H = 0b01101000; //itt pedig a CLKOUT pin volna kiiktatva --->ehhez configolni kellett volna valamit? Mindezeket az adatlap 18. és 259. oldaláról szedtem A CLKOUT lesz a ludas szerintem. Ha cserélgetem a Cport kimeneteit mindig az AN3tól függő villog, ha pedig a konverzió eredményén változtatok akkor is bezavar. Valamit nem jól csináltam mert nem tudja lefordítani sem. Bénázásomra mentségül szolgáljon hogy ilyet még nem csináltam.
Üdv. megint én volnék sikerült összeraknom a voltmérő fordulatszámmérő programot de a hőmérő amit szintén beletettem nem működik jól a programban méri a feszültséget de a proteus azt írja nincs csatlakoztatva az AN2-es lábra de attól ugyanúgy kiírja a valós hőfokot. Ha az ADCON és CMCON regiszterekkel variálok van hogy jólesz a program nem ír hibát de letilt és minden megy de a hőfokmérés abbamarad. Apropó 3 külön programot gyúrtam egybe külön működött a hőfokmérés ugyanezen picen de amint mellétettem a feszültségmérő programját a DVM voltmeter félét már nem akarta az igazságot biztos hogy a bemenetek és AD konfigurálásában van egy apró hiba amit nem tudok kijavítani.
A hozzászólás módosítva: Máj 4, 2013
Ja és 18F2550 a pic típusa. Fordulatszámmérő programja. Hőmérő programja. Voltmérő programja.
A hozzászólás módosítva: Máj 4, 2013
Sziasztok!
12F675 GPIO láb megszakításnál írja az adatlap: Idézet: „If a change on the I/O pin should occur when the read operation is being executed (start of the Q2 cycle), then the GPIF interrupt flag may not get set.” Ez azt jelenti, hogy ha akkor történik élváltozás a lábon, mikor műveletet olvas ki a CU, nem történik megszakítás? De gondolom csak nem így van, mert ha ez így van, akkor nem lehet használni semmire.
Szia!
Szerintem azt jelenti, amit írsz, de ez még nem zárja ki a használatot, csak az élnek tovább kell tartania, mint Q2 (1 órajelciklus ) ! Idézet: Nem "műveletet olvas ki", hanem "amikor éppen olvasás műveletet hajt végre". Gondolom, a port olvasásáról van szó, mert más olvasás aligha váltana ki ilyen hatást...„ha akkor történik élváltozás a lábon, mikor műveletet olvas ki a CPU” Ez magyarul azt jelenti, hogyha port megszakításra vársz, akkor ne olvasgasd a portot, mert az olvasás művelet törli a flag-et, s ez extrém esetben ahhoz vezet, hogy elvész egy megszakítás, a leírt körülmények esetén (kitörlöd a jelzőbitet, mielőtt észrevevődhetne...).
Először én is erre gondoltam, mikor olvastam a pdf-et, de mondom ez elég rossz megoldás... Viszont akkor tényleg így van. Hát ez baj, mert egy másik bemenetet folyamatosan figyelek BTFSS-el, de az ugye beolvassa a teljes portot..
Sziasztok!
Egy kis idő után ismét lenne egy kérdésem, nem teljesen PIC-es probléma, de a PIC-es projekt része, amit korábban tárgyaltunk. Először is köszönöm Hp41C-nek az USB figyelést PIC18F4550-nél, a kételkedések ellenére a 10k és 2k7 verzió szépen működik. PIC18F4550-nek akarok nyomógombok állapotát bevinni csomó 74HC166-tal, de egyáltalán nem akar működni. Valaki tudna segíteni, hogy hogyan kellene beolvasni az adatokat? Szimulátorban (Proteus) működik, de a valóságban teljesen mást csinál. Forrasztások jók, azt leellenőriztem ezerszer. Az angol leírást nem teljesen értem, de a szimulációban ezt csináltam: A PE (rajzon SH/LD) alapból magas, de az elsó órajel előtt pillanatra 0 lesz, majd vissza 5V. Ekkor elvileg bekerül az összes parallel a tárolókba. Órajel hatására végiglépkedek az összes biten (HC166 száma * 8-cal), ezt a PIC bemenetén olvasom be. A valóságban a SHIFT OUT kimenet folyamatosan 0-t ad, nem értem, hogy miért... A mellékelt ábra szerint van most próbapanelon bekötve két nyomógomb. Köszönöm előre is a segítséget! A hozzászólás módosítva: Máj 7, 2013
Elég bolhaméretű rajzot raktál be. A CLR bemenet magas szinten van? Az impulzusokat (SH/LD, CLK) próbáld megnyújtani egy kicsit (1-2 NOP nem árt...). Kerüld el az RMW problémát (kimenetnél a LATx regiszter bitjeit billegtesd, ne a PORTx regiszterét)!
|
Bejelentkezés
Hirdetés |