Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   504 / 1224
(#) kissi válasza bbalazs_ hozzászólására (») Márc 27, 2014 /
 
Idézet:
„A program elejen ritkan adnak meg lokalis valtozot, eppen azert lokalis.”

Én nem láttam, hogy hol adta meg, Te igen ?!
Idézet:
„De ne ugy adja meg, hogy a=0, hanem mov a,0 vagy clrf a”
Hol láttad, hogy asm-ről van szó ?!


Ezért írtam Bővebben: Link, de most már megvárnám, míg nyilatkozik !
A hozzászólás módosítva: Márc 27, 2014
(#) bbalazs_ válasza kissi hozzászólására (») Márc 27, 2014 /
 
Az o hozzaszolasara tamaszkodtam.
"Ha a program elején létrehozok két változót..."
(#) n_yálastrubadúr hozzászólása Márc 27, 2014 /
 
Sziasztok.
Köszönöm mindenkinek aki segített, jó lett. Már csak azt nemtudom miért nem engedi úgy feltölteni a tábláztot hogy:
  1. unsigned char LevelBlue[51] = {_P,_R,_O,_P,_E,_L,_L,_E,_R};

Pedig előtte fent ezek definiálva vannak, a hozzájuk tartozó számokkal.
Idézet:
„Error [316] D:\Pic\variable.h; 176.34 "}" expected
Error [241] D:\Pic\variable.h; 176.34 initialization syntax
Error [285] D:\Pic\variable.h; 176.35 no identifier in declaration
Warning [374] D:\Pic\variable.h; 176.35 missing basic type; int assumed
Error [285] D:\Pic\variable.h; 176.36 no identifier in declaration
Error [314] D:\Pic\variable.h; 176.36 ";" expected


Ez ismétlődik karakterenként.
(#) kissi válasza bbalazs_ hozzászólására (») Márc 27, 2014 /
 
Ezt láttam én is belőle, de a többit nem és ez a "PIC kezdőknek" rovat !
(#) bbalazs_ válasza kissi hozzászólására (») Márc 27, 2014 /
 
Ezert kell helyette kitalalnunk, hogy mit is akarhatott.
Majd jon es referal
(#) NyariG hozzászólása Márc 27, 2014 /
 
Hali,
Valaki eltudnán magyarázni hogy mért van többféle sebességü kvarc.Ezenkivül milyen szempontok alapján és hogyan kell kiválasztani egy áramkörhöz a megfelelö sebeségüt?
(#) kissi válasza NyariG hozzászólására (») Márc 27, 2014 /
 
A kontrollerek műveletvégrehajtó sebessége az alkalmazott órajeltől függ. Ha valamire gyorsan kell reagálnia vagy sok számítást kell végeznie rövid idő alatt, akkor nagy sebesség kell, ha ennek az ellenkezője, akkor kis sebesség is megfelelő. Ezek szerint a nagy sebesség mindig jó lenne, ez azért nem igaz, mert a nagy sebesség több energiát igényel ( nagyobb lesz az áramfelvétel, hamarabb lemerül az akkumulátor!), illetve a késleltetésekhez ( ahol túl gyors a processzor és mesterségesen lassítanunk kell!) több felesleges utasítás kell ( ezalatt szintén fogyaszt az áramkör! ). Van olyan feladat is, amikor valamilyen idő pontos kimérése a feladat, ami egy bizonyos frekvencia leosztott értékének felel meg, akkor így keresünk kvarcot! Tehát a feladattól függően választunk kvarcot alapvetően ( de ha nincs extra követelmény, akkor "amilyen van" a PIC működési tartományán belül! ).
Remélem érthető ez a "zanzásított" verzió.
A hozzászólás módosítva: Márc 27, 2014
(#) NyariG válasza kissi hozzászólására (») Márc 27, 2014 /
 
Teljesen jó, minden világos köszi.
(#) dkarcsi73 válasza kissi hozzászólására (») Márc 27, 2014 /
 
Basicben van írva a program ami elég terjedelmes és minden része működik csak ezzel van gondom.
A var byte
B var byte
A=0
B=0
ezek után ha soros portra kiküldöm az értékeket akkor 255-öt ír.
ha beírom hogy A=A+1, akkor lesz az eredmény nulla. Ha a program más részén kinullázom és utána növelem egyel az értéket akkor az eredmény 1. Tehát csak induláskor van vele gond.
A hozzászólás módosítva: Márc 27, 2014
(#) bbalazs_ válasza dkarcsi73 hozzászólására (») Márc 27, 2014 1 /
 
Es ha csinalsz egy olyat, hogy beirod:
A var byte
B var byte
C var byte
C=C+1
A=0
B=0
aztan a sorosra ki
??

Szoval keresd meg azt a pontot, ahonnan mar 0 az erteke, ha azt irod neki.

Bar egy PIC-et basic-ben programozni....megmosolygom. Mintha a Porschevel tragyat hordanek a mezore. Bar vegulis meg lehet csinalni....
A hozzászólás módosítva: Márc 27, 2014
(#) dkarcsi73 válasza bbalazs_ hozzászólására (») Márc 27, 2014 /
 
A C-vel végzett műveletnek mi köze lehet a másik két változó értékadásához?
Tudok ASM-ben beszúrni programsort ha az megoldaná és akkor defektes Porséval hordanám a trágyát)))
(#) eSDi válasza bbalazs_ hozzászólására (») Márc 27, 2014 / 1
 
Idézet:
„Bar egy PIC-et basic-ben programozni....megmosolygom. Mintha a Porschevel tragyat hordanek a mezore. Bar vegulis meg lehet csinalni....


Semmivel sem rosszabb mint C-ben! Van aki Pascal-ban, van aki FlowCode-ban programoz. Persze mindegyikhez valamennyire ismerni kell az Assembly-t is. Szerintem te is ismered a mondást: "Kinek a pap, ..."

Szerény véleményem szerint, nagyobb, bonyolultabb programot hatékonyabb valamely magasabb programozási nyelven megírni.
(#) dkarcsi73 hozzászólása Márc 27, 2014 /
 
Sokmindent megoldottam vele. Ami esetleg hibásan működött a forditó hibája miatt azt fórum segítséggel mindig sikerült megoldanom. Többnyire egy-egy regisztert kellet közvetlenül babrálni mert a PICBASIC nem jól állította. Lehet hogy most is valami ilyesmiről lesz szó. Próbálok ismerkedni az ASM-el és néhány progiba már szurkálok be sorokat de sok nehézségtől megkímél a fordító! (most valami megint nem oké)
(#) kissi válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
A soros portos kezelésnek nem lehet problémája ( nem ismerem a Basic-et, de ez is van többféle, pl. PicBasic ) ?!
(#) dkarcsi73 válasza kissi hozzászólására (») Márc 27, 2014 /
 
Ez PICBASIC PRO. A soros port tökéletesen működik oda-vissza.
A kezdeti értekadás nem akarja amit én. Próbáljam meg ASM-ben beszúrni az értékeket?
A hozzászólás módosítva: Márc 27, 2014
(#) kissi válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
Szerintem igen. ( ha gondolod és átküldöd nekem a programot lebutítva, hogy csak a két változó értékadása legyen benne, akkor megpróbálhatom megnézni, hogy mit csinál, de minél egyszerűbb legyen, mert különben nehezen találom meg a sorok között / jó lenne, ha megadnád a változó címét is, úgy láttam meg lehet adni!/ ! ).

Szimulátorral nem tudod megnézni ?!
A hozzászólás módosítva: Márc 27, 2014
(#) dkarcsi73 válasza kissi hozzászólására (») Márc 27, 2014 /
 
Megpróbálom a szimulátort is de előbb ki kell herélnem a progit.
ASM benilyesmi kell írni?:
movlw 0
movwf a
(#) kissi válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
Igen, ez alapból jó, csak nem tudom, hogy eszi a BASIC ( C18 alatt még kell kiegészítés ! ) !
(#) dkarcsi73 válasza kissi hozzászólására (») Márc 27, 2014 /
 
Egyszerűen be kell állítani hogy ASM sorok következnek és aztán hogy endasm.
Elvileg!!
Puding próbája...
Majd nyilatkozom.
(#) dkarcsi73 válasza (Felhasználó 15355) hozzászólására (») Márc 27, 2014 /
 
Hasonló itt is:
kutya VAR byte
teknoc VAR word
(#) nedudgi válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
Milyen kontrollerről van szó?
(#) dkarcsi73 válasza nedudgi hozzászólására (») Márc 27, 2014 /
 
16f648A
(#) nedudgi válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
Nem értek ahhoz a programnyelvhez, amit használsz, de elképzelhető, hogy a változó deklarálásánál kellene körülnézni. Nézd meg, hányféleképpen lehet definiálni egy változót.
Lehet, hogy szubrutinban újra lefoglalja a változót?
A PIC648A RAM memóriája bankokra van felosztva, ezt nem tudom, hogy kezeli a fordító.
A hozzászólás módosítva: Márc 27, 2014
(#) mrobi válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
Idézet:
„Basicben van írva a program ami elég terjedelmes”

Mivel azt írtad, hogy terjedelmes a program, nem lehet, hogy a program még máshol is használja ezeket az változókat?
A hozzászólás módosítva: Márc 27, 2014
(#) dkarcsi73 válasza nedudgi hozzászólására (») Márc 27, 2014 /
 
A program más részein is van nullázva és ott rendesen működik, csak a legelején nem!
A hozzászólás módosítva: Márc 27, 2014
(#) bbalazs_ válasza dkarcsi73 hozzászólására (») Márc 27, 2014 /
 
Az, hogy egy rosszul megirt forditonal esetleg kiugorhat a szog a zsakbol, mert ott mar jon a program, nem csak valtozo-deklaracio tortenik.
Nincs benne valami megszakitas?
Esetleg ha megnezel egy mar mukodo programot....vagy template-et a netrol.
Vagy lehet, hogy jelezned kell a forditonak, hogy hol kezdodik a program.
Vagy siman tegyel bele breakpointokat, ahol egyszeruen osszehasonlitod A-t 0-val es ha annyi, akkor kigyujt egy LED.

Bar sokszor volt mar errol vita, de szerintem a kisebb 8 bites kontrollereket asm kivetelevel nemigen erdemes masban programozni, mert nem arra valok. Ezek valos ideju eszkoznek keszultek, hogy tulajdonkeppen "le tudd szamolni" az orajeleket. Barmilyen forditoval ez elveszik. Az persze mas kerdes, hogy mondjuk egy 32bites PICet mar nem erdemes asm-ben nyosztetni, mert sok regiszter es rengeteg memoria van benne.
Csak akkor is, meg kell biznod a forditoban....
(#) SzT3 hozzászólása Márc 28, 2014 /
 
Sziasztok!

Mivel a kereső elment szabadságra ezért ide irok...
Olyan topikot keresnék ahol PIC-es kapcsolások vannak távirányitóhoz... Esetleg programokde az s baj ha itt tudtok javasolni valamit...
A kinaiak most mindenhez azt a kis lapos távítót adják... Kismonitorhoz , autorádiohoz stb stb...
Azzal szeretnék PIC kimeneteket vezérelni... Ès amit még össze tudok (tudunk) hozni!
Köszönöm!
(#) dkarcsi73 válasza bbalazs_ hozzászólására (») Márc 28, 2014 /
 
Azt észrevettem hogyha végzek a két változóval valamilyen műveletet (pl.:az értékét kiküldöm soros porton) és utána állítom nullára akkor működik megfelelően.
Mai nap még megpróbálom ASM beszúrással nullázni és aztán beszámolok az eredményről.
Az eddigi hozzászólásokat nagyon köszönöm!
(#) KaiserA válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Szia!

Letudnád nekem írni, hogy jönn ki 22.9375 fok? mert akárhogy is nézem a biteket, nekem nem jönn ki.
11000001 193
11111111 255
Ha megkérlek leírod hogy kell átszámolni?

Köszönöm szépen!!

Adrián
A hozzászólás módosítva: Márc 28, 2014
(#) Hp41C válasza KaiserA hozzászólására (») Márc 28, 2014 /
 
Az idézet az adatlapból:
  1. //Convert the temperature data
  2. //First Check flag bits
  3. if ((UpperByte & 0x80) == 0x80){ //TA >= TCRIT}
  4. if ((UpperByte & 0x40) == 0x40){ //TA > TUPPER}
  5. if ((UpperByte & 0x20) == 0x20){ //TA < TLOWER}
  6. UpperByte = UpperByte & 0x1F; //Clear flag bits
  7. if ((UpperByte & 0x10) == 0x10){ //TA < 0°C
  8.     UpperByte = UpperByte & 0x0F; //Clear SIGN
  9.     Temperature = (256.0 - ((float)(UpperByte x 16 + LowerByte) / 16.0);
  10. }else //TA >= 0°C
  11. Temperature = ((float)(UpperByte x 16 + LowerByte) / 16.0);

UpperByte = 193 = 0xC1; LowerByte = 255 = 0xFF
Mivel az UpperByte 7. bitje == 1; TA >= TCRIT.
Mivel az UpperByte 6. bitje == 1; TA >= TUPPER.
Mivel az UpperByte 5. bitje == 0; TA >= TLOWER,
Mivel az UpperByte 4. bitje == 0; TA >= 0.
UpperByte = UpperByte & 0x1F = 0x01
Temperature = (float)((1 * 256 + 255)) / 16.0 = 31,9375
... Az eredményt sajnos elírtam...
Következő: »»   504 / 1224
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