Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ebből még nem következik az, hogy az időzítés jó, csak annyi, hogy valami más is rossz. Tegyél egy-egy 100nF kondenzátort az AN0-GND és AN1-GND közé, és ha még akkor sem jó, akkor mutasd a kódot. Illetve azt is jó lenne tudni, hogy milyen órajelent fut a kontroller.
Üdv!
Nem jó a kondikkal se. Az oszcillátor 10MHz es. Kipróbáltam 2 MHzessel és azzal megy, szóval akkor gondolom, hogy valami beállítás hiba. Ez amúgy egy keverőpult lesz reményeim szerint . Egyet már építettem egy éve, de az teljesen analóg volt viszont még mindig nem recseg pedig rengeteget használtam és a leggagyibb potik vannak benne. De előbb vagy utóbb úgy is elkezd majd recsegni. Ezért kezdtem el ezt fejleszteni. A maximtól ingyen rendelt DS1801 es digitális spi potikon alapszik.
még egy észrevétel:
Ha az egyik poti teljesen fel van tekerve a másik meg le akkor van némi "áthallás". Vagyis ha mondjuk a ch1 en 0V van a ch2 n meg 5V, akkor a ch1 en (az ADC által) mért feszkó kb 0.5V. Ez is hibás bállításokra vall szerintem. Várom az ítéletet.
Szia!
Nem vársz eleget (2*Tad a minimálisan betartandó idő)... A 142. sorban kiválasztod a csatornát és indítod az A/D -t, mivel az adat 0. bitje 1. A 143. sorban még egyszer indítod az A/D -t. Kerüld a goto $+n ill. goto $-n formájú ugrásokat, a regiszterek bitjeit a nevükkel használt (STATUS,2 helyett STATUS,Z olvashatóbb). A műveleti jelet tartalmazó cimke sem szerencsés (POTLVL-3).
köszönöm szépen a segitségeket (watt, bbalazs_ és icserny) már el tudtam kezdeni de sajnos elakadtam, az eggyik oldalon talált ASM pédát kicsit átdolgoztam és elakad (az alap példa le sem fordul mert a RES parancsra azt írja hogy csak páros számokkal működik)
a konfigurációt nem másoltam át mert az hosszú (esetleg csak annyit a konfig al kapcsolatban hogy a 20MHz hez jó e a FOSC = HS amit az adatlap javasol) a program felváltva kéne hogy villogtassa a 2 és 3 "lábakat" de csak azt csinálja hogy bekapcsolja a 3-ast aztán átvált a 2-esre és úgy marad, átírtam a programot más parancsokkal
így azt kapom hogy villog EGY led és nem felváltva a kettő... a láb biztos hogy működik. Mi lehet a baj?
Szia!
Milyen típusú kontrolleren futtatod? Kikapcsoltad az A/D -t vagy az analóg komparátort?
PIC18F2550
alap állapotban vannak abba még nem néztem bele. Eddig csak 16F el foglalkoztam és ott másik bankban voltak... 18F nél nem tudom hogy váltok bankot... vagy hogy kell e. Megnéztem az adatlapot és ezek alapból ki vannak kapcsolva. Működik amikor elösször azt mondom neki hogy kapcsolja be... de amikor már felváltva kéne villognia akkor nem villog csak az egyik.
No!
Beiktattam egy ilyet: DELAY BANKSEL PORTB MOVLW D'150' MOVWF M_DELAY DECFSZ M_DELAY,1 GOTO $-1 RETURN a mérések elé és szuperül működik. Nagyonszépen köszönöm a segítséget mindenkinek!
Átírtam a programot és most működik (csak nem tudom hogy miért ) van valakinek ötlete hogy most miért jó?
amire átírtam:
Jajj, te!
Org-nal nem tettel indulo vektort es a ket interruptot is kihagytad. org 0-ra csak annyit tegyel, hogy jmp main org 8-ra retfie 0 org 18-ra retfie 0 org 20 main: De legyen az a PortA LATA. Azert tutti ami fix alapon, az ADCON1-ben az also negy bitet allitsd 1-be.
Szia!
Írd át a programot.... Legfőképen a POTLVL-n címkéket. A szegény fordító nem azt fordítja, amit gondoltál, hanem azt, amit leírtál: Hova is ugrik a 13 sorban levő GOTO POTLVL-4 utasítás ? Szerintem a 4. sorban levő BCF PORTD,3 utasításra...
Az ellenőrzéshez használd a szimulátort.
Read-modify-write hiba lehetett. PORTA helyett a LATA regiszter bitjeit kellene billegtetni. Bővebben: Link (különösen az 5. ábrát ajánlom figyelmedbe)
rendben, megcsináltam. köszönöm. Az
org 0x20 mit csinál? (A többit tudom.)
köszönöm szépen a linket. Érdekes, nem is tudtam hogy már ilyenek vannak a 18F ben, azt hiszem érdemes lenne átnéznem alaposabban az adatlapot.
Ha van ideje válaszolni valakinek...
A WinPIC800 működik-e Windows 7 alatt? Megépítettem a Watt féle LPT v.4 programozót, és a kipróbálás előtt szeretném kizárni az operációs rendszer hibát. Amennyiben nem, úgy sem hagyom abban, telepítek XP-t a 7-es mellé. Úgy tűnik, hogy igen, legalábbis az ICProg-gal szemben, amelyik már induláskor hibát jelez (DLL...) Az első PIC égetésem lenne, és nem akarom tönkretenni az égetőt, LPT portot vagy PIC-et.
Orulok, hogy mukodik, azonban valoszinuleg BANKSEL M_DELAY-t szerettel volna PORTB helyett?
Amugy adatlapbol kinezheted mennyit kell varakozni ill kiprobalhatod, hogy mekkora a minimum amivel meg mukodik es arra rakj ra valamekkora varakozast pluszban es ugy akkor nem kell feleslegesen sokat varakozni (en ugy emlekeszem elegendo nehany us neki, de majd kiderul).
Egy másik kérdésem:
A MCLR és a Vpp közti 10 k-s ellenállást az égetőbe tettem (Link), mert nem szándékszom a céláramkörben programozni, hanem égetéskor áthelyezem az égetőbe. Így helyesen működik-e, vagy kiemelhetem onnan?
Azon a memoriacimen fogja folytatni a forditast, vagyis tulajdonkeppen azt mondja, hogy az a cimke vagy utasitas, amit ez utan elhelyezel, azt oda fogja mar tenni, az onnan fog indulni.
Igen, annak mindenkepp ott kell lennie Watt mester szerint:
Idézet: „Ez utóbbi esetben is be kell építeni az égetés idejére, mert ellenkező esetben az MCLR láb az odavezető Vpp kapcsolótól tartó hosszú vezetéken lebeg, ami tönkre teheti a PIC-et.” Szoval akkor az egeto aramkorbe tedd bele, ha mindenkepp aramkoron kivuli programozot valositasz meg (gondolom ZIF vagy DIP foglalattal?).
Kösz, akkor bent van.
Volna még kérdésem: Próbálom égetni a PIC-et. WinPIC800-at használok. A beállítások a Watt oldalán leírtak alapján. Az is, hogy ha az eszközfelismerés megvan, akkor "nagy baj nem lehet." Meg is van a felismerés az Eszköz -> IC felismerés menüpont alatt. Üzenet: Találtam - > 16F684. Ugyanis ezzel kezdtem. Majd Eszköz -> Hardware teszt: Hardware OK üzenettel Eszköz -> Mindet Töröl: OK Azonbanm mikor égetek, vagyis Eszköz -> Mindet beír, akkor a következő üzenetet kapom: HIBA - > Cím írása 0x000002 Beírva : 0x22F8 Kiolvasás : 0x2000 Már-már reménykedtem, de Mit rontok el??? Pls
Torles utan ha kiolvasod a program terulet tartalmat mindenhol 3FF-eket latsz? Vpp es Vdd fesz szintje rendesen megvan torleskor es iraskor?
Hát Eszköz - > Kiolvas Kód vagy Kiolvas Adat után mindenhol 3FFF-től különböző értékek vannak...
Kiolvas Kód: 2048 szó Kiolvas Adat: 256 Byte Meg a Törlés - > OK után a 100% pirosban van, nem tudom az baj-e... Eszköz -> Mindet ellenőriz után: Találtam -> 16F684 [ Ellenörzés ] Olvasás Kód - 2048 szó Olvasás ID - 4 szó Olvasás Konfig - 2 szó Olvasás Adat - 256 byte Kód - Ok ID - Ok Konfig - Ok Adat - Ok
A Vpp es Vdd-t hogy ellenorizzem, az írás vagy olvasás pár másodpercet tart, azalatt mérjem ?
Az Vdd és Vpp az IC lábán rajta van Az Adat gomb alatt mindenutt FF van
Olvasd el első körben watt holnapján az égetőről szóló dolgokat. Szépen leírja, hogyan kell éleszteni...
Amúgy van valami oka, hogy Winpic800-at akarsz használni? Ott van watt programja, használhatnád azt is.
"PIC16F684" 'no teszt
Átolvastam az oldalt többször is A v4-es változatot építettem meg, mert arról szól, hogy végleges. A 16F684-gyel kapcsolatban nem gondolkodtam igaz. Lehet, hogy egy 877-essel kellett volna próbálkozzak, csak arra gondoltam, "könnyebben kibírom egy egyszerűbb halálát". Meg a 684-esben benne van timer, CCCP, PWM, A/D konverter, szoval majd-minden...
Ezek a képek a törlés után.
Megnézem a Watt programját. Idézet: „"PIC16F684" 'no teszt” Ez csak annyit jelent, hogy nem volt ilyen PIC-em, azaz nem tudtam tesztelni, de most te megteheted! Elvileg működnie kell! A minivel csak a WPB működik együtt, a mini támogatás kipipálásával. A többi programmal esetleges a dolog.
Szia
köszi a tippet, azzal a deklarálással már jól ír ki mindent. Köszönöm!
Sziasztok ismét, sok a szabadidőm
Próbálkozom gombok mátrixos kezelésével, 4 sor 4 oszlop, 1ik sort aktivvá teszem , megnézem melyik oszlop lesz aktív a gombnyomásra és ezt kiértékelem, ha egyik sem akkor lépek egy sort.. kb ez az elv. Emellett van kijelző, motorvezérlés pwm-el , kommunikáció . A kérdésem annyi hogy az mcc18 beépített moduljait használva lehetséges-e hogy a kimeneti , bemeneti lábaim átíródnak ? Csatolva van egy rövid program ami csak erre van lekicsinyitve. Kiirja melyik gombot nyomtam meg.. Probléma hogy csak az oszlop1 érzékel változást, és a sor1 nem is tud aktív lenni ( szkópon nézve RA1en nincs semmi lüktetés mint a többi sor lábon) . A pwm kell a kijelző háttérvilágításának állításához, azt a P1D kimenetre küldtem, de ahogy látom pont a P1A , P1B, és P1C lábakon van a többi "oszlop" . Létezik hogy pwm-el együtt nem tudom sima I/O lábnak használni ezt a 3 lábat? Elvileg a pwm_initben beállítottam hogy csak a P1D legyen pwm kimenet, de lehet elrontottam ? ui: ez egy 18f14k22 -es pic éppen. |
Bejelentkezés
Hirdetés |