Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Elég érdekes lesz egy hibáktól hemzsegő programot mókolni, mikor nem is te írtad! Én ebből kimaradok...
Idézet: „:kontextus mentes nem jó: ez melyik rész?” A megszakításban a szükséges regiszterek mentése. Lásd adatlap példája! Kérlek a mondatot kezd nagybetűvel! Idézet: „kontextus mentes nem jó: ez melyik rész? hátha ki tudom bogarászni legalább tanulok is egyben” Az "ITRUTIN" kezdetű rész. Annak elején illene menteni a W és a STATUS regisztreket. A módja az adatlapban megtalálható (16F877A 14.11 fejezet). Az egész megszakítás kezelés furcsa.
Ez biztos nem azt csinálja, mint ami a megjegyzésben mellette van. Kétszer értelmetlen a PIR1,5 vizsgálata. (Vesdd össze az eredetivel! Ott szerintem az egyikben 0 volt) A PIR1 regiszterben (meg másokban is) van a biteknek rendes neve, azt kellene használni és akkor nem lenne ilyen elírás, tehát: a 0 helyett TMR1F és az 5 helyett RCIF.
Sziasztok!
http://www.mikroe.com/en/books/picbook/7_08chapter.htm Az lenne a kérdésem, hogy az alábbi kapcsolásban mi a szerepe azoknak az ellenállásoknak és tranzisztoroknak, ami keresztül a 7 segmensest meghajtjuk? Nem elég csak direktben öszzekötni? A választ előre is köszönöm!
-áramkorlátozó
-multiplexelt meghajtás (egyszerre csak egyet kapcsol be) -nem
Ha valamelyik RA -n, RA0, RA1 -en magas szint lesz, akkor az ahhoz kapcsolódó tranzisztor "telített" állapotba kerül. A közös katódot lehúzza alacsony állapotba, amitől világítani fog a kijelző. Dióhéjban. Az ellenállás pedig az áramkorlátozó, mint ahogy azt előttem is írták.
A kapcsoló a vpp kapcsoló. A táplálás egy 12 V-os dugasztápról megy, ezért nincs szükség főkapcsolóra(úgy kapcsolom hogy bedugom a konektorba). Az első változatot építettem meg a feszültség stabilizáló IC-kel. Amint lehet rövidre veszem a kábelhosszot és kipróbálom úgy.
Elküldtem a nyákterv forrásfájlját, sprint layouttal meg lehet nézni normálisan. üdv: mate_x Idézet: „Az lenne a kérdésem, hogy az alábbi kapcsolásban mi a szerepe azoknak az ellenállásoknak és tranzisztoroknak, ami keresztül a 7 segmensest meghajtjuk?” Nekem nem tiszta melyik ellenallast kerdezed? De mindegy is mert elegge off-topic ez igy. Idézet: „Nem elég csak direktben öszzekötni?” Elmeletileg a tri-state valtasokkal funkcionalisan meg lehet oldani tranzisztorok nekul is, de akkor adok egy HF-ot: Szamold ki mekkora aramot kell elnyelnie az RA0 ill RA1 labaknak mikor egyszerre mindegyik szegmens vilagit! Vesd ossze az adatlappal mekkora aram elnyeresere kepes a PIC egy adott port labon, es valaszold meg, hogy valoban szukseges-e a tranzisztor hasznalata?
Sziasztok!
Nemrég kértem tanácsot a KTY81 el és a PIC16F874 el felépített hőfokmérő ügyben! Próbálgatások után úgy döntöttem hogy a táblázatos megoldás lesz a nyerő. A szenzornak megvan az adatlapjában hogy hány fokon hány ohmos. Csináltam egy áramgenerátort is hozzá hogy meglegyen a fix 1mA a szenzoron. A kérdésem az lenne hogy a táblázatot akkor hogyan építsem fel? Azt tudom hogy a retlw utasításokkal kell. De mivan ha olyan érték vagyis cím kerül a PCL-be ahol nincs retlw utasítás? Akkor lefagy ugye? Az AD értéke fokonként 3-at néhol 4-et lép aztán 50fok után már többnyire 4et. 100fok fölött már túlnyomó részt 5öt lép az AD fokonként. 130fok fölött pedig hol 3 at hol 4et hol öt-öt szinte szabálytalanul. Lehet nem is lesz jó ezt táblázattal? Csatoltam az excell filet amivel számoltam. Jah és ezek az ellenállás értékek csak a tipikus értékek még ezeknek is van maximum és minimum értéke. Idézet: „De mivan ha olyan érték vagyis cím kerül a PCL-be ahol nincs retlw utasítás? Akkor lefagy ugye?” Igy van, mielott a PCL-be beirnad az uj erteket validalnod kell azaz meg kell gyozodnod rola, hogy a tablazatodon belulre fog-e ugrani. Amugy sem artana normalisan megirni azt a tablazat ugralast es figyelembe venni a PCLATH (es ha olyan az MCU akkor a PCLATU) regisztereket is. Ezt csak egyszer kell megirni es utana eleted vegeig hasznalhatod, de amugy ha vissza keresel itt a forumon biztosan talalsz erre mar peldakat is... Amugy ne RETLW-ket irkalj, hanem nezd meg a Help-ben a DT direktivat -- epp ilyenekre valo! Idézet: „Lehet nem is lesz jó ezt táblázattal?” Miert ne lenne jo? Lehet egy normalis float rutinnal es szamolgatasokkal kisebb programteruleten elfernel, de ha a celnak ez is megfelel akkor mi a baj vele?
Igazad van tényleg meg kell nézni hogy benne van e a táblázatban. Na legközelebb előbb gondolkodok : )
Azért gondoltam hogy nem jó mert talán túl nagy helyet foglalna és nem biztos hogy beleférne a program memóriába. Főleg hogy nem lenne folyamatos a tábla mert van ahol 3 lépésenként és van ahol 4 lépésenként kerül új érték.
Ezt a szenzort nem lehetne valahogy "lineárisabbá" tenni?
Csak mert egy hipotézisem van: Tegyük fel, hogy AD közel 3,03 -at lép fokonként; kapsz egy AD értéket, mondjuk legyen a 390,8267, először megnézed, hogy mennyire tér el ez a 0 foknál mért AD értéktől: 390,8267=347,7333+x, kijön x -re 43,0934, ezt pedig pedig meg kell nézni, hogy hányszor nagyobb 3,03 -nál, x*3,03 = 40,0934, ezzel kijönne ~13 fok, csak ugye ez 1 fokos tévedés, meg ahogy nézem nem mindig 3,03 az ugrás. Mondjuk ez csak matematika, hogy assemblyben ilyen számokkal hogy lehet dolgozni azt nem tudom. De lehet nyakatekert megoldás ez, mindenesetre a táblázatnál még mindig ésszerűbbnek tartanám. Idézet: „Főleg hogy nem lenne folyamatos a tábla mert van ahol 3 lépésenként és van ahol 4 lépésenként kerül új érték.” Az a resze nem okozhat gondot -- nyilvan minden erteket kitoltesz, tehat a tablanak SZENZORertek -> HŐMertek osszerendelesunek kell lennie. pl (hasrautes-szeru szamokkal -- az excelt lusta vagyok megnyitni ) BE:23 -> 4 fok ... (RETLW 4) BE:24 -> 4 fok ... (RETLW 4) BE:25 -> 4 fok ... (RETLW 4) BE:26 -> 5 fok ... (RETLW 5) BE:27 -> 5 fok ... (RETLW 5) Nyilvan tudod hany bites az amit a szenzor leadhat, azt is tudod mi a max amit meg fel akarsz dolgozni, es ebbol kiszamolhato hany tablaelemre lenne szukseged... Ha valoban tul sok, akkor nincs mese es a szamolgatososdi fele kell terelni a fejlesztes iranyat.
Sziasztok!
Kérdezni szeretném nincs e valakinek egy linkje/tippje ahol fellelhető egy egyszerű soros rutin? A GPS/GSM nyomkövetőmet szeretném modernizálni mert egy USART al nagyon sok a kompromisszum...2 Usart pedig csak a 18F ekben van, azoktól meg félek egyelőre. Google testvérrel hiába keresgélek, én nem találok ilyen rutint sehol... Köszönöm előre is
Ha pl. egy táblázatban azt tárolod el, hogy melyik érték hányszor fordul elő egymás után, akkor egy "végigrohanós" ciklussal ki lehet számolni a mért értékhez tartozó hőfokot. Ez a táblázat nyílván annyival rövidebb lesz az eredetinél, ahány bemenő lépés tartozik ugyanahhoz a kimenethez átlagosan. Ha még több helyet akarunk spórolni, akkor egy táblázatelembe (1 byte) két táblázatérték-hosszat is letárolhatunk, feltéve, hogy sehol sem kell 15-nél nagyobb számot tárolni (ez fér el négy biten, és ha jól látom, a maximum "értékhossz" 5 körül van, tehát bőven megoldható).
Úgy is felfoghatjuk, hogy ez az eredeti táblázat egyfajta tömörítése, és mint minden tömörítésnél, itt is igaz: a tömöríés adta kisebb méretet bonyolultabb programkóddal kell kompenzálni.
Már azon is gondolkodtam hogy lehet nem volt jó választás ez a KTY81. Mármint ilyen mérési célra nem. Mert mikor csak reléket kell kapcsolgatni arra jó a KTY de ilyen AD átalakítós mókára nem nagyon. Mi lenne ha valamilyen félvezető negatív hőfoktényezőjét használnám ki? Elvileg 2,2mV/Celsius a félvezetők hőfoktényezője gondolok itt a diódákra pl az 1N4007 vagy ilyesmi. Ezt egy műveleti erősítővel felerősítem annyira hogy 4,6mV körül legyen fokonként és így már együtt lép az AD vel. Annyi hogy mindezt negatív tápfesz nélkül kell megoldani mert azt már nem nagyon akarok előállítgatni a motoron.
Megnézem ezt a táblázatos dolgot először ha nem akkor majd jöhet a számolgatás vagy a műveleti erősítős dolog.
Na kipróbáltam az égetőt hosszabítás nélkül( a nyákot egyből a gépbe dugtam hosszabbító nélkül), de így is ugyanazt a hibaüzenetet jeleníti meg, de a picet gondnélkül felismeri. :wilting:
Nemtudom hátha az a baj, hogy az pic16F84 rossz lábaira kötöttem rá az égetőt. Vpp/MCLR: a pic 4 es lábára kötöttem VDD: a pic 14 es lábára kötöttem GNG: a pic 5 ös lábára kötöttem PGD: a pic 13 as lábára kötöttem PGC: a pic 12 es lábára kötöttem Ha ezek az összeköttetések jók, akkor szerintem már csak a programban kéne valamit átállítanom, vagy nem tudom.
Kerdesek
1. Vpp ill Vdd feszultseg szintjei mekkorak egeteskor? 2. Vdd es GND (Vss) be van teve kozvetlen a labra egy 100nF keramia? 3. Esetleg a PGC/PGD labakra is lehet keramiat tenni ugy 50pF koruli ertekeket 4. Masik PIC-et tudsz a programozoddal prograozni? 5. Masik 16F84-et is? Hello! Válaszok: 1. az égetés el sem indul, hanem egyből kijön a hibaüzenet 2. be van téve egy 100nF os kondi csak műanyag, nem kerámia, majd holnap kicserélem.(igazad van, lehet tényleg ez a probléma) 3. ha ezután se fog működni majd teszek rá 4. ez az első égetőm, és csak most kezdtem el picezni. Jelenleg csak egy pic16F84-gyel rendelkezem. De egyenlőre nem akarok újat venni, ez is 1600Ft volt. 5.-
Hát, megnéztem ennek a KTY81-nek az adatlapját, végülis ez is szilícium. Tehát ebből a szempontból mindegy, hogy diódával vagy ezzel mérsz hőmérsékletet, a használható tartomány nagyjából ugyanaz, a gyakorlatban kb. 120C-ig jó. Viszont mivel ez már megvan, így én feleslegesnek tartanám kihajítani, mert a diódánál meg az erősítést kell megoldani, tehát az sem lesz egyszerűbb. Ez a táblázatosdi nekem nem tűnik olyan kivitelezhetetlennek, hogy emiatt feladd ezt a vonalat.
Ha mégis a diódás megoldás mellett döntenél, akkor a Microchipnek vannak jó műveleti erősítői is az MCP sorozatban, azok között találsz olyat, ami 5V-ról működőképes, valamint a be- és kimenetei is a teljes tápfeszültség-tartományban használhatók. Idézet: „2. be van téve egy 100nF os kondi csak műanyag, nem kerámia, majd holnap kicserélem.(igazad van, lehet tényleg ez a probléma)” Hmm, es milyen tipusu kondi az? A lenyeg, hogy low ESR kell legyen (azaz a kondi belso ellenallasa nagyon kicsi kell legyen) Idézet: „4. ez az első égetőm, és csak most kezdtem el picezni. Jelenleg csak egy pic16F84-gyel rendelkezem. De egyenlőre nem akarok újat venni, ez is 1600Ft volt.” Sajnos azt kell mondjam a 16F84 rossz valasztas. Regi tipus es draga. Jobban jarnal pl egy 16F887-essel, azt pl egy PICkit2-vel meg debuggolni is lehet adott esetben... Amugy egy PIC nem PIC -- sajnos ez egy ilyen hobby Bar nyilvan nem kell reszletesen magyaraznom ezeket hisz ugy tunik nem vagy kezdo az elektronika teruleten? Idézet: „1. az égetés el sem indul, hanem egyből kijön a hibaüzenet” Szerintem akkor valami nagyobb volumenu hiba van, pl a WinPIC-ben nincs jol kivalasztva a programozo, vagy valami rovid zar vagy szakadas vagy forditva rakotes van... Esetleg valamelyik alkatresz hibas, ellenallas szinkodja el lett nezve stb stb stb... Idézet: Nem kell félni tőlük, szerintem sokkal könnyebb a 18-asokat programozni mint a 16-osokat, főleg hogy nem kell a perifériák használatakor a lapokkal foglalkozni. 2 Usart-os 18f-es 28 lábú PIC ugyan létezik, csak sajnos a chipcad-nál egyik sem kapható (legalábbis egy hónapja nem volt). Tettem már fel ide 18f-re készült szoftveres Usart rutint (igaz még csak szimulátorban tesztelt), azt felhasználva a GPS-el összeköthető (ahhoz úgyis elég a vétel), a hardveres kétirányút meg fel lehet használni a GSM-hez. „2 Usart pedig csak a 18F ekben van, azoktól meg félek egyelőre”
ÉRtem köszi!
Kipróbálom a táblázatosat most kitaláltam egy jó algoritmust rá ha bejön akkor marad a táblázatos dolog.
Itt is kerestem a fórumon belül de nem találtam. Majd átnézem még egyszer. Én a 18F6627 et néztem ki, az van raktáron a chipcadnél. A két USART a lényeg a többi perifériát nem használom. Igaz drága egy kicsit de nem lesz belőle sorozatgyártás...
Köszi
Hogy én mekkora egy ö..r vagyok, pont nekem tetted fel ezt a rutint még májusban (#439756), most megtaláltam. Ráadásul le sem reagáltam ezt a hozzászólásodat akkor, valahogy átsiklottam a lényeg felett (sajnos mint általában) Ezúton köszönöm utólag is, majd eljátszom vele. Viszont lehet hogy a TX is kelleni fog mert a GPS modult is utasítgatni szeretném, (Trickle Power , Power Save üzem...stb) De lehet hogy előre fel lesz programozva és csak a tápját kapcsolgatom a PIC el, ebben az esetben nem kell a TX.
Még egyszer köszönöm a segítséget
Hello!
Na végre működik az égetőm! Letöltöttem az oshon 16f -es programot, kipróbáltam ezzel és minden gond nélkül megy! A Winpicbe ezek szerint valamit rosszul állítottam be , de most már mindegy ezzel végre megy üdv: mate_x
Azt már én is észrevettem, hogy a programok nem egyformán jól teljesítik a szabványokat, főleg, ha nem olyan sebességű PC-re lettek írva, mint amin most használjuk. De a lényeg, hogy már jól működik! Jó égetést!
Szia szoval megnyiom a basic file-t Mplab-al majd FILE menu pontban van egy olyan almenu hogy export es ha ara katintok akkor hex-be exportalja.Vagy roszul csinalom? Sajnos nem tudom hogy jo e ez igy, meg nagyon kezdo vagyok.
Akkor ezt elrontotam !
Tudnal segiteni, hogyan kell csinalni?! Vagy talan ehez valami kulon progi kell? |
Bejelentkezés
Hirdetés |