Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   33 / 1319
(#) Csaplar válasza watt hozzászólására (») Máj 17, 2007 /
 
Hali!

A számítási feladatokra visszatérve:

float eredmeny;
int a;
short b;

Rossz megoldás:
eredmeny = (a / b);

Helyes megoldás:
eredmeny = (float)a / (float)b;

Bocsássatok meg, de évek óta használok különböző gyártmányú c fordítokat, de ennyire fapados typecast-tal még egyiknél sem találkoztam!

Persze mikrovezérlőnél ez nem feltétlen tragikus, csak szokatlan volt!

Üdv.:

Zoli
(#) Lucifer hozzászólása Máj 18, 2007 /
 
Sziasztok!

Egy számomra felettébb érdekes problémával állok szemben.
Van egy PIC18F4520-al épített alkalmazás.
A PORTB-re vannak kötve gombok, illetve egy optokapu kb. 50 cm árnyékolatlan szalagkábelen.
Az opto jele alapból földre van húzva egy 10 KOhmos ellenállással. A gombok visznot tápra vannak húzva 4,7 K-val.
A belső felhúzóellenállások szoftveresen kikapcsolva.

Az egész cucc működik, azonban ha fénycsövet kapcsolgatok azonos fázison a táppal
úgy érzi, hogy a porton változás történt. Jelzem mindkét irányba. Ha az Optot szoftveresen kiiktatom, akkor veszi a gombokat. Most loopolós elven ven megoldva a gombkezelés, de megszakítással is ugyanígy megy. Valószínűleg nem szoftverhiba.

A PIC-mellet vannak 100 nanós kondik, plusz a panelon a tápbemenetnél van egy 2200 µF-s polkondi.

Az egészet egy kínai kapcsolóüzemű csodával tápláljuk.
Ez képes leadni 5 Voltot, 12 Voltot, és egy állítható -V -t.
A GND-je össze van kötve a védőföldeléssel.

Az alábbiakat kipróbáltuk, de mindig ugyanarra az eredményre jutottunk:

A) GND-5V megy a panelra.
B) GND-12 V -> kondi -> 78L05 -> kondi -> panel
C) -V - 5 V (kb. -V = -5 Volt tehét a stab IC kap kb. 10 Voltot) -> kondi ->78L05 -> kondi -> panel
D) Találtam itthon egy hatalmas 230-as zajszűrőt Valami 8 Ampert bír . Két tekercs+ellenállat+kondik. Ezt beiktatva sem lett jobb. Igaz ugyanez a kapcsolás megvan a táp belsejében is.
E) Különböző márkás,márkátlan számítógéptápokkal ugyanígy rossz.

Akksiról, "normális" tápról hajtva a hiba nem jelentkezik.

Szóval itt állok kicsit meglőve a dologgal. Tudom egyszerű a megoldás =>trafóró+graetz+stabilizálás.
A bibi csak az, hogy egy párszáz darab már el lett adva a termékből....

Bárkinek bármi ötlete van kérem ossza meg velem.
Válaszaitokat előre is köszönöm!




