Fórum témák
» Több friss téma |
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: Hol láttad, hogy asm-ről van szó „De ne ugy adja meg, hogy a=0, hanem mov a,0 vagy clrf a” ?!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
Az o hozzaszolasara tamaszkodtam.
"Ha a program elején létrehozok két változót..."
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:
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.
Ezt láttam én is belőle, de a többit nem és ez a "PIC kezdőknek" rovat
!
Ezert kell helyette kitalalnunk, hogy mit is akarhatott.
Majd jon es referal
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?
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
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
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
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))) 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.
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é)
A soros portos kezelésnek nem lehet problémája ( nem ismerem a Basic-et, de ez is van többféle, pl. PicBasic ) ?!
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
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
Megpróbálom a szimulátort is de előbb ki kell herélnem a progit.
ASM benilyesmi kell írni?: movlw 0 movwf a
Igen, ez alapból jó, csak nem tudom, hogy eszi a BASIC ( C18 alatt még kell kiegészítés
! ) !
Egyszerűen be kell állítani hogy ASM sorok következnek és aztán hogy endasm.
Elvileg!! Puding próbája... Majd nyilatkozom.
Hasonló itt is:
kutya VAR byte teknoc VAR word
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
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
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
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....
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!
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!
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
Az idézet az adatlapból:
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... |
Bejelentkezés
Hirdetés |




?!
! 
