Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
szia watt!
Azért ebben a topicban kérdeztem mivel rákerestem a problémámra, és itt találtam hasonló dolgokat. Láttam pl, hogy valakinek az volt a gondja hogy rosszul kötötte be a port csatlakozót, nem gondoltam, hogy az én problémám ennél is kevesebb hozzáértésről árulkodik. Tudnál esetleg ajánlani topicot ahol megválaszolják a kérdésemet? Előre is köszi.
Ha valakinek válaszolsz, használd a "válasz" linket a hozzászólásánál!
Kérlekszépen, fogod a rajzot és végigköveted mit rontottál el! Szépen megérted melyik bemeneti lábra, milyen szintet kapcsolva, mely kimenet fog változni és miért! Megérted a tranyók és a TTL IC-k működését! Megérted az LPT port fizikai felépítését, kimeneti szintjeit, működését! Megérted, miképpen működik az ICSP programozás, és kiméred, hogy a hozzá tartozó lábakra a megfelelő szintek mennek-e! Az égető programban lecsekkolod a lábakat, hogy a megfelelő polaritással dolgoznak-e az ICSP szerinti igényhez mérten! Elolvasod a több száz hozzászólást, ami az ilyen típusú égetőkkel kapcoslatosan született itt! Ez az áramkör a legegyszerűbb, ami létezik, ha ez nem megy, akkor hagyd az egészet olyanra, aki ért hozzá! Egy hozzá nem értőnek hiábavalóság bármit magyarázni! A topic, ami neked való, az a "Kezdő Kérdések" topicja.
Nem tudod valakinél, vagy valamin kipróbálni, hogy a modul működőképes-e?
Az adatlapján nincs semmi utalás, hogy speciális vezérlést kér-e vezérlő vonlalakon? Beállításokra, amiket a terminál progiban találsz, van valami előírás?
Szia! Köszi a segítséget, utánna nézek ezeknek amennyire tudok. A hozászolásokból elég sokat elolvastam, ezért is gondoltam, hogy talán itt segítséget kapok.
Ha úgy érzed, hogy felesleges számomra bármit magyarázni, akkor ne tedd, tudom jól hogy fárasztó ilyen emberekkel megértetni a dolgokat.
Fárasztó azért, mert sokadszor kellene ugyanazt leírni, és némi kreativitás sem árt, ha ilyesmivel akarsz foglalkozni.
Hello, mindenki!
Ha tudja valaki hogy néz ki egy egyszerű óra (hh:mm) programjának folyamatábrája, legyen szíves tegyen fel ide egy linket, vagy küldjön egy mailt: hangoverpeti@yahoo.com Bocs a hülye kérdésért, de az összes kezdőknek való topic süketnéma egy ideje.... Kösz szépen!
na most komolyan...
szerinted mi lehet? rettentő bonyolult dolgok vannak benne: -összeadás -összehasonlítás -értékadás nem azért nem fogsz kapni folyamatábrát, mert bonyolult, hanem mert mindenki lusta nekiállni megrajzolni ilyen primitív dolgokat.
A leírás szerint van beállítva a terminal is, 115200 B.rate, paritás nincs, 8 bit, handshake nincs. Felhívtam a forgalmazót azt mondták valóban elég az RX/TX lábakat bekötni ahogy te is írtad, a többi (ennél az alkalmazásnál) nem kell. Nem kell semmiféle spéci vezérlő programot írni hozzá. Elküldtem az általam készített próbakapcsolás sch ját nekik, a kapcsolás jó Valószínűleg hibás lehet a modul ,mert van rajta egy NETLIGHT STATUS led ami különböző jel / szünet arányú villogásokkal jelzi vissza mit csinál a modul éppen. A visszajelzés szerint a modul fel van jelentkezve a GSM hálózatra, viszont telefonon elérhetetlen. Ilyenkor egy READY it visza is kellene küldenie a soroson a terminal felé. Egyedül a modul hardveres kikapcsolásakor (PWRKEY nyomógomb) küld vissza egy NORMAL POWER DOWN üzenetet, bármi más érvényes AT parancs ECHO ként jön vissza. Néztem spektrumon a 800 - 900 MHz es GSM felmenő sávot, bekapcsolás után nincs is RF kimenőjel tehát be sem jelentkezik az biztos. Belenyúltam egy hibás modulba, nálam ez már csak így van....(A múltkor az EW ben egy raklapnyi turmixgépből kiválasztottam fentről a harmadik sorban jobbról a negyediket és hibás volt... )
dpeti-nek igaza van, ilyen egyeszrű feladat nagyon kevés van!
Mondjuk Ő kifelejtette az ütemadót, de a többi az annyi! Az ütemadót pedig megszakításban elő lehet állítani az osztók beállításával esetleg még némi korrekcióval. Nemrég pont erről volt szó részletesen, keress vissza!(aztán lehet, hogy a terminalon volt, keverem...)
Hali!
Egy pices, inkább assemblyhez fűződő kérdésem lenne. Adott egy regiszter, és sorba, egymás után akarom kiküldeni a tartalmát, (sorosan) de nem egy "átlagos" soros szabványon keresztül, hanem DMX512-n. Másik kérdés: Hogyan megy a bináris->BCD konvertálás, mert néztem már kész rutinokat, de nem értem őket. Persze én is írtam egy rutint, de fapadosnak tűnik. 1.) kivon a számból százat, megnézi a carry és zero biteket 2....és így tovább 10, 1 ... Gondolom van ennél gyorsabb algoritmus is Ja, 16F887-ről van szó.
Nem, sajnos nem cserélik ki... , a már beépített (ráadásul SMT) alkatrészre nem vállalnak garanciát. (ha ebből élnék én sem vállalnék) Kicserélték volna ha tőlük megvásárolom kompletten a fejlesztő kittet ami egy alappanel tulajdonképpen amivel össze lehet dugni a különböző perifériákat. Mivel ezt árban sokalltam (kb 40 e) ezért csak a modult vettem meg 8 e ért és én "vasaltam" (a Te módszereddel... ) hozzá egy alaplapot amin a minimális működéshez szükséges dolgok voltak csak rajta. ( tápok / szürés / SIM foglalat / netlight visszajelzés / RS232 lábak...stb) Szóval ezt bebuktam... Holnap jön egy másik (fejlesztőkittel együtt), ha kijátszottam magam vele átszámlázom egy elektronikai szakkörnek a fiam sulijában. Így csak a 8 at bukom el, és lesz garancia az egész cuccra.
tegyük fel hogy egy 4 bites számot akarsz BCD-be átkonvertálni:
(ez nem regisztereken, csak "papíron" számolva) (BCD: tizesek-egyesek : 4-4 bit) (4 bites bináris) ------------ --------1111 -------1111- egyszer balra shifteljük ------1111-- mégegyszer -----1111--- meg mégegyszer ----10101--- hozzáadtunk 3-at ---10101---- majd mégegyszer balrashift csoportosítod a biteket: tizesek: ---1 -> decimális 1 egyesek: 0101 -> decimális 5 többi nem lényeges Bemenet 1111 azaz 15 volt, kaptuk azt hogy 1 és 5 Az, hogy ezt hogyan valósítod meg, rád van bízva
2 eset lehetséges: Vagy mindenki egyforma okos, de akkor minek ez a topic? Vagy vannak nálad is hozzáértőbbek. Mert ha jól értem nem vállalja be senki a missziót, hogy a hülyébbeknek (jelen esetben nekem) segítsen. De ha így van, akkor megint csak: minek ez a topic?
Bocs hogy ide keveredtem, de mint írtam: a szerencsétleneknek való topicok hetek-hónapok óta nem mennek. Nekem pedig a héten kellene a folyamatábra, hát megpróbálok minden lehetőséget... Még egyszer: Bocs!
Nade kérem, tényleg nem tudsz elképzelni egy egyszerű óra programot? Bizosan valami leckét kell megoldanod, és azt várod, hogy majd mások megoldják helyetted! Aztán itt siránkozol ahelyett, hogy tanulnál! Igen ez a fórum azért van, hogy segítsünk azon aki kérdez! Te nem kérdezel, hanem arra kérsz minket, hogy helyetted dolgozzunk!
Egyébként nézd meg hány hozzászólás van itt! Ezek kb. fele segítség! Veled biztosan kivételesen rosszindulatúan kivételezünk, minden ok nélkül!? Jó lenne tudomásul venni, hogy teljesen felkészületlenül ilyen dolgokkal foglalkozni nem lehet! A felkészülésben pedig nem tudunk segíteni itt! És szerintem máshol sem fognak, ezért nem jönnek a válaszok ott sem ahol "kérdeztek"(mert nem vagy ám "egyedül")! Aki PIC-el akar foglalkozni kösse fel a gatyáját, mert ez bizony nem egyszerű, és az sem feltétlenül szükséges, hogy mindenki értsen hozzá(meg is lehet bukni akár)! Egy jó kérdésre jó válasz fog születni, egy rossz kérdés pedig minősít, és nem jön rá válasz. Elnézést, ha kicsit nyers voltam, egy biztos, nem a rosszindulat szól belőlem! Még javadra válhat!
Egyetértek.
--- A kiadott feladatok azért vannak, hogy segítsék a tanulást. Sokkal könnyebb megérteni a tananyagot, hogyha megpróbálsz megoldani pár kapcsolódó problémát Magadtól(!!!). Ha nagyon elakadsz, akkor részlépésekben lehet segítséget kérni (de azt is csak akkor, ha már végképp nem jön az isteni szikra, hogy hogyan tovább), de annak semmi értelme, hogy mással megcsináltatod, vagy lemásolod a megoldást. Ezzel csak magadat csapod be. --- Ha nem kiadott feladat volt, hanem "csak úgy" magadtól próbálsz ilyeneket csinálni, akkor könyörgöm kezd valami egyszerűbbel. Ha túl nagy lépésekben haladsz a tanulással, akkor rengeteg apró fontos részlépést kihagysz, amelyek később rendkívül fontosak lehetnek, és ezért nem fogsz majd boldogulni.
Szia!
Igazából nem nagyon értek a dologhoz, de a googlen kicsit keresgélve találtam egy ilyet http://www.patentstorm.us/patents/6359840-fulltext.html az oldal alján van egy óra programkódja asm ben egy adott Pic hez. Úgy gondolom a program mellé irt megjegyzésekből egyszerű elkészíteni egy folyamatábrát. Remélem tudtam vele segíteni.
Teljesen igaza van watt-nak!
Mindamellett azt kell mondjam, maga az óra leprogramozása sokkal nagyobb erőfeszítést kívánna! Ehhez képest egy folyamatábra bolhafing nehézségi fokozatú (Level 1 szint )... Szerintem te inkább azt nem értetted meg eddig, hogy mifán terem a folyamatábra. (Másik eshetőség: vagy nem tudod, hogy működik egy óra?!?!?! :eek2: :eek2: :eek2: ) Nade hogy necsak fikázzak, hanem értelmeset is írjak Valahogy így néz ki a feladat nagyjából...majd átnézed, kiegészíted, stb.! Felül: Start Köv.: Kezdőértékek megadása, regiszterek nullázása (pl. 00:00:00) Köv.: Másodperc-számláló regisztere (kijelző is egyben) Köv.: Perc-számláló regisztere (kijelzés is egyben) Köv.: Óra-számláló reg. (kijelzés is egyben) 1. feltételvizsgálat: Elérte-e az órák száma a 24-et? > IGEN ág: visszatérés a nullázás előttre > NEM ág: a prog. tovább folytatódik a megszokott menetben, irányban 2. feltételvizsgálat: Elérte-e a percek száma a 60-at? > IGEN ág: perceket nullázzuk, órák értékét eggyel növeljük > NEM ág: a prog. tovább folytatódik a megszokott menetben, irányban 3. feltételvizsgálat: Elérte-e a mp-ek száma a 60-at? > IGEN ág: visszatérő ágban mp-eket nullázzuk, percekhez hozzáadunk egyet > NEM ág: visszatérő ágban a mp-eket eggyel növeljük Mindezt befoglalod folyamatábra-beli "buborékokba", és kész a feladatod...
Tisztelt Watt, Dpeti, Szivgy és Norberto!
Először is köszönöm a segítséget. Másodszor: Teljesen igazatok van! Harmadszor: Tényleg egy leadandó feladathoz kellett a "segítség". Ha úgy tetszik igen, helyettem oldjátok meg. A mentségem csak annyi, hogy eddig életemben nem dolgoztam mikrokontrollerrel, a programozáshoz sincs lövésem, ami az egész évfolyamra igaz (a suli nevét fedje jótékony homály). Nem önfényezés, de az egész bagázsból egyedül én vettem a fáradságot, hogy beleszagoljak kicsit a pic-ek világába. A többiek leadtak valami felsőbb évestől elkért házit, vagy letöltöttek valamit a netről, és beadták azt....a kettes így már megvan (ennyit megint a suli színvonaláról). Én meg akartam oldani, de az idővel elszámoltam magam, és vajmi keveset tudtam meg, főleg a progrmozás részéről. Csak annyit, hogy ezt nem lehet elsajátítani csak elméleti síkon pár hét alatt. (Hála istennek csak folyamatábra kell a háziba...) Most már lassan le kell adnom, de szeretném érteni is, amit beadok. Ez csak nem akkora bűn. Még egyszer elnézést kérek mindenkitől, hogy ide- pofátlankodtam. És még egyszer köszönöm...
Hali !
bin2bcd addwf PCL, F retlw 0x00 retlw 0x01 . . retlw 0x09 retlw 0x10 ; itt jön a trükk... retlw 0x11 addig irod a táblát amíg akarod.. persze ez nagyon gány meg sok helyet foglaló megoldás, de ennél egyszerűbbet szerintem nem találtak még fel erre a problémára. ha van memória akkor mehet ez, ha nem akkor kénytelen vagy számolgatni.. de ez gyorsaságban meg végrehajtott utasítások számában tutira verhetetlen. Edga'r
Én nemrég túrtam egy 32 bites aritmetikai csomagot a neten, abban van ez a döbbenetes átalakítós rutin:
;*** 32 BIT SIGNED DECIMAL TO BINARY *** ;Decimal DIGIT1 thro DIGIT(X) & DSIGN -> REGA ;Set DSIGN = 0 for positive, DSIGN = 1 for negative values ;Most significant digit in DIGIT1 ;Enter this routine with digit count in w register ;Return carry set if overflow ;Uses FSR register dec2bin movwf MTEMP ;Save digit count movlw D'32' ;Outer bit loop counter movwf MCOUNT d2blp1 movlw DIGIT1-1 ;Set up pointer to MSD movwf FSR movf MTEMP,w ;Inner digit loop counter movwf DCOUNT movlw D'10' clrc ;Bring in '0' bit into MSD d2blp2 incf FSR,f skpnc addwf INDF,f ;Add 10 if '1' bit from prev digit rrf INDF,f ;Shift out LSB of digit decfsz DCOUNT,f ;Next L.S. Digit goto d2blp2 rrf REGA3,f ;Shift in carry from digits rrf REGA2,f rrf REGA1,f rrf REGA0,f decfsz MCOUNT,f ;Next bit goto d2blp1 movf INDF,w ;Check for overflow addlw 0xFF skpc rlf REGA3,w skpnc return btfsc DSIGN,0 ;Check result sign call negatea ;Negative return Szerintem elég egyértelmű a használata, DIGIT1-DIGIT10 egy 10 byteos puffer, ahová a számjegyeket kifejti, DSIGN pedig az előjelet fogja tartalmazni. REGA0-REGA3 a 32 bites bemenő érték, REGA0 a legalsó byte, a hívott rutinok (absa, negatea) értelemszerűen működnek. Ahogy néztem, szerintem a közepén lénő D'10' megváltoztatásával más számrendszerekre is használható lenne.
Köszönöm dpeti , és edgaar !
edgaar! Erre a megoldásra nem is gondoltam! A másik kérdésemet kifejtené egy picit; Tehát, AD konverterből van egy értékem (csak a felső 8 bitet veszem figyelembe), ezt szeretném kiküdeni az egyik lábon, sorosan (a DMX-ben van egy startbit, 8 adat, két stop, paritás nincs, a "bitidő" 4 mikrosec). És ezen töröm a fejem már egy ideje. Shifteléssel? Vagy hogy érdemes, hogy elegáns? -- köszi
igen, az ilyet csak shifeléssel tudod...
kishiftelsz egyet, a kieső bit a carrybe kerül, és ugróutasításokkal (ami a carry szerint ugrik vagy sem) mész olyan helyre, ahol ki küldesz egyet vagy nullát pl: most csak pszeudo kódban: legyen W-ben a byte és te az MSB-t akarod először kiküldeni: BalraShift W HaCarry, akkor következő utasítás kihagy Kiküld 1 HaNemCarry, akkor a következő utasítás kihagy Kiküld 0 VanMégAdat? (ezt úgy vizsgálod ahogy szeretnéd) Igen, ugrás elejére Nem, szubrutin vége, visszatérés
persze itt most a start stop és paritásbit kimaradt, de az csak annyi, hogy a rutin elé pakolsz egy KiküldStartbitet
kiszámolod még küldés előtt a paritásbitet majd a rutin után kiküldöd a paritásbitet, meg a stopbitet
Ha jobban megfigyeled akkor a DMX az egy sima RS485 protokol egy különleges startkondicióval. Szóval használhatod az UART-ot 8n2 konfigurációban és 250kbps sebességgel.
A startkondiciót pedig az UART kimenet felfuggesztesevel és a port nullázásával teheted meg (ha jól emlékszem 88us hosszú de lehet több is). Én már használtam AVR-t hasonló módban és kiválóan müködött.
azt a startkondíciót mondjuk inkább start feltételnek
Köszi!
nekem az lenne a kerdesem a pic-ekkel kapcsolatosan, hogy mikor csinalom meg a rajzot neki OrCAD capture cis programban(ide mar beraktam), mien elnevezeste format keressek a layout plus-ban?
mert kepeken ugy latom hogy a pic-nek(pic12f629) van egy tartoja amibe beleszurjuk amikor mukodtetni akarjuk......
Tisztelj meg mindket azzal, hogy magyarul és helyesen fogalmazol, még ha nincs is ékezeted! Ha érdekel, nekem az írásod után az jön le, hogy nem érdemes neked egy szót se válaszolni! Ez volt a célod???
na szoval, az elobbi hozzaszolasom telleg egy kicsit erthetetlen hozzaszolas.
Az a lenyege a kerdesemnek, hogy van a pic12f629-es, es ennek a picnek van "tartoja" (<-- ezt szeretnem megtudni hogy pontosan hogy hivjak es hogyan lehet, mien nev alatt megkapni), ami a nyakon van es ebbe jon bele a pic.>
Sziasztok!
PIC18F4520al kapcsolatban lenne kérdésem. Egy bináris számot hogyan tudnék átalakítani hexa és decimális formába? (Soros vonalon keresztül szeretném kijelezni ASCII kodok küldésével) |
Bejelentkezés
Hirdetés |