Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   114 / 1319
(#) szivgy hozzászólása Dec 10, 2007 /
 
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.
(#) watt válasza szivgy hozzászólására (») Dec 10, 2007 /
 
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.
(#) watt válasza menyus hozzászólására (») Dec 10, 2007 /
 
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?
(#) szivgy válasza watt hozzászólására (») Dec 10, 2007 /
 
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.
(#) potyo válasza szivgy hozzászólására (») Dec 10, 2007 /
 
Fárasztó azért, mert sokadszor kellene ugyanazt leírni, és némi kreativitás sem árt, ha ilyesmivel akarsz foglalkozni.
(#) hangoverpeti hozzászólása Dec 10, 2007 /
 
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!
(#) dpeti válasza hangoverpeti hozzászólására (») Dec 10, 2007 /
 
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.
(#) menyus válasza watt hozzászólására (») Dec 10, 2007 /
 
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... )
(#) watt válasza menyus hozzászólására (») Dec 10, 2007 /
 
Értem, sajnálom, remélem kicserélik! ?
(#) watt válasza hangoverpeti hozzászólására (») Dec 10, 2007 /
 
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...)
(#) asusu hozzászólása Dec 10, 2007 /
 
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ó.
(#) menyus válasza watt hozzászólására (») Dec 10, 2007 /
 
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.
(#) dpeti válasza asusu hozzászólására (») Dec 10, 2007 /
 
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
(#) hangoverpeti válasza dpeti hozzászólására (») Dec 11, 2007 /
 
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!
(#) watt válasza hangoverpeti hozzászólására (») Dec 11, 2007 /
 
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!
(#) dpeti válasza watt hozzászólására (») Dec 11, 2007 /
 
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.
(#) szivgy válasza hangoverpeti hozzászólására (») Dec 11, 2007 /
 
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.
(#) Norberto válasza hangoverpeti hozzászólására (») Dec 11, 2007 /
 
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...
(#) hangoverpeti válasza watt hozzászólására (») Dec 11, 2007 /
 
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...
(#) edgaar válasza asusu hozzászólására (») Dec 11, 2007 /
 
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
(#) szilva válasza edgaar hozzászólására (») Dec 11, 2007 /
 
É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.
(#) asusu hozzászólása Dec 11, 2007 /
 
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
(#) dpeti válasza asusu hozzászólására (») Dec 11, 2007 /
 
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
(#) dpeti válasza dpeti hozzászólására (») Dec 11, 2007 /
 
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
(#) KrunCH válasza asusu hozzászólására (») Dec 11, 2007 /
 
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.
(#) dpeti válasza KrunCH hozzászólására (») Dec 11, 2007 /
 
azt a startkondíciót mondjuk inkább start feltételnek
Köszi!
(#) tamibandy hozzászólása Dec 11, 2007 /
 
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......
(#) watt válasza tamibandy hozzászólására (») Dec 12, 2007 /
 
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???
(#) tamibandy hozzászólása Dec 12, 2007 /
 
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.>
(#) Carter hozzászólása Dec 12, 2007 /
 
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)
Következő: »»   114 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem