Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Neked is kösz i a segítséget. Basicben programozuok és ezt a két sort így nem fogadja el a fordítóm.
ANSEL = 0
Ha ezt nem érti, akkor nézz utána a fordítód helpjében, hogy hogyan lehet elérni a a funció regisztereket.
Bár basicet utoljára 10 éves koromban láttam, akkor is megállt a tudományom a játékbetöltésen, de, ahogy nézem ez a program több sebből is vérzik.
trisE=%11111111 --> ezzel 1(=I[nput]) -nak állítod be a portokat. De ezt úgy mondom, hogy Basicet nem láttam még, nem tudom mi az a % jel. (És Te is jobban jársz, ha nem ezzel kezded az ismerkedést, hogy is mondjam, túl "magas szintű" ez a nyelv, ezzel esélyt sem adsz magadnak, hogy megértsd mondjuk az LCD működését akár, lsd.: lcdout, define 8 bit, stb.., nem fogod tudni mi is zajlik a háttérben.) Szerintem, ha csak egy-pár LED -et akarsz villogtatni, akkor addig hagyd el az LCD kijelzős részeket, sőt, LCD -t se köss addig sehova, míg nem vagy tisztában a dolgokkal. Másik, bár ez inkább szépséghiba, de, a PORTE -nek felesleges d'255' értéket adni, maximum csak d'15' -öt "tudsz", ugyanígy a TRISE beállításánál is csak az alsó 4 bitet tudod állítgatni. Hp41C kódja azért nem működik a Te esetedben, mert az Assembly nyelven van írva. Az ANSEL talán jó (ha csak az E portot akarod digitálisként használni, bár ez attól is függ, hogy a LED (-ek ?) ténylegesen hova van(nak) kötve. Idézet: „Neked is kösz i a segítséget. Basicben programozuok és ezt a két sort így nem fogadja el a fordítóm.” Az mindegy Pascalban C-ben vagy Basic-ben programozol, az ASM-et meg kell ertened mert az adatlapban ASM-ben vannak a peldak. Es azt is meg kell ertened, hogy az ANSEL micsoda es hogy hogyan nullazod ki azzal a forditoval amit eppen hasznalsz. Nem lehet az adatlapot minden egyes forditohoz kulon-kulon megirni...
Hello!
A későbbiekben nem led lesz itt csak azért tettem oda hogy ki tudjam próbálni hogyműködik e. Jelenleg az RE.0-án van a led lehet hogy ez a baj?
Nah most működik.
ANSEL=0 -át írtam be és ujra lefordítottam és beírtam majd egy reset után feltámadt Kösszi mindenkinek a segítséget.
Rakok bele 10k felhúzót.
Ez programozáshoz is szükséges? Úgy gondaltam a felhúzó csak az áramkörben kell hogy fusson a program. De lehet hogy akkor eddig rosszul tudtam.
Jól tudod, nem szükséges a programozáshoz. Az égető kezeli a Vpp vonalakat is elvileg.
Sziasztok!
Megtudná nekem valaki mondani, h a CCS-C nevű progiban hol lehet hex file-t csinálni? Kerestem benn, de nem találtam. Persze lehet, hogy csak én siklottam át felette. Előre is köszönöm!
Hello mindenki!
A következő vadállatságot találtam: Bővebben: Link Próbáltam átírni, hogy más kimenetet használjon ami sikerült is de a tesztek alatt kiderült, hogy a megadott kód még az eredeti formájában sem működik. :S Igaz az oldalon Hight Tech C-t írnak , én meg Mikroelektronika C-t használok de már az optimalizációt is max-ra vettem mégis olyan mintha túl lassan menne a jel. :S Az előre lefordított hex-el rendesen hallható a zene de az enyémmel sajnos nem. :S Mellékelem az én c fájlomat is összehasonlítás képen bár végül is annyit csináltam csak, hogy átírtam a regiszter változók neveit. Szerintetek mi lehet a baj? Nem eléggé optimalizált a kód? Köszönöm a válaszokat előre is! Bye!
Hexből?
Egyébként van ott egy fontos figyelmeztetés, 20MHz -es kristályt nem ajánlott lecserélni, Te hány MHz -est használsz?
20-asat.
Amikor az előre lefordított hex-et használom ami az oldalon van fent akkor minden működik ahogy kell. Még most azt szeretném kipróbálni, hogy tényleg a fordító e az oka.
A fordítónak semmi baja, csak te nem a megfelelő fordítót használod, amiről tudomásod van, csak úgy látszik tudomást sem veszel róla!
Idézet: „Igaz az oldalon Hight Tech C-t írnak , én meg Mikroelektronika C-t használok”
Szívesen megnéztem volna, hogy a mikroelektronika mekkora kódot generál nálam, de így, hogy forrás nagy részét át kell irogatni (nálam legalábbis, már rég nem foglalkoztam ennek a programnak a frissítésével - már, ha létezik friss verzója), így esélytelen, erre most nincs "kapacitásom".
De, ha ennyire kiváncsi vagy, miért nem teszed fel a HITECH C -t és hasonlítod össze? Nem hiszem, hogy az a művelet tovább tartana, mint elmélkedni és biztonytalanságokon alapuló tippelgetésekbe folyni.
Még mindig lefagyogat, de most jut eszembe hogy míg nem volt rajta a hőfokmérő addig nem fagyott le és ugyan úgy használtam, rajta volt a motoron egy hónapig.
Most meg nem tudom mi lett vele.
Tisztelt Szakik,
Egy olyan ötletem támadt, hogy a PIC órajelét egy diódán átvezetve egy nagy ellenállással sorosan egy kondenzátorra teszem, és használom fel egy step-up IC magas impedanciás bemenetéhez (active high shutdown pin). A kérdésem az, hogy ha a PIC-ben kiadok egy sleep parancsot, akkor leáll az oszcillátor, de milyen állapotba kerül az OSC out pin? Vagy ezt nem lehet megmondani, mert egyszer alacsony, egyszer magas? Mit tanácsoltok? Sajnos már nincsen szabad PIN.
Csinálj néhány mérést, azután szerintem tudsz valamit következtetni.
Esetleg mutasd meg a kapcsolást, hátha lenne ötlet láb szabaddá tételére.
Szerintem alacsony szinten lesz mindig: SLEEP letiltja az oszcillátor meghajtóját (adatlapban egy inverter jelzi OSC1 és OSC2 között), annak a kimenete tuti, hogy alacsony lesz.
Köszönöm!
Ha megérkezik a megadott PIC, amelyikhez ez kell, kipróbálom rajta előtte. Egy teljesen más PIC-en kipróbáltam, és tényleg alacsony szintet vett fel, de ez lehet véletlen is. Nem volt időm az adatlapot átolvasni tüzetesen, de elsőre nem is találtam erről infót. Köszönöm a tanácsot, ki fogom próbálni. Üdv. deguss
Sleep állapotban igyekeznek minimalizálni a fogyasztást. Kizártnak tartom, hogy magas szint legyen bármelyik lábon.
A magas szint a lábon és a fogyasztás nem függenek össze.
--------- 18F252 adatlapjának 2-3 táblázatában van, hogy az OSC1 és OSC2 lábak milyen állapotban vannak SLEEP idején. Kvarchoz ezt írja: "Feedback inverter disabled, at quiescent voltage level". Az első fele világos, de a quiescent voltage level mit akar jelenteni?
Nyugalmi feszültség-szintet. Pusztán a paraszti logika mondatja velem, hogy ez alacsony (vagy közel alacsony), mert konkrétabb meghatározását nem találtam az adatlapban.
Ugyanígy lehet magas szint is, hiszen elvben szimmetrikus a CMOS...
Szerintem ha van feszültség egy kimeneten, ott bármin folyhat áram, mai rá van kötve, ha nincs, akkor nem. Tudom lehet nyelő is...
De még az is lehet, hogy ilyenkor lebeg, és talán ezt jelenti a quiescent voltage level. Mindenesetre egy egyszerű méréssorozattal ez kideríthető. Én nullát tippelek.
Ehhez mit szóltok?
Kondenzátorral kicsatolom. SHDN input current 1uA adatlap szerint. Persze ha megjön a kiszemelt típus, ki fogom még a panel gyártása előtt mérni. Ez egy nagy tudású mérőkészülék lesz, és ez az automata kikapcsolás egy kényelmi funkciója.
Csak olyan mérést is kell végezni, amikor a műszert a táp és a láb közé kötjük. Nehogy a műszer belső ellenállása átverjen bennünket!
Idézet: „Mit tanácsoltok? Sajnos már nincsen szabad PIN.” 1. Probaldd meg a tobbi pint-t okosabban felhasznalni hogy felszabaduljon 2. Vegyel nagyobb PIC-et 3. Vegyel I/O expandert Ezt a vacakolast az oscillatorral pedig felejtsd el, emiatt kockaztatni hogy az orajel bizonytalanna valik es az alkalmazasok esetenkent nem fog menni mert tegyuk fel megcsinalod amit szeretnel es eppen mukodik aztan jon egy idojaras valtozas vagy a szomszed bekapcsolja a porszivot es Te meg nezel mi tortent az aramkoroddel. Amikor meg mericskelni kezded a szomszed mar vegzett a takaritassa es nagyon nem fogod erteni mi a fenetol nem ment az aramkorod... |
Bejelentkezés
Hirdetés |