Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   267 / 1320
(#) szilva válasza viktorka0011 hozzászólására (») Aug 22, 2008 /
 
Nem, arról szó sincs! Arról beszéltünk, hogy a 2550-es Vdd és Vss lába (20 és 19) közé kellene egy 100nF körüli, lehetőleg kerámia kondenzátor, lehetőleg az IC lábaihoz minél közelebb beszerelve. Ez általános dolog, és a tervezés hiányossága, hogy teljesen hiányzik az áramkörből.
(#) viktorka0011 válasza szilva hozzászólására (») Aug 22, 2008 /
 
Jo rendbe orvoslom is mindjárt!
(#) viktorka0011 válasza viktorka0011 hozzászólására (») Aug 22, 2008 /
 
Ellenőrzés stimmel(ugynézki hogy jó) nagyon kőszőnőm a segitséget!Mostmárcsak be kel raknom a foglalatba és mehet a proba!!
(#) VrGakos hozzászólása Aug 23, 2008 /
 
Sziasztok!

Sikerült működésre bírni a 4×16 karakteres kijelzőmet,
több kevesebb sikerrel. A program egy része saját de az lcd-t kezelő részt (m_lcd.c)Topi Időkapcsolós hosszabbítójától "szereztem". Az lenne a probléma hogy a 3. és a 4. sor 4 karakterrel beljebb kezdődik.

A másik tegnap nem jöttem rá hogy kell egy c-fájlba egy másik c-fájlt "berakni". A programot CCS fordítóban írtam.

Köszönöm segítségeteket. Ákos
(#) MPi-c válasza VrGakos hozzászólására (») Aug 23, 2008 /
 
Szia!
  1. #define LCD_LINE_3 0x94 // Position of start of line 3
  2. #define LCD_LINE_4 0xD4 // Position of start of line 4

sorokban az értékek nem jók, csökkenteni kell 4-gyel: 0x90, és 0xd0. (lásd LCD adatlap!)

Idézet:
„hogy kell egy c-fájlba egy másik c-fájlt "berakni".”

Ha jól értem, akkor : include...
(#) VrGakos hozzászólása Aug 23, 2008 /
 
Köszi a segítséget már működik.
(Sajnos itt nem tudok pontot adni)

Ákos
(#) googa hozzászólása Aug 23, 2008 /
 
Sziasztok! Már egy jó ideje, de mondjuk nem nagy rendszerességgel nyúvasztom a PIC16F648A PIC-eket, próbálom belőlük minden tudásukat kifacsarni ASSEMBLY nyelven. De ahol PIC-ről olvasok, többnyire mindenki inkább C-ben programoz. Igazából az ASM-et nem nagyon érzem még át. Jobb a C ? Jobban átlátható, könnyebb vele feltételes elágazásokat megcsinálni és ciklusokat? Köszi! g
(#) kobold válasza googa hozzászólására (») Aug 23, 2008 /
 
Persze, hogy jobb, ha gyors megoldás kell, vagy túl bonyolult lenne asm-ben, pl. az említett elágazások, ciklusok nyomon követése miatt. Na meg ha az ember nem akar különösebben elmélyedni az eszköz fizikai rejtelmeiben, akkor is előnyös lehet.
ASM-ben viszont az történik, amit látsz, írsz, nincsenek rejtelmek, cserébe viszont sokkal macerásabb tud lenni. Ha C-ben összeszorzol két byte-ot, és az eredményt egy byte-ba tennéd, a fordító figyelmeztet, míg asm-ben te írod a szorzórutint is, és ha úgy akarod, gond nélkül dolgozhatsz egy byte-os eredménnyel.
A C hátrányait akkor szoktam látni (kontrollerre nem használom), amikor perifériákkal dolgoznak, és a generált kód elemzéséig többnyire "titok", hogy egy egysoros C utasítás hány assembly sornak felel meg, mit csinál konkrétan stb.
Mindenesetre C-ben úgy általában nagyobb ugyanaz a program, több helyet foglal, még a legokosabb optimalizálás után is.
(#) potyo válasza googa hozzászólására (») Aug 23, 2008 /
 
Hozzátenném az előzőhöz, hogy a C nyelv kezdők számára rejt buktatókat. Ilyen tud lenni pl. az említett két bájt szorzása is. Ha két nyolcbites számmal végzünk műveleteket, akkor az eredményt is nyolc biten kapjuk, hiába esetleg azt egy 16 bites változóba írjuk be. Míg asm-ben valóban amit látunk, az történik. Tehát nem olyan egyszerű a C sem. Örök igazság, hogy amit asm-ben nem lehet megcsinálni, azt nem lehet megcsinálni.
(#) kobold válasza potyo hozzászólására (») Aug 23, 2008 /
 
Idézet:
„amit asm-ben nem lehet megcsinálni, azt nem lehet megcsinálni”

Ez tetszett, minden PIC-es könyv elejére odatenném
A kezdők nagyon is szívesen alkalmazzák a C-t minden asm háttér nélkül, épp az említett z = x * y egyszerűsége miatt. Enélkül lehetne kész asm rutinokat guglizni, vagy rájönni, mit hogyan kell rotálni (nekem anno egy hétig tartott az első szorzás, net nélkül).
(#) VrGakos hozzászólása Aug 23, 2008 /
 
Sziasztok!

Lenne szükségem még egy kis segítségre. Az lenne a kérdésem hogy egy "int" típusú változót hogyan tudok lcd re kiírni.

Ákos
(#) MPi-c válasza VrGakos hozzászólására (») Aug 23, 2008 /
 
Még mindig ccs-ben maradva: van hozzás kezeleői leírás, amiben minden benne van egy ilyen kérdés megoldásához. Használhatod a printf függvényt.
(#) trudnai válasza kobold hozzászólására (») Aug 23, 2008 /
 
Idézet:
„amit asm-ben nem lehet megcsinálni, azt nem lehet megcsinálni”


Azt hiszem ez azert igaz C-re is azzal a megkotessel, hogy "ha nem eleg nagy vagy gyors az adott eszkoz amire fejlesztesz egyszeruen vegyel nagyobbat"

Asm vs. C vagy akarmi mas az mindig egy flame tema - remelem nem alakul ki itt haboru. Velemenyem szerint ket kulombozo aspektusa szerint jo az egyik vagy masik. Az egyik a kod hatekonysag, a masik a fejlesztes hatekonysaga. Amig a kod hatekonysagaval a gyartasi koltsegeken lehet faragni a fejlesztesi hatekonysagnal a fejlesztesi koltsegeken. Pl. nyilvan valo, hogy egy kiterjedt konyvtari rutinokkal rendelkezo C fejlesztoi rendszer eseteben a fejlesztesi es tesztelesi szakasz joval kevesebb lehet mint egy minden reszleteben egyedileg kifejlesztett es az adott feladathoz igazitott nyers asm rutinokkal osszefaragott project eseten. Azonban en pl 50 centet tudtam faragni a gyartasi koltsegen pusztan azzal, hogy cipokanallal beletuszkoltam az asm-ben megirt firmware-emet egy kisebb PIC-be, es ez mar egy kis peldanyszamu project eseten is jelentos megtakaritast eredmenyezett (200 db, tehat 100 euro...).
(#) googa hozzászólása Aug 23, 2008 /
 
Oké, köszönöm mindenkinek!
Egyébként, ha a PIC PWM kimenetére multimétert teszek, akkor a földhöz képest tudom figyelni a PWM-el beállított feszültséget, vagy ehhez a multiméter nem megfelelő?
(#) potyo válasza googa hozzászólására (») Aug 23, 2008 /
 
Általában jó szokott lenni. De ha nem, akkor is oda lehet tenni egy RC szűrőt, és máris jó lesz.
(#) googa hozzászólása Aug 23, 2008 /
 
Újra én Szóval, ha egy PIC adatlapja azt mondja, hogy
- Operating speeds from DC - 20 MHz
- Precision Internal 4MHz oscillaor
- Low Power Internal oscillator 37KHz
akkor külső órajel nélkül 4MHz-en dübörög a PIC?
Külső órajellel akár 20MHz is elérhető? Illetve mit jelent az utolsó Low Power... sor? Köszi!
(#) Braf válasza googa hozzászólására (») Aug 23, 2008 /
 
Kristályal vagy rezonátorral stb 20Mhz-en még stabilan működik, ha a configwordben internalRC osc. állítasz be akkor nem kell kristály stb. hanem a belső órajelforrásról megy ami 2 féle lehet : Precision Internal 4MHz oscillaor vagy Low Power Internal oscillator 37KHz amik között sw.esen tudsz váltani.
(#) Blint válasza googa hozzászólására (») Aug 23, 2008 /
 
1. kvarccal az OSC1- OSC2 lábra rakva max ekkora (20 MHz) sebességgel tudod hajtani a PIC-et.
2. Pontos (kb 1%) belső oszcillátor a 4Mhz (általában RC kör)
3. a 37kHz pedig a többihez képest lassabb, de kevesebbet fogyaszt, ahol ez lényeges.

Igen, külső jel nélkül 4MHz-en tudod hajtani max.

Üdv, Blint
(#) melcher hozzászólása Aug 23, 2008 /
 
HI!
Nem tudjátok hogy melyik MPLAB-ot célszerű letölteni a winPIC-hez?

Kösz a választ!
(#) Norberto válasza melcher hozzászólására (») Aug 23, 2008 /
 
Ez 2 darab, egymástól teljesen független szoftver. Semmi közük egymáshoz, mindkettő megy külön-külön a másik nélkül.
(#) szilva válasza melcher hozzászólására (») Aug 23, 2008 /
 
Ilyen értelemben mi köze a winPIC-nek (ha jól tudom, az egy égető progi) az MPLAB-hoz (ami egy fejlesztői környezet)?
(#) melcher hozzászólása Aug 23, 2008 /
 
Számítástechnikában nem vogyok túl profi4
Köszönöm a választ
(#) Braf hozzászólása Aug 23, 2008 /
 
Ezzel a hibával mit lehet kezdeni? (Tudom mit jelent.) Most én vagyok a vak vagy az MPLAB lát olyan dolgokat ami nincs is ott ( "," )

hiba.JPG
    
(#) szilva válasza Braf hozzászólására (») Aug 23, 2008 /
 
A "MOTOR" nem véletlenül valami #define-nal definiált kifejtés, amiben pl. "regiszter,bit" formájú string van?
(#) Braf válasza szilva hozzászólására (») Aug 23, 2008 /
 
Nem mert a többi helyen gond nélkül lefordul.

mod: Közben egy újraindítás eltüntette a problémát...
(#) szilva válasza Braf hozzászólására (») Aug 23, 2008 /
 
Akkor talán blokk-kijelöléssel kitörölném és kézzel beírnám a sort újra. Más ötletem nincs.
(#) Braf válasza szilva hozzászólására (») Aug 23, 2008 /
 
Kössz megoldódott!
(#) googa hozzászólása Aug 23, 2008 /
 
Hali! 16F648A-ba töltöttem egy példaprogramot, amiben ez a konfigurácós szó: '11111100001011' amit én az adatlap alapján úgy értelmezek, hogy külső oszcillátorra van beállítva. Igazából PWM-et tanulgatok. Működik a dolog, villog a LED a PWM kimeneten, csak éppen baromi lassan. Ebből jöttem rá, hogy az említett helyen lehet a probléma és valóban, hiszen nincs külső oszcillátorom a pic előtt, csak egy stabil 5V és mégis pörög az óra ezek szerint, csak éppen baromi lassan.
Ha meg átkonfigelem belső oszcillátorra, szabad szemmel nem látom a LED működését, de ez persze nem azt jelenti, hogy nem működik.
Valaki meg tudná magyarázni, mitől megy a PIC-em órája, vagy mi történik?!?

Egyébként az tűnt fel elsőnek, hogy a példaprogramba oda van írva, hogy a LED első felvillanása a 196. órajelciklus után következik be, ami nálam stoperral 4 másodperc környéke volt...így gyanítom baromi lassan megy a dolog.
(#) Norberto válasza googa hozzászólására (») Aug 24, 2008 /
 
Pl. egész valószínű lehet akár az, hogy a hálózati 50 Hz egy parányi része jut el valamilyen módon a PIC-be. Nem direkt módon, hanem mondjuk "levegőn" át.
(#) googa válasza Norberto hozzászólására (») Aug 24, 2008 /
 
Hát, ez meglepő számomra. Egyébként, ha másnak van valami jó ötlete, vagy esetleg tévedek a konfigurációban, vagy amit említettem órajelciklus ügyben, abban tévedek...akkor írjatok.
Esetleg valaki, ha jobban ráér, megnézhetné nekem, a pontos konfigurációs szó miben létét, ha belső 4MHz-es oscillátorral akarom használni és most csak a PWM módot. Én erre gondoltam: b'11111100011011'... Köszi!
Következő: »»   267 / 1320
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