Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   880 / 1319
(#) menyus válasza icserny hozzászólására (») Jan 7, 2011 /
 
Köszönöm, megpróbálom bekapcsolni mert nincs beállítva....és próba. talán hét végén kiderül javít e a helyzeten 2 - 3 nap alatt elő szokott jönni a probléma.

Köszi a segítséget
(#) hmli válasza watt hozzászólására (») Jan 7, 2011 /
 
Bocs, ezt nem tettem hozzá, ha van elég lába a PIC-nek, akkor lehet nélkülözni, a PGD-PGC -t.
Csak az otthoni gépemen próbáltam a WPB-t futtatni, az OCX-ek alkönyvtárban voltak (ahogy a zip-ben található), így hiányolta a program. Miután regisztráltam, jó lett. De ki fogom próbálni.

Én tudok időt szakítani erre, ha csak fél órát is az is haladás. Meg ugye ne felejtsük el, hogy kis pénz, kis foci.
(#) Attila86 válasza Hp41C hozzászólására (») Jan 7, 2011 /
 
Szia!
  1. #define MCP4922_SDI             LATC,5
  2. #define MCP4922_SCK             LATC,3
  3. #define MCP4922_CS              LATC,1
(#) Attila86 válasza icserny hozzászólására (») Jan 7, 2011 /
 
Sajnos így sem jó.

Ekkora kódot legközelebb légy szíves file-ként csatolni, korrigáltam.
-- kobold
(#) Attila86 válasza Hp41C hozzászólására (») Jan 7, 2011 /
 
Egyelőre működjön így, aztán majd egyszerűsítem/bonyolítom... ez egyenlőre még csak egy próba volt hogy tudom-e vezérelni a D/A-t.
(#) alap válasza hmli hozzászólására (») Jan 8, 2011 /
 
Hali
Szeretnék érdeklődni hogy azt a nyák tervet megkaphatnám?
Nem jó helyre írok és azért kapok piros kézjeleket?
üdv Feri
(#) hmli válasza alap hozzászólására (») Jan 8, 2011 /
 
Csatoltam eagle fájlként is és pdf-ben is. Van benne egy kis hanyagság, nevezetesen a egyik tápszűrő kondit félretettem, mert úgy ítéltem meg, hogy jelen kialakításban nincs rá szükség.
(#) watt válasza alap hozzászólására (») Jan 8, 2011 1 /
 
Ha ezt építed meg, akkor az R3 helyére tegyél 47K-t! A 10 is jó, de ha az áramkörben is van egy, akkor az sok lehet egyes regulátoroknak viszáramban.
Hmli, neked is javaslom a cserét!
(#) alap hozzászólása Jan 8, 2011 /
 
Hali
Tudna valaki olyanba segíteni hogy mi a különbség a 24c02Wb, és 24c02 6 (eeprom) igaz ez nem PIC hanem a mosogép vezérlő panelja.
üdv
(#) fejesg hozzászólása Jan 8, 2011 /
 
Szia Mindenki!

Kérlek tájékoztassatok attól, okozhat-e zavart vagy károsodást egy PIC16F1936 mikiben egy hozzá igen közel lévő E54 vasmagos trafó? Hőszivattyú vezérlést építek, 3 db 10x8 cm-es panellel. Egyik a táp, másik a PIC modul, harmadik a relémodul. Rakhatom őket egymás fölé, mint 1 kocka, vagy szereljem teljesen külön a tápot?

fg
(#) vicsys válasza fejesg hozzászólására (») Jan 8, 2011 /
 
Szerintem nem fogja zavarni, de 100%-ra nem mondhatom, mert nem ismerem a kapcsolást és a programot...
(#) fejesg válasza vicsys hozzászólására (») Jan 8, 2011 /
 
Köszi a gyors választ Vicsys, megnyugtattál. fg
(#) davidovics hozzászólása Jan 8, 2011 1 /
 
Sziasztok,én még csak most kezdek picezni és egy JDM programozót használok icproggal és beleakartam égetni az elektronikus dobókocka hex fájlját csak az a gond,hogy amikor megnézem akkor átrak egy üres lapra(a böngésző) és ott ír ki számokat meg betűket és nem tudom,hogy onnan én,hogy csinálok abból hex fájlt,tehát ebben szeretném a segítségeteket kérni.
(#) watt válasza davidovics hozzászólására (») Jan 8, 2011 1 /
 
Jobb gomb, letöltés másként... Ez számítástechnikai kérdés...
(#) davidovics válasza watt hozzászólására (») Jan 8, 2011 1 /
 
Csak az a baj,hogy ha jobb gombbal rámegyek akkor nekem nincs olyan
(#) El_Pinyo válasza davidovics hozzászólására (») Jan 8, 2011 /
 
Jelöld ki a karaktereket, majd ctrl+C, jegyzettömbbe ctrl+V majd mentés másként és megadod, hogy .hex kiterjesztéssel mentse el.
(#) nemgyuri hozzászólása Jan 8, 2011 /
 
Sziasztok!
I2C-s kérdésem van. 2 PIC közötti kapcsolatban a slave megszakítással normálisan működik, de nekem a megszakítás másra kell. (megszakításból 1 forgójeladó jeleit dolgozom fel) A megszakítás rutinból ki kellene vennem a busz kezelését, mert így adatvesztés van (lehet), "nagyobb" sebességnél. Próbáltam az "órajel nyújtást" (CKP-bit), de nekem nem jött be. Lehet, hogy nem jó helyre tettem vagy valamit nem jól értelmeztem. PIC16F690-röl van szó. Tudtok segíteni?
Előre is köszi: NGy
(#) Sanyi806 hozzászólása Jan 9, 2011 /
 
Sziasztok!
Lenne két rövid kérdésem PIC CCS-el kapcsolatban. Lehet új adattípust létrehozni, mint pl. Delphi-ben? int4 ami 0..14-ig lehet használni? Olyat szeretnék csinálni, hogy kevés a PIC memóriája (mikor nem?!) és van sok-sok-sok globális változó, de Int8 -ra lehet csak deklarálni, de 0 és 7 között változnak, és megosztanék két változó között egy Int8 -ast, mert az MSB-n és az LSB-n is 0..14 -ig fér el adat, tudom, kicsit lassabb lesz, de nem baj.
A másik problémám szorosan kötődik az elsőhöz, de nem feltétlenül ahhoz kellene. Egy int8 -as adat LSB bit-jeit hogyan tudom kiolvasni(?), mert az MSB megy:
Int8 Adat; Adat= 0b11110010; Int8 MSB = ((Adat >> 4) & 0xFF); MSB = 0b1111;
Nem szívesen tesztelném végig a biteket, és valami pár órajel alatt lefutó függvényt szeretnék, jó pár variációt kipróbáltam, de nem jók, mert mögéteszi a nullákat: LSB = ((Adat << 4) & 0xff);, a többi bitet meg nem piszkálhatom, és a neten én nem találtam megoldást. (Tudom Google, de ott se)
Előre is köszönöm szépen a segítségeteket!
(#) vilmosd válasza Sanyi806 hozzászólására (») Jan 9, 2011 /
 
A "structura " varazsszo segithet. Lehet strukturat csinalni barmilyen tipusu valtozobol. Egy pelda a CCS helpbol:
  1. struct data_record {
  2.  
  3.  
  4.          int b : 2; /*2 bits */
  5.  
  6.          int c : 3; /*3  bits*/
  7.  
  8.          intd;
  9.  
  10.        }data_var;

Erre igy hivatkozhatsz:
  1. data_var.b=2;
  2. val=data_var.c;

Lehet meg uniont is hasznalni, ami hasonlo a structurara, de ott azonos szohosszra lehet hivatkozni egeszkent, es reszenkent. Nezz szet a CCS topikban, es a konyvek kozott.
(#) p_istvan válasza vilmosd hozzászólására (») Jan 9, 2011 /
 
Az union egész más, csak szintataktikájában hasonló!
- A struktura önálló változók halmaza egy tárolási egységbe foglalva.

- Az union pedig ugyanarra a memóracímre deklarál különböző változókat amelyeknek a típusa és hossza is eltérő lehet. Akár struktura és tömb is lehet eleme az unionnak. Mivel egy fizikai memóriacímen egyszerre csak egy érték lehet, ezért az union egy elemének értéket adva, a többi eleme is felveszi ugyanazt az értéket!

Lehet Neked ez nem új, de félreérthetően írtál...
(#) Ideiglenes válasza nemgyuri hozzászólására (») Jan 9, 2011 /
 
Ami megoldás nekem ezzel kapcsolatosan eszembe jut, hogy:
- a megszakítási rutint a lehető legrövidebbre kell készíteni, csak a legszükségesebbek legyenek ott és esetleg egy jelzés a főhuroknak, hogy az adott megszakítás ki lett szolgálva és az egyéb teendőket már ott lehet elvégezni vagy
- a jeladó kiszolgálása után gondolom, hogy van némi idő másra, és a slave rutint csak arra az időtartamra engedélyezd
- esetleg felhagyni a slave megszakításos kezelésével és pollingozással elintézni a dolgot
Más ötletem egyelőre nincs, az i2c-vel én csak mostanában kezdtem barátkozni.
(#) Sanyi806 válasza vilmosd hozzászólására (») Jan 9, 2011 /
 
Sziasztok!

Köszönöm a válaszokat! Igazából akkor nem jártam túl messze az igazságtól, mert én egy ilyet csináltam:
Struct Data_Record {
Int8 Data_Arr[3] : 4 ;
Int1 TD;
Int8 Data_A : 4 ;
Byte DData[2] : 2 ;
}Data_Var;
és akkor annyi teendőm van, hogy korlátozom a változók hosszát, amit kékkel jelöltem fentebb; és így 3db 4bites Data_Arr -m és 1db 4bites Data_A -m és 2db 2bites DData -m lett?-jól gondolom? Ez sima változóknál is működik? -vagy csak struktúrán belül? pl: int8 Adat : 4; -mint 4bites változó.
Köszönöm a könyveket!
Ha az union ugyanoda teszi a változókat, és csak egy értéket kaphat egyszerre akkor mi értelme? Ja, megvan, több különböző változót definiálok, de egyszerre mindig csak egyet használok, akkor union-t érdemes használni. Remélem jó a gondolatmenetem? -és elvileg mindig a legnagyobb értéknek megfelelő fizikai memóriát foglalja le.
De még továbbra is kérdés az, hogyan lehet egy int8 változó alsó 4bájtját kiolvasni rövid(ebb) idő alatt másik xdb változó és speciális függvények deklarálása nélkül?
Mégegyszer nagyon köszönöm az eddigi segítségeket!
Sanya
(#) dinokal válasza fejesg hozzászólására (») Jan 9, 2011 /
 
Szia! Károsodást semmiképpen nem okoz, viszont ha nem akarsz magadnak mindenféle megfoghatatlan programhibát, akkor a trafót árnyékolással válaszd el a többi áramkörtől. Igen nagy szórt mágneses teret indukál.
Lehet hogy jól megtervezett szűrésekkel nem lesz gond, de erre azért nem tenném le a nagyesküt. Nem ismerem a kapcsolást, ezért nem tudok konkrét megoldást írni. Ha van benne analóg rész, akkor mindenképpen kihat rá. Olvastam olyanról hogy az LCD vezérlése is visszahatott a pices áramkörre, pedig ott nemigen van szórt mágneses tér. Nyugodtan összerakhatod egymás fölé az áramköröket, de a táp és a többi közé tegyél árnyékolást!
(#) alap hozzászólása Jan 9, 2011 /
 
Hali
Létezik e olyan hogy PIC lelehet védeni mint jelszó hogy más ne férjen a programhoz ?
(#) vicsys válasza alap hozzászólására (») Jan 9, 2011 /
 
Igen. Pl. kiolvasás ellen.
(#) El_Pinyo válasza Sanyi806 hozzászólására (») Jan 9, 2011 /
 
Idézet:
„hogyan lehet egy int8 változó alsó 4bájtját kiolvasni”

Gondolom itt alsó 4 bitre gondolsz. Ezt leghatékonyabban bitmaszkkal lehet elérni és bitenkénti ÉS művelettel:
  1. LSBs = var_int8 & 0x0F;

Ahol LSBs az int8 méretű alsó biteket tartalmazó változó, var_int8 az eredeti változó, & bitenkénti ÉS operátor.
(#) p_istvan válasza Sanyi806 hozzászólására (») Jan 9, 2011 /
 
Sokmindenre...
  1. union{
  2.           int32 szam;
  3.           struct{char bajt0;
  4.                     char bajt1;
  5.                     char bajt2;
  6.                     char bajt3;
  7.           } s;
  8. } u;

Így pl. bájtonként hozzá lehet férni egy 32 bites számhoz.
Vagy ha egy stringbe akarok különböző változót elhelyezni:
  1. union{                                            
  2.    struct{  
  3.              int16  l0;                        
  4.              int16  cl0;                        
  5.              int16  fesr0;                        
  6.              int16  u0;                        
  7.              int16  Rc;                        
  8.              int32  c_34n;                        
  9.              int16  ccal;                        
  10.    } s;                                            // eepromból töltjük fel.
  11.    int8 eeprom[16];
  12. } u;

Arra figyelni kell, hogy fizikailag fordított a bájtok elhelyezési sorrendje mint ahogy általában ábrázoljuk
(#) nemgyuri válasza Ideiglenes hozzászólására (») Jan 9, 2011 /
 
Pollingozással próbáltam, de akkor hibára futott, vagy az ACK-ba ragadt bele. Jelenleg a jeladó kiszolgálás után még megnézem, hogy a buszt is ki kell-e szolgálni? Mellékletben a megszakítás rutinom.
(#) Sanyi806 válasza p_istvan hozzászólására (») Jan 9, 2011 /
 
Sziasztok!

Köszönöm a válaszokat!
union: ez teljesen jó találmány
El_Pinyo: mért akartam én mindenáron shift-elni?! -mikor van and,or,xor,stb.
Felére csökkent a foglalt memória egy union és a struktúrában lekorlátozott változó hosszal!
Durva!
Ezer hála és köszönet minden segítőnek!
Sanya
(#) vilmosd válasza Sanyi806 hozzászólására (») Jan 9, 2011 /
 
Hali
A "PIC Programming with C" cimu konyv 8. fejezeteben talalsz jo magyarazatot a strukturak es unionok hasznalatarol.
Következő: »»   880 / 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