Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   362 / 1319
(#) watt válasza delmur82 hozzászólására (») Dec 18, 2008 /
 
Úgy is jön a karácsony!
Több100 méterig is jó, elvileg 1200m csavart árnyékolt érpáron.
(#) MPi-c válasza watt hozzászólására (») Dec 18, 2008 /
 
Idézet:
„Úgy is jön a karácsony!”
Ekkora tolerancia és kedvesség! Tudtam én, hogy képes arannyá válni bárki szíve...
(#) delmur82 hozzászólása Dec 18, 2008 /
 
Köszi!

Az RE és a DE pontokra mit kell kötni és miért van rá szükség?
(#) watt válasza delmur82 hozzászólására (») Dec 18, 2008 /
 
Adatlap...

SN75176.pdf
    
(#) delmur82 hozzászólása Dec 18, 2008 /
 
Látom hogy valamiféle engedélyező bemenetek. A legtöbb rajzon össze vannak kötve. És vagy Vss -re vagy Vdd - re van kötve. Ja meg a PIC egyik lábára. Nem teljesen tiszta hogy miért és hogy melyik lábára.
MAX 232 - né egyszerű csak simán Tx és Rx. (+GND)
(#) szilva válasza delmur82 hozzászólására (») Dec 18, 2008 /
 
Az RS485 egyirányú kommunikáció, az érpáron differenciális jel közlekedik (nagyobb a zavarvédettsége). Az engedélyező lábakkal tudod a vétel- illetve adásoldali meghajtókat kapcsolni, attól függően, hogy éppen milyen irányú kommunikációra van szükség.
(#) pinyooooo hozzászólása Dec 18, 2008 /
 
Sziasztok!

Lenne egy kérdésem.

Adott egy infra vevő (tfms5300), ami TTL outtal rendelkezik, valamint adott egy PIC16F690, aminek pl az RA0 lába TTL kompatibilis. Próbálkoztam már több módon is, de nem kaptam a PICnél használható eredményt.

Hogyan lehetne összehozni egyszerűen a kettőt? Első körben elég lenne, ha csak azt meg tudnám állapítani, hogy kapott jelet az érzékelő, vagy nem.

A segítséget előre is köszönöm!

pinyó
(#) watt válasza pinyooooo hozzászólására (») Dec 18, 2008 /
 
A 3-as lábon alacsony logikai szint van, amikor az infra vevőre 30kHz-es infrajelet irányítasz, és magas, amikor nem?
(#) delmur82 válasza szilva hozzászólására (») Dec 18, 2008 /
 
Nekem csak adás irányú kommunikációra lenne szükségem. Hogyan kössem be ezesetben a MAx485 - öt a PIc16F628 . hoz?
(#) pinyooooo válasza watt hozzászólására (») Dec 18, 2008 /
 
Amikor kapja az infrajelet, akkor 2,44 V-ot mértem, amikor nem, akkor 2,47-et, úgyhogy valószinűleg meggyilkoltam a vevőt, mert tegnap még működött a videóban amiből kiszedtem.

pinyó
(#) watt válasza pinyooooo hozzászólására (») Dec 18, 2008 /
 
Először ezt a problémát kell megoldanod egy másik topicot keresve, mert ez nem PIC kérdés. Ha már megvan a logikai váltás, és a PIC-el elkadsz, várjuk a kérdéseket.
(#) szilva válasza delmur82 hozzászólására (») Dec 18, 2008 /
 
watt rajzából nagyon jól látszik, hogy az illesztőben lévő kimeneti meghajtó a DE logikai 1 állapotára aktív, a jelfogadó erősítő pedig az RE logikai 0 állapotára. Azaz ha a két vezérlőlábat összekötöd, akkor a közös pontra kötött "1" állapottal engedélyezed az adást, a "0" állapottal pedig a vételt. Tehát az adóoldalon a közös lábat "1"-re, vevő oldalon pedig "0"-ra kötöd fixen.
(#) googa hozzászólása Dec 18, 2008 /
 
Lehet rosszul fogalmazok: Amikor változókat definiálunk a PIC számára így:

cblock 0x20
valami1
valami2
...
hosszuvalami
endc

és a General Purpose Register 80 byte méretű, akkor hány változót lehet definiálni erre a 20h címre? Egy változó egy byte, vagy miként kett ezzel számolni?

Köszönöm!
(#) szilva válasza googa hozzászólására (») Dec 18, 2008 /
 
Igen, ha így írod, akkor minden változó (tulajdonképpen csak címke) 1 byteos. De ha a neve után írod kettősponttal a hosszát, akkor annyi byteot fog foglalni neki.

Pl.:

cblock 0x20
valami1:4
valami2
.
.
.

Ekkor valami1 0x20-on lesz, és 4 byte terültet lesz fenntartva neki, valami2 pedig 0x24-re kerül és 1 byteos.
(#) lidi hozzászólása Dec 18, 2008 /
 
Hi !

pwm -el vezérelnék egy lcd led háttérvilágítást. Működik is, csak az a bajom, hogy kitöltési tényezővel nem arányos a fényerő változás. Nem tudtok esetleg valami anyagról, ami leírja hogy mekkora kitöltésre mekkora az érzékelt fényerősség ?
(#) Hobbipices hozzászólása Dec 18, 2008 /
 
Üdvözlök mindenkit!

Egy segítségre lenne szükségem! A mi nap rátaláltam az interneten egy OLIMEX gyártmányú, PIC-WEB eszközre (Bővebben: Link). Utána néztem ennek a terméknek, és tényleg jó. Tartalmaz egy 18F452-es PIC-et, 10M Ethernet vezérlőt, hőmérséklet mérő áramkört, stb. Átnéztem a leírást is, de nem találtam róla részletes programozási dolgokat.
Az a kérdésem, hogy valaki nem ismerni ezt a terméket? Foglalkozott-e már vele? Mi a véleményre róla, érdemes-e megvásárolni? Hogyan lehet szoftvert rá tölteni? Microchip ICD2-vel lehet konfigolni? Van esetleg valakinek részletes leírása róla, mert a neten nem találok!

Köszönöm a választ előre is.

Mindenkinek Kellemes Ünnepeket!
(#) icserny válasza Hobbipices hozzászólására (») Dec 18, 2008 /
 
Idézet:
„Az a kérdésem, hogy valaki nem ismerni ezt a terméket?”

Hát én nem. Csak képről.

Idézet:
„Microchip ICD2-vel lehet konfigolni?”

Persze. Ott van a kártya végében a 6 pólusú ICSP/ICD csatlakozó.

Idézet:
„Van esetleg valakinek részletes leírása róla”
Ami van, ott van az általad belinkelt lapon. Kapcsolási rajz, leírás, szoftver, Microchip TCP/IP AN833 (ez utóbbi alkalmazási mintapélda a TCP/IP kezeléséhez).

Ha ezen szavak: TCP/IP, HTTP szerver, POST, GET, CGI, DHCP nem ismerősök, akkor viszont a hálózatkezelés témakörében kell keresgélni.

A legizgalmasab kérdés viszont az, hogy mit is akarsz vele kezdeni?

Az "Understanding PIC WEB boards..." leírás abból a feltételezésből indul ki, hogy a HTTP szervert akarod módosítani céljaidnak megfelelően.

Ha nem ez a célod, akkor viszont a Microchip TCP/IP stack használatát kell megtanulni.
(#) pinyooooo válasza watt hozzászólására (») Dec 18, 2008 /
 
Jogos. Én voltam a hülye, azt hittem a PIC-nél csináltam rosszul valamit. Ezért kellene bemérni mindent mielőtt hülyeségeket kérdezek. Elnézést.

pinyó
(#) googa hozzászólása Dec 18, 2008 /
 
Köszi a cblock-os kérdésemre a választ!

Van még egy: ASM-ben, hogy lehet feltételes (olyan IF...THEN...ELSE módon)összehasonlítani két értéket? Van erre valami rutin? Köszi!
(#) skeletornb hozzászólása Dec 18, 2008 /
 
Megépítettem próbapanelen, a watt féle WPB programozót. Annyi különbséggel, hogy én külső 15V-os tápot használok és abból csinálok 5, illetve 13,5V-ot, ami a MCLR lábon már csak 13,3V de szerintem ennek nem szabadna bezavarni. Pedig nem működik.

A kérdésem a következő: milyen úton lehet rájönni, hogy a PIC tönkrement-e? Amikor még a JDM-el próbálkoztam nem-e kifingattam. Ez csak egy feltevés, mert anno egyszer bemelegedett a kicsike, de nem annyira, hogy kézzel ne lehetett volna megérinteni.

A másik lehetséges hiba oka, a hosszú Kábel. Mivel még csak próbapanelen csináltam, kénytelen voltam egy 90cm-es kábellel megoldani. Így is feszül, de másképpen nem bírtam volna összedugdosni.

Eddig szimpatikus ez a megoldás, valahogy sokkal stabilabb érzetet nyújt mint amikkel eddig próbálkoztam. Mindenesetre várom a segítségeteket, mégha csak annyi is, hogy a kábel a gond.

válaszotokat előre is köszönöm: skeletor
(#) sksporky hozzászólása Dec 18, 2008 /
 
Hy!
Van nékem egy ilyen progim:

#include <16F690.h>
#use delay(clock=4000000)
void main()
{
set_tris_a(0b00011000);
for(;{
if(input(PIN_A4))
output_high(PIN_A0);
else output_low(PIN_A0);
}
}

Ha PORTA,4 pin magason A0 magason ha alacsonyan akkor A0 is alacsony szinten van,illetve azon kellene lennie...de nem műxik!Nemtudom digitális I/O vá tenni PORTA-t,mi lehet a gond?
(#) pinyooooo válasza sksporky hozzászólására (») Dec 19, 2008 /
 
Hali!

Én így csinálnám (bár nem ismerem ezt a fordítót, én az sdcc-t preferálom, de hát a c az c):

void main()
{
set_tris_a(0b00011000);
while(1){
if(input(PIN_A4)){
output_high(PIN_A0);
}else{
output_low(PIN_A0);
}
}
}

pinyó
(#) sksporky válasza pinyooooo hozzászólására (») Dec 19, 2008 /
 
Sajna nem a {} a baj,meg a for is jó,mert PORTC-re teljesen működik,a PORTA valamiért nem megy,rossz a PICE-em??

PRóbáltam már a "NO_ANALOG" definicióval is a nemtom melyik fv.-ben,az "NO_ADC"-t is próbáltam,most gyakorlatilag ADC-re tudom használni a PORTA-t,vagy nem is lehet digitális kimenetként??
(#) googa válasza googa hozzászólására (») Dec 19, 2008 /
 
Pontosítanám a kérdésem. ASM-ben hogyan lehet összehasonlítani két változó értékét, hogy azok egyenlőek-e, vagy sem? Ha egyenlő akkor goto ide, ha meg nem egyenlő akkor goto oda... Van erre valamilyen bevált rutin? Gondolom binárisan, logikai művelettekkel megoldható, csak még nem jöttem rá hogyan. Egyébként 0-tól 11-ig lévő számokat kellene így kezelni. Köszi!
(#) pinyooooo válasza googa hozzászólására (») Dec 19, 2008 /
 
Hali!
Én nem értek az asm-hez, de mi lenne, ha kivonnád egymásból a két számot, és ha az eredmény 0, akkor egyenlőek?
pinyó
(#) pinyooooo válasza sksporky hozzászólására (») Dec 19, 2008 /
 
Hát, azt tudom még elképzelni problémaként, hogy a porta 6 lábából alapbeállításból 2 az icsp-nek van, 2 az oszcillátor(ok)nak, 1 pedig MCLR-nek van beállítva. Ha ezeket átállítod, biztos működni fog.

Ha jól tudom az f690-nek 17 lába használható digit i/o-nak, a fesz és a föld 1-1, tehát csak egy láb van valahol, ami nem használható. Ha ez pont a porta-n van, akkor is 5 láb biztos használható i/o-ra.

Nézd át a pic adatlapját! Érdemes!
PIC16F690 adatlap

pinyó
(#) pinyooooo válasza sksporky hozzászólására (») Dec 19, 2008 /
 
Esetleg ha a configban kikapcsolsz egy-két dolgot, talán..

pl.:

typedef unsigned int config;
config at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _MCLRE_OFF & /*satöbbi*/) ;
(#) googa válasza pinyooooo hozzászólására (») Dec 19, 2008 /
 
Hú, ez jó ötlet! Negatív számokat tud kezelni a PIC? SUBWF után, ha a W netán negatív lenne, akkor az nem okoz gondot? DECFSZ tud valamit kezdeni egy negatív számmal? Ha ez így nem jó, akkor mondja el valaki, hogy mi a jó ötlet!Előző hozzászolásomban a kérdésem. Szép napot, megyek dolgozni.
(#) szilva válasza sksporky hozzászólására (») Dec 19, 2008 /
 
No, hát például ezért sem szeretjük túlságosan a C-ket a PIC-eken, mert a programra ránézve nem lehet tudni, hogy milyen startup-kódot generálnak. Gyanítom, hogy az analóg perifériáknál kellene kutakodni és letiltani pl. a komparátorokat, illetve az ANSEL regiszterekben digitálisra álítani a szükséges lábakat, mert ezt nem teszi meg a gyári indulási kód. Ha jól emlékszem bekapcsolás után a 690-ben az összes analóg láb, és a komparátorok is engedélyezve vannak.
(#) szilva válasza googa hozzászólására (») Dec 19, 2008 /
 
Ha csak egyenlőség ellenőrzésére van szükség, akkor célszerű a XOR-ral dolgozni, és a Z bit szerint ugrani.

Egy másik trükk, ha nem csak egyenlőséget, hanem kisebb-nagyobb viszonyt is kell ellenőrizni, akkor bizony kell a kivonás. Engem már tréfált meg párszor, hogy a PIC SUBLW utasítása "Subtract W from literal", azaz nem a munkaregiszterből von ki egy egészet, hanem a munkaregiszter tartalmát vonja ki a konstansból (ugyanígy a SUBWF is egy kicsit a megszokottal ellentétesen a munkaregiszter tartalmát vonja ki a megadott regiszterből). Konstans esetén ezt úgy lehet megkerülni, és a hagyományos "munkaregiszterből kivonok egy értéket" szemlélet szerint alakítani a dolgokat, hogy ADDLW-t használunk, de a konstans elé teszünk egy negatív előjelet.

Pl.:

SUBLW D'12' ; 12-ből vonja ki a W-t
ADDLW -D'12' ; W-ből von ki 12-t (hozzáad -12 -t)

Ha jól emlékszem, a C bit mindkét esetben "fordítva" működik, azaz akkor áll be, ha a kivonandó nem volt nagyobb a kisebbítendőnél.
Következő: »»   362 / 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