(#) Prinner válasza Lucifer hozzászólására (») Máj 18, 2007 /
 
Próbáltad a gombokkal párhozamos 100nF-ot?
Vagy szoftverből kellene a tranziens jellegű bemeneti zajokat kiszűrni (néhányszor 10ms-os folyamatos alacsony szint az aktiválás feltétele).
Vagy nagyobb értékű felhúzóellenállás kellene (~1k), igaz ekkor többet fogyasztana, de hát tápról, hajtod és nem telepről, tehát nem számotvető.
(#) watt válasza Lucifer hozzászólására (») Máj 18, 2007 /
 
Prinner jól mondja, kivéve, hogy az 1k nem nagyobb, hanem kisebb ellenállás, de ez csak elírás volt, gondolom. Kellenek a 100n-k is szűrésnek.

Viszont az optókat fordítva kéne bekötni, azaz felhúzó ellenállás kéne, és az optó tranyójának emiterét testre tenni. A felhúzó ellenállás itt is legyen a lehető legkissebb(1k-tól), és kellenek a szűrő kondik is!
Az a jelenlegi 10k testre olyan, mint ha ott sem lenne! Soha nem szabad ilyen módon "rögzíteni" egy szintet. Lehetőség szerint a +táp felé kell előfeszíteni a bemeneteket. A fordított fázis helyzet PIC-nél nem okozhat gondot, ha mi írjuk a programot.
(#) HubaBuba hozzászólása Máj 19, 2007 /
 
Hy

VAlaki tudna nekem ajánlani egy egyszeru égetőt amivel 16F84-et tudok egetni?

Előre is kosz
(#) Prinner válasza HubaBuba hozzászólására (») Máj 19, 2007 /
 
(#) HubaBuba hozzászólása Máj 19, 2007 /
 
Kosz a gyors választ
(#) M63-002 hozzászólása Máj 19, 2007 /
 
Üdvözletem.
Vicsys elektronikus dobókockáját szeretném utánépíteni, de Győrben nem találtam megfelelőt. (vagyis pontosan azt, amit én eresek.) Kérdés: Lehet-e másfajta PIC-cel helyettesíteni azt a bizonyos PIC12F629-est? (konkrétan az elektromos dobókockához)
Válaszotokat előre is köszi!
(#) Lucifer válasza M63-002 hozzászólására (») Máj 19, 2007 /
 
A 12F675 hasonló, csak annak vannak AD bemenetei.
(#) Lucifer válasza watt hozzászólására (») Máj 19, 2007 /
 
Prinner, watt köszi a válaszokat!

Kicseréltem az ellenálláshálókat 1 Kilóohmosra, átvariáltam az optot, mostmár minden a tápra kapcsol. Az eredmény ugyanaz.
Most az a terv, hogy a feloptózott érmevizsgálónak használom a mechanikus részét is.
(#) M63-002 válasza Lucifer hozzászólására (») Máj 19, 2007 /
 
Nekem csak az a bajom ezzel az egésszel, hogy Győrben a Somogyiban árulnak PIC-eket, de a gép nem is ismerte ennek a PIC-nek a számát.
Az Impulzusba meg nem érkezett meg a készlet. És nekem meg sürgősen kéne, mert nekem égetőm nincs, és a suliban tudnám megcsinálni. De amíg PIC nincs, program sincs... Egyébként életem első PIC-es áramköre lenne... :yes:
(#) Prinner válasza M63-002 hozzászólására (») Máj 19, 2007 /
 
Te is győri vagy!!
Ezek szerint nem ismered a Si-ker Bt.-t....

Damjanich út 42. (átmész a révfalusi hídon, a tulipános iskola után bemész jobbra, és végig az első kereszteződésig. Egy ház alatt van a jobb oldalon)

Ha hétfő délelőtt rendelsz, kedd délután tuti kihozzák neked
Az eladó egyébként a RET-től rendel, és ha van náluk, akkor biztos kihozzák. Egyébként más nagykerből is lehet rendelni (ChipCad, Sos electronic, stb...), csak akkor többet kell rá várni (megvárja amíg össze gyűlik a mennyiség, amit érdemes kihozatni).

Ja és lehet telefonon is rendelni tőle, ha érdekel, elküldöm a számát privátban. Állítólag honlapjuk is van, érdemes rákeresni.

Igazából én a Somogyiba, Impulzusba, már régen voltam, mert itt szinte minden alkatrészt megkapok.
(#) M63-002 válasza Prinner hozzászólására (») Máj 19, 2007 /
 
Köszi!
Megnézem szerintem hétfőn délután! Akkor már lehet, hogy jobban körülnézek ott!
Tényleg nem tudtam erről az árusítóhelyről, köszönöm a tippet!
(#) watt válasza Lucifer hozzászólására (») Máj 19, 2007 /
 
Kondikkal is szűröd?
(#) Lucifer válasza watt hozzászólására (») Máj 19, 2007 /
 
Szia!

Kondi lóg lassan mindenhonnan.

Igen a gombokra tettem, ahogy mondtad, de semmi változás.
A neon kapcsolgatása olyat lök a hálózaton, ami valszeg megbolondítja a kapcsolóüzemű tápot. Az meg kicsit bekavar a PIC-nek. Az a baj szkópom nincsen, így fogalmam nincs, milyen jellegű a zavarjel, meg egyáltalán mi is történik a porton. Ja és kipróbáltam, kiiktattam a gombokat, optot szoftveresen, akkor pedig a PORTA-n lógó demultiplexer jeleit veszi. Szóval elég érdekes a dolog. Megpróbálok keríteni egy szkópot, és majd meglátom mit tapasztalok.

Jó éjt mindenkinek!
(#) watt válasza Lucifer hozzászólására (») Máj 20, 2007 /
 
Próbáld meg 3db ceruzaelemről táplálni. Lehet, hogy a hosszú vezetékek szedik össze a zavart, nem a táp!
(#) potyo válasza Csaplar hozzászólására (») Máj 20, 2007 /
 
Idézet:
„Bocsássatok meg, de évek óta használok különböző gyártmányú c fordítokat, de ennyire fapados typecast-tal még egyiknél sem találkoztam!”


Pedig én úgy tanultam, hogy ez az alapváltozat.
(#) Bazsi hozzászólása Máj 20, 2007 /
 
Bocs, hogy ilyen hülyeségekkel zargatlak, de hogy kell pl 4 számot összehasonlítani mert van az a "XOR" utasítás, de ezt pontosan hogyan is kell használni?
(#) watt válasza Bazsi hozzászólására (») Máj 20, 2007 /
 
MOVLW SZÁM1 ; ide egy állandót kell írni.
XORWF REG1,W ;amit egy regiszter tartalmával hasonlítunk össze
BTFSS STATUS,Z ; Ha a két szám egyforma, akkor Z=1(zero)
GOTO NEM_EGYFORMA ; ide jön ha nem egyforma
;ide jön ha egyforma
4 számot egymás után kell összehasonlítgatni.
(#) Tetye hozzászólása Máj 21, 2007 /
 
hali valaki tudna segiteni hogy ezt a tda ic-t hogyan lehetne vezérelni?

tda7318.pdf
    
(#) Lucifer válasza watt hozzászólására (») Máj 22, 2007 /
 
Szia watt!

Kipróbáltam, igazad van.
Ha az összes bemenetről lehúzok mindent akkor működik.
Nem vesz semmit. Ha rádugom a fóliahálót, ami 50 cm-re van a 230-as vezetékektől, egyből veszi a dobásokat. A fóliaháló, egy az egyben a panelra csatlakozik. Használjak árnyékolt 230-as kábelt? Vagy van valami más megoldás az ilyen indukciós zavarok kiszűrésére? Vagy egyáltalán indukciós jellegű lenne a zavar?
(#) Lucifer válasza Tetye hozzászólására (») Máj 22, 2007 /
 
Szia!

Ha jól látom I2C buszos.
Vagy olyan PIC-et használsz amiben van beépített hardveres I2C busz, vagy szoftvereen oldod meg a kommunikációt. Ehhez itt találsz dokumentációt.
(#) Tetye válasza Lucifer hozzászólására (») Máj 22, 2007 /
 
hű ez zsir j doksi ez bizti sokat segit majd.. csak még azt nem tom hogy hogy lessz a picben progi..:S abban tudsz segiteni mert mindenki mondta hogy szivesen segit de most nem érr rá hetekig:S
(#) watt válasza Lucifer hozzászólására (») Máj 22, 2007 /
 
Programból nem tudsz kis időzítést betenni és figyelni, hogy a jel mindvégig megvan-e? Lehet, hogy nagyon kis impulzust elfogadsz lenyomásnak.
(#) Lucifer válasza watt hozzászólására (») Máj 23, 2007 /
 
Szia!
Az a baj, hogy nemcsak a gomboknál van ez a probléma. Csak a loopolásnak köszönhetően az mindig a legelső tesztelésbe ugrik be. És ez az érmevizsgáló figyelője. Lekötöm az érmevizsgálót, akkor veszi a gombokat. Kikötöm a gombokat, veszi a táblamátrix jeleit. Mindegy, kimérem mennyi ideig zárja az érmevizsgáló optóját a pénz, megfelezem, és annyi időre teszek egy időzítést. Ne kapcsolgassák a neont benne, amíg megy.
(#) Lucifer válasza Tetye hozzászólására (») Máj 23, 2007 /
 
Megírod a programot PC-n, lefordítod, és egy programozó segítségével "beégeted" a PIC programmemóriájába.
Programozóknak az alábbiakat ajánlanám:
http://www.oshonsoft.com/picprog.html
http://wattmep.tvn.hu/pic_prog/PIC_pro_net_v03.html
(#) Blint hozzászólása Máj 23, 2007 /
 
Sziasztok!

PIC16F84-gyel próbálkozom, és lenne egy kérdésem:

Ha vmit beteszek a W regiszterbe, akkor onnan a MOVWF utasítás kimásolja vagy kiírja az éppen aktuális értéket.
Tehát csinálhatok-e ilyet:

MOVLW D'0'
MOVWF A
MOVWF B

?

köszi, Blint
(#) Prinner válasza Blint hozzászólására (») Máj 23, 2007 /
 
Igen, ahogy mondod. Vagy pontosabban fogalmazva a movwf utasítás a W értékét másolja "A" vagy "B" elnevezésű írható regiszterekbe.

A w regiszter elsősorban adatmozgatásra szolgál, a 16-os PIC-eknél nincs is más lehetőség két regiszter közötti adatmásolásra. :nemtudom:
(#) watt válasza Blint hozzászólására (») Máj 24, 2007 /
 
Igen, mindig a W értékét másolja egy regiszterbe(F).
Érdekesség, hogy a Move amiből a programszó lett, nem tökéletes értelmezés, mert nem mozgatja, azaz W-ből kiveszi, és ott nem hagy benne "semmit", hanem másolja, azaz a W értéke nem változik meg. Talán a COPWF lett volna találóbb!

Természetesen D'0'-át (.0, .255 formában is lehet írni az is decimális értéket jelent a fordítónak, én jobban kedvelem...) nem érdemes így betölteni, mert a CLRF A szintén 0-át tesz az "A" című RAM rekeszbe. Itt is érdemes elmélázni, hogy az "A" tényleg egy cím! Próbáld ki, hogy betöltöd a W-be: MOVLW A
Ekkor a W-ben az A regiszter címe lesz! Az "A" nem más, mint egy konstans, ami egy regiszter címét mutatja. Másképpen értelmezve pedig egy mutató, ami egy RAM rekeszben lévő adatra mutat.

Remélem nem untattam senkit!
(#) watt hozzászólása Máj 24, 2007 /
 
Beindult az agyam a RAM rekesz témában.
Tovább gondolva az imént írtakat, nézzük meg, hogy hogyan is deklarálunk RAM változókat (névvel ellátott RAM rekeszeket) normál ajánlott módon!

CBLOCK 0x20

NÉV ; tehát a NÉV a 0x20 hexadecimális "sorszámú" memóriarekesz értékét veszi fel.
NÉV2 ; fentiek alapján a NÉV2 pedig a 0x21 "sorszámú" rekeszre fog mutatni

ENDC

Ha NÉV = 0x20, akkor a következő példa, ugyanazt a RAM adatot fogja mozgatni:
MOVF 0x20,W ; W-be töltöttük a 0x20 RAM rekesz, azaz a NÉV tartalmát.

Ebből is érthető, hogy a:
MOVLW NÉV
W = 0x20 lesz.

Ha ez igaz, akkor így is meg lehet oldani a RAM változók deklarálását:
#DEFINE NÉV 0x20
vagy:
CONSTANT NÉV2 = 0X21
vagy:
NÉV EQU 0x20

Minek is a CBLOCK? Talán annyi előnye van, hogy nem kell minden változónak külön megadni a címét, bár én megjegyzésben meg szoktam ezt tenni, így akár másképp is lehetne, kicsit áttekinthetőbbé tenné a változóink címének követését(hibakeresés).
A másik előnye, hogy egy később beszúrt változónév automatikusan letolja a többi változó címét, nincs ütközés. Viszont nem lehet két névvel ugyanarra a regiszterre hivatkozni. De talán minek is?

Tiszta, hogy én is a CBLOCK-ot használom, de ezután lehet, hogy megnézem milyen RAM fílingje van a #DEFINE- nek


Következő: »»   33 / 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