Fórum témák

» Több friss téma
Fórum » PIC programozása C nyelven, C-Compiler
Lapozás: OK   12 / 153
(#) elektromania92 válasza potyo hozzászólására (») Jan 4, 2010 /
 
Oké. Ebben egyetértek veled, igazad van. De olyan programozási részletekre gondolok, ami a a pc-s programozásban nincs.
(#) vicsys válasza elektromania92 hozzászólására (») Jan 4, 2010 /
 
Van, persze. Minden compilernek megvan a maga metódusa. Javaslom, hogy ha megy a C általános dolgai, akkor töltsd le az adott cégek reference manual-jait.
Pl.: CCS C Bővebben: Link
vagy HI-tech PICC : Bővebben: Link
(#) elektromania92 válasza vicsys hozzászólására (») Jan 4, 2010 /
 
Hello.

Köszönöm a linket. Átnéztem CCS C referenciát. Nagyon jó bemutatót kaptam a C-s pic programokról.A parancsok eléggé logikusak, jól érthetőek számomra.
Programoztam Pascalban és PHP ben.A C szintaxisa nagyon hasonló szerintem a PHP hoz, csak ebben vannak + dolgok.No szerintem elkezdek egyszerű pic-es villogókat tervezni, meg hasonló.
Akkor van ez CCS-C, ez ami leforditja nekem a C fajlt hex-re.Akkor még kell az ami beégeti nekem a picbe?És kell egy égető áramkör.

(#) vicsys válasza elektromania92 hozzászólására (») Jan 5, 2010 /
 
Pontosan így van.
(#) watt hozzászólása Jan 16, 2010 /
 
Sziasztok!
Fejembe vettem, hogy írok egy saját szoftveres I2C rutint mcc18-ban. Nincs gondom a programmal, sokkal inkább a fordítóval. Azt szeretném, ha lenne egy OPEN_S_I2C rutinom, amit paraméterezni tudnék, benne a kiválasztott portlábakkal, sebességgel, stb.

Az usart.h példájából próbáltam ötletet nyerni, de kevés sikerrel. Kiragadtam a következő részt:
  1. void Open1USART (PARAM_SCLASS unsigned char config, PARAM_SCLASS unsigned int spbrg);


Próbáltam keresni, hogy miképpen és főleg hol dolgozza fel a kapott paramétereket a fordító, de nem találtam.

Az én problémám, hogy miként tudok átadni egy függvénynek #define szintű paramétereket. Nyílván ezt csak az előfordítás ütemében lehet. Örömmel vennék egy kis útbaigazítást!
Köszi!
(#) watt válasza watt hozzászólására (») Jan 16, 2010 /
 
Közben megnéztem a gyári I2C rutinokat, és rájöttem ,hogy ott sem oldották meg ezt a problámát, inkább rábízták a felhasználóra, hogy állítsa be a header fájlban. Ezek szerint ez túl macerás lenne, ha ők sem álltak neki...
(#) Kokany82 hozzászólása Feb 14, 2010 /
 
Sziasztok! Tudna valaki segíteni nekem. Én nem értek a programozáshoz de szernék módosítani, egy már meglévő progit.Arra lenne szökségem, hogy az első relé(vagy a második, mindegy)riasztás ideje alatt bekapcsoljon. ez lenne a fontosabb, de ha meg lehet oldani ,hogy a másik relé pedig a riasztó áram alá helyezésekor, vagy resetkor 2mp-ig behúzzon, ez a telefon bekapcsolását oldaná meg.
A segítséget előre is köszönöm.
Mellékelem a progit hex-ben és asm-ben és a hardver rajzát is.
(#) laller25 hozzászólása Feb 14, 2010 /
 
HI
Bekötési gondokkal küzdök! Vettem egy 202A /DISPLAYTECH/ tipusu LCD-t és nem nagyon akar működni
nem tudom, hogy a progival van gond vagy a bekötés nem ok. Aki jártas lcd vezérlésben annak nem jelent nagy gondot, de én most próbálom először (ccs-ben)
köszi a segítséget!

display.c
    
(#) watt válasza laller25 hozzászólására (») Feb 14, 2010 /
 
Idézet:
„Aki jártas lcd vezérlésben annak nem jelent nagy gondot”

Az ilyen jellegű megjegyzések sértőek, mert úgy tűnik, hogy nem sokat ér az a tudás, mert gond nélküli. Ezt el kéne felejteni. Ami időbe telik, az gondot jelent. És nem egyszerű annak sem, aki már csinált ilyet, mert nem biztos, hogy ugyanúgy kell vezérelni minden LCD-t és a feladat is lehet más a megjelenítésben. Az sem kis nyűg, hogy egy olyan programot kell megérteni, amit nem a saját logikánk szerint építettek fel.

A kérdésedre pedig két kérdéssel válaszolnék:
A kontrasztot beállítottad, biztosan jól?
Az adatlap szerinti inicializálási lépéseket és időket biztosan betartod?
(#) MPi-c válasza laller25 hozzászólására (») Feb 14, 2010 /
 
Idézet:
„...nem tudom, hogy a progival van gond vagy a bekötés nem ok.”


Mind a kettővel gond lesz, bár az utóbbiról nem tettél fel rajzot vagy leírást.

Az hogy először próbálod, még nem mentesít attól, hogy elővedd az LCD adatlapját. Úgy látom nem tetted meg.
Ahhoz, hogy kiderítsd mi a hiba, jó pár dolgot meg kell tudnod válaszolni. Csak rávezetés képpen:
- Milyen üzemmódokban működtethető az LCD?
- Ez a forrás szerint nálad hogy van beállítva? A PIC és az LCD összekötése ennek megfelelő?
- Az LCD iniciáló része a forrásban a kiválasztott üzemmódnak (na meg az adatlapban megadottak szerint) megfelelően van megírva?
- Mi a különbség az adat és a parancsküldés között? Ezt a forrás megfelelően végzi?

A fentiek alapján ki fog derülni, hogy az összehuzalozás és a forrás is hibás.
Elárulom, hogy javítás után szimulátorban működik...

Vannak a kódban humoros részek:
  1. #define LCD_E     PIN_E9
  2. #define LCD_RS    PIN_E8
(#) mps hozzászólása Feb 25, 2010 /
 
Sziasztok!
Neki kezdtem C-t tanulgatni, és elakadtam a megszakításoknál. A nullához közeli angol tudásommal, és egy szótárral, a helpből azt sikerült kihámozni, hogy egy interrupt nevű függvényt hív meg a megszakítás, és a regiszterek mentésével nem kell foglalkozni. Gondolom valamit rosszul értelmeztem, de nem megy. Egy ledet szeretnék villogtatni. A microc-ről van szó, és pic18f4550-ről.
Előre is köszi a válaszokat!
(#) potyo válasza mps hozzászólására (») Feb 25, 2010 / 1
 
ADCON1-et nem nullába kell állítani, de nem mondom meg, hogy hová, nézd ki az adatlapból. Ez most épp nem okozza a problémát, de korrekt munkához kell ez is.

T1CON = 199;
Ezzel a következőt éred el: kiválasztod, hogy a Timer1 a külső oszcillátoráról működjön, viszont a külső oszcillátort meg letiltod. Így a Timer1-nek nincs órajele, nemis okozhat megszakítást. Tehát ha van Timer1 külső oszcillátor, akkor azt kell engedélyezni, ha nincs, akkor meg úgy beállítani, hogy a belső órajelről járjon a Timer1.

Szintén jelenleg nem okoz problémát, de meg kell kérdezzem, azt hol láttad, hogy a GIE bitet macerálni kell a megszakítási rutinban?

Nem kell sok angol tudás az adatlapok megértéséhez, de az a kevés az nélkülözhetetlen.

Illetve ha már most tanulod a C-t, akkor miért nem a C18-at használod? Bár mondjuk az egy picit bonyolultabb, de ha a ledvillogtatáson túljutsz, akkor szerintem állj át arra.
(#) mps válasza potyo hozzászólására (») Feb 25, 2010 /
 
Köszi a segítséget!
A 199 jó volt, viszont a timer 0-át akartam használni, nem tudom, hogy kavartam be az egyet. De ha nem írod, néztem volna napokig! Az adcont megnézem.
Azért ezt a fordítót néztem ki, mert szimpi a helpje. De még képlékeny a dolog, legalább már C és nem Pascal
A GIE bitet a Kónya könyv első részéből szedtem, azt írja, hogy a megszakítás kezelése alatt tiltani kell a megszakításokat.
Köszi még egyszer!
(#) potyo válasza mps hozzászólására (») Feb 25, 2010 /
 
Akkor legalább mostmár tudom, hogy honnan származik ez a GIE bit macerálás. Na akkor ezt felejtsd el, mert ez úgy hülyeség, ahogy van. A hardver tiltja a GIE bitet, amikor a megszakítási rutinra ugrik, mert ha nem tiltaná, akkor végtelen ciklusban ugrálna a megszakítási rutin kezdőcímén, amíg túl nem csordul a return stack (nemtudom, ennek mi a magyar neve, ebben tárolódik el az aktuális utasítás címe, amikor bejött a megszakítás). Engedélyezni szintén nem szabad kézzel, hanem a megszakítási rutin végén levő RETFIE utasítás állítja vissza. A kézzel nullázás valószínűleg semmi problémát nem okozna, csak felesleges, mert már úgyis nullán van, viszont a kézzel engedélyezés már további problémákat tud felvetni, ha az engedélyezés és a regiszterek visszaállítása között beesik egy másik megszakítás.
(#) kissi válasza mps hozzászólására (») Feb 25, 2010 /
 
Szia!

Melyik könyvéről beszélsz ( 1,2 vagy 3. kiadás melyik oldal ) és hol láttad, mert én korrektnek tudom a leírt dolgait és a könyvében sem ismerek ilyen hibát ( sőt a harmadik kötetet megnézve kifejezetten azt írja, hogy a hardver állítja a bitet!!) ?!

Steve
(#) mps válasza potyo hozzászólására (») Feb 25, 2010 /
 
Köszi, elfelejtem!
Kissi:
Az elsőben, csak azt olvastam, de már nem tudom az oldalt (már nincs nálam a könyv, rég volt, és persze nálam, az sem zárható ki, hogy rosszul emlékszem), harmadik kiadás meg van, de még nem jutottam a végére.
(#) kissi válasza mps hozzászólására (») Feb 25, 2010 /
 
Szia!

Akkor olvasd el a 3.kötet megszakításra vonatkozó részét, hasznos lesz!

Steve
(#) potyo válasza mps hozzászólására (») Feb 25, 2010 /
 
Megnéztem, de ilyet nem ír, hogy kézzel kellene állítani.
"A megszakítások globális engedélyezésére/tiltására a GIE bit szolgál. A megszakítás kiszolgálásának kezdetekor a hardver törli a GIE bitet és a visszatérési címet a verembe rakja. .... A RETFIE utasítás GIE-t 1-be állítja és a verem tetején levő címet a PC-be tölti..."
(#) mps válasza potyo hozzászólására (») Feb 25, 2010 /
 
Nos, azt hiszem ezzel többet nem lesz gondom, szerintem egy életre a fejembe vertétek!
(#) otti_nb hozzászólása Feb 27, 2010 /
 
Sziasztok......Segítségeteket kérném! Feltettem a CCS compilert es mindig "Error: The selected compiler: "PCM" is not installed on this PC
Halting build on first failure as requested.
" ezt irja ki....mi lehet a baj? feltettem a crg-ket és akkor se megy....akkor valami "adress" hibát jelez..
(#) otti_nb hozzászólása Feb 27, 2010 /
 
naa valamivel előbre jutottam.... most mar csak valami dll fáljt kér tőlem plss!!!
(#) icserny válasza otti_nb hozzászólására (») Feb 28, 2010 /
 
Feltételezem, hogy nem a demó változatot telepítetted (mert az nem működik helyesen bemásolt CRG állományokkal).

Ha a PCM modult akarod használni, akkor a telepítési konyvtárban (.../PICC) lenni kell egy pcm.crg állománynak. A .../PICC/DLL könyvtárban pedig lenni kell egy pcm.dll állománynak. Ha nincs ott, akkor nem jó változatot telepítettél. Bővebb információ a CCS PIC Compiler topikban található.
(#) otti_nb válasza icserny hozzászólására (») Feb 28, 2010 /
 
Köszi szépen. Már megy minden. Mégegy utolsó kérés. Nem tudsz egy olyan oldalat ahol fent vannak a pices ccs parancsok meg az is hogy mi mire van???... mert pár parancsot nem annyira ismerek...
(#) potyo válasza otti_nb hozzászólására (») Feb 28, 2010 /
 
Fordító help-je?
(#) icserny válasza otti_nb hozzászólására (») Márc 1, 2010 /
 
A Help (.chm) állományokat érdemes olvasgatni. Ezen kívül
a CCS C Referencia kézikönyvei is hasznos olvasmányok. Bővebben: Link
(#) vicsys válasza otti_nb hozzászólására (») Márc 1, 2010 /
 
Szia
Itt vannak a reference manual-ek:
Bővebben: Link
Bővebben: Link
(#) mps hozzászólása Márc 2, 2010 /
 
Sziasztok! Megint én.
Most egy lcd problémám van: nem megy. A forrás a help-ből van átmásolva, csak egy ledet tettem bele, hogy lássam beindul e a pic. Létezhet, hogy a help rossz? Bár inkább arra gyanakszom, hogy valamit rosszul módosítottam a proci miatt, ott egy 16f887 volt, nekem pedig 18f4550 van. Az lcd jó, kettővel is próbáltam, az egyik egy másik kütyüben működik.
Előre is köszi a segítséget!

bill_kiir.c
    
(#) mps válasza mps hozzászólására (») Márc 3, 2010 /
 
Nos, kicsit előrébb jutottam: ledeket raktam a kijelző helyére, és miután az adcon1-et átírtam 15-ről 14-re, már villogtak is.
De a kijelzőn továbbra is semmi. ( Bár a ledek az elején össze vissza villódznak, pár másodperc után beáll úgy, hogy a d0-át 1-ben tartja, a d1-et kapcsolgatja, viszont az en meg sem mozdul, nézve a kijelző adatlapját azért valami halovány fényt kellene látnom, persze lehet hülyeséget írok. Végülis nem vagyok én olyan "gyorslátó" )
Szóval még mindig elkelne egy kis segítség.
(#) Algundy hozzászólása Márc 7, 2010 /
 
Hali!

Nemrég kezdtem pic-et programozni és az alábbi problémába ütköztem. Grafikus kijelzőre való karaktereket (8x6-os) deklaráltam tömbben (mind a 256-ot). A fordítás után ezt a hibaüzenetet kaptam:
C18 fordítót használok:

MPLINK 4.33, Linker
Copyright (c) 2009 Microchip Technology Inc.
Error - section '.idata_GLCD.o' can not fit the section. Section '.idata_GLCD.o' length=0x00000600
Errors : 1

Tudna valaki segíteni?

névtelen.JPG
    
(#) icserny válasza Algundy hozzászólására (») Márc 8, 2010 /
 
Idézet:
„Tudna valaki segíteni?”
Biztosan tudnánk, ha megírnád, hogy hogyan deklaráltad!
Következő: »»   12 / 153
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