Fórum témák

» Több friss téma
Fórum » CCS PIC Compiler
 
Témaindító: (Felhasználó 1542), idő: Ápr 3, 2006
Lapozás: OK   48 / 118
(#) mps válasza vicsys hozzászólására (») Jan 7, 2011 /
 
Értem. Köszönöm szépen!
(#) vicsys válasza p_istvan hozzászólására (») Jan 7, 2011 /
 
A set_tris nem használandó a CCS-nél. Ha fast_IO -t használsz, lehet.
(#) p_istvan válasza vicsys hozzászólására (») Jan 7, 2011 /
 
Igen azt használok, ha van rá mód mivel így rövidebb a kód!
Hibát a fast_IO nélkűl sem okoz, csak fölösleges, viszont világosabban látható utólag mit akartam a portokkal.
(#) sysy válasza vicsys hozzászólására (») Jan 7, 2011 /
 
Azért ez igy, kategórikusan kijelentve kicsit furcsa. Miért nem használandó a set_tris???
(#) vicsys válasza sysy hozzászólására (») Jan 7, 2011 /
 
Mivel a port irányát egyértelműen az adott művelet állítja be. A CCS fórumán is sokszor írják, hogy ne használják. A User Manual-ban is megemlítik, hogy nincs ez a funkció, csupán a kompatibilitás miatt hagyták meg.
(#) p_istvan válasza vicsys hozzászólására (») Jan 7, 2011 /
 
És ezáltal lassabb és hosszabb kódot generál, továbbá aki nagyon "rászokik" a CCS-re az szenvedni fog más C fordítóval.
Ezért is használom a fas_IO-t...
A PIC port is lassabb ha minden írás és olvasás előtt piszkáljuk az állapot biteket!
Bár most épp a HiTech C vel ismerkedem éppen hasonló okok miatt, igaz ez már itt OFF!
(#) vicsys válasza p_istvan hozzászólására (») Jan 7, 2011 /
 
Igen, ez tény. Azért jó is, rossz is...
(#) whalaky hozzászólása Jan 7, 2011 /
 
Sziasztok!
Megint a CCS IP Stack-el akadtam el .
A jelenség, hogy ha DHCP-vel kérek IP címet (meg is kapja, kommunikál is TCP-n) de az UDP kérésekre nem válaszol, pontosabban nem küldi ki a választ...
Ha a DHCP-t kikapcsolom, minden működik, TCP HTTP és az UDP is (mindet használom, eddig nem is volt vele baj, de most hogy be akartam állítani hogy DHCPn kérjen IP címet esze ágában nincs az UDP kérésekre válaszolni, a többi megy.
Igen, mind a három protokoll kell
Találkozott már valaki hasonlóval, vagy csak én vagyok ilyen agyament hogy CCS-el próbálom megoldani?
W
(#) sysy válasza vicsys hozzászólására (») Jan 7, 2011 /
 
Ahhoz képest, hogy nincs ez a funkció, elég jól teszi a dolgát.
Ez az utasítás miért lassúbb és hosszabb, mint bármi más:
LED=1;
Ahol:
#bit LED = PORTB.0;
(#) whalaky válasza sysy hozzászólására (») Jan 8, 2011 /
 
Ez így működik, de ha előtte volt egy input(PIN_B0) bizony okoz neki kisebb fejtörést, mivel az input fuggvény beállítja a TRIS-t.
(#) vilmosd válasza whalaky hozzászólására (») Jan 8, 2011 /
 
Hali
Ez csak akkor mukodik igy, ha nem mondtad meg neki, hogy ne birizgalja a TRIS regeket. A "#use fast_io(A)" preprocessor utasitas kiadasa utan nem fogja piszkalni a PORTA tristate-jet. Viszont neked kell megmondani az ini-nel, hogy milyen iranyban kered hasznalni a portot. Amugy a sysy altal javasolt megoldast hasznalom regota, es igyekszem elkerulni az original fvenyeket.
  1. #BYTE RTCC = 0x01
  2. #BYTE GPIO = 0x05
  3. #BYTE TRISIO = 0x85
  4. #BYTE WPU = 0x95  
  5. #BYTE IOC = 0x96      
  6. #bit SW_Start = GPIO.3
  7. #bit SW_m = GPIO.5
  8. #bit BT_L = GPIO.0
  9. #bit Cam = GPIO.2
  10. #bit IR = GPIO.4

Es igy hasznalom:
  1. GPIO=0;
  2.         Cam=0;
  3.         IR=1;
  4.         BT_L=1;
  5.         TRISIO = 0b11101001;
  6. in=~SW_Start;

Igy tudom mit csinal a fordito, es a kod is kisebb lesz.
Csa Vili
(#) whalaky válasza vilmosd hozzászólására (») Jan 8, 2011 /
 
Így igaz. Mostanában mióta az IPStacket használom én is így használom, mivel az tapasztalat szerint csak a fastio-val működik (vélhetően épp a tris bitek büzgicselésével eltöltött idő miatt).
Tulajdonképpen projectje válogatja hogy melyiket érdemes használni..... szerintem egy kisebb programnál ahol a program mérete és a portok sebessége nem kritikus felesleges a fastio használata, mert érdemi hozadéka nincs, viszont a forráskód tömörebb olvasmányosabb lesz.
Bár ízlések és pofonok....
(#) vilmosd válasza whalaky hozzászólására (») Jan 8, 2011 /
 
Hali
Egy nagy elonye van az ilyen programirasnak, hogy konnyebb atvinni mas nyelvjarasra, mint a szabvany CCS kodot. Legfeljebb csinalsz mindenhez 1-1 headert, es hordozhato a kodod. Mondjuk A CCS meg sokkal jobb mint a MikroC. Annak elvarazsolt libjei vannak. Be van betonozva minden es nem lehet rajta valtoztatni. En egy mini webszerveren szivtam egy ideig a MikroC-vel.
Csa Vili
(#) mps hozzászólása Jan 9, 2011 /
 
Sziasztok! Most a következő a gondom: Ha main-ba benne van az if, akkor nem működik a progi. (Amúgy csak az volt a célom, hogy számoljon szépen, ez így most működik is.) Folyamatosan a hallo van kiírva. A másik bajom a printf függvénnyel van. Csak így tudtam megoldani, hogy törölje az előző kiírást. Szerettem volna a második sorba is írni, de az sem ment. Nem értem ezt a függvényt igazán, és nem is találtam olyan leírást ami olyan ovis nyelven leírná. Próbáltam a \f-et bele tenni, de akkor nem írt semmit, és a \n re sem, maradt mindkettőnél egy üres képernyő.Köszi előre is, és a türelmeteket is! (Ahogy elnézem minél jobban bele merülök annál inkább nem tudok semmit )

p690.c
    
(#) mps válasza mps hozzászólására (») Jan 9, 2011 /
 
És még egy: nem számol csak 255ig. Az int32 kicsit több lenne, ha jól értelmezem. De ezek szerint valamit mégsem jól.
(#) MPi-c válasza mps hozzászólására (») Jan 9, 2011 /
 
Kérdéssel válaszolok a kérdésedre:
Vajon mit jelent a printf-ben %u ?
(#) El_Pinyo válasza mps hozzászólására (») Jan 9, 2011 / 1
 
Szia!
Én elég régen használtam a CCS-C fordítót, akkor sem sokáig, úgyhogy ennek fényében tekintsd válaszaimat.
A jel változó a fordító által kioptimalizálásra kerül, megoldás: volatile kulcsszó használata a változó deklarálásakor (vagy ennek megfelelő ccs kulcsszó, beállítás).
Az int32-es értékadásnál talán kell a kasztolás (explicit típuskonverzió), bár ebben nem vagyok teljesen biztos.
A printf-es függvényeket én annak idején sem használtam (zabálják a memóriát), úgyhogy ahhoz nem tudok hozzászólni.
(#) mps válasza MPi-c hozzászólására (») Jan 9, 2011 /
 
Nos, ezt sikerült nagyjából kiderítenem, ez egy előjel nélküli szám lenne, innen szedtem, ezután raktam be a: \f-et majd a \n-t. No, ez nem működött!
(#) MPi-c válasza mps hozzászólására (») Jan 9, 2011 /
 
Most csak a %u-ról volt szó, a többit ne keverjük ide. Az is jó amit néztél, de ott a táblázatban azt is oda írták, hogy "az argumentum típusa". Talán az jelent is valamit!
(#) mps válasza MPi-c hozzászólására (») Jan 9, 2011 /
 
Igen, ezt végig is gondoltam mikor olvastam a válaszod, hogy integer, tehát nem tud többet megjeleníteni. Szóval ez már dereng. Viszont a többit végigpróbálva mindig hibát ír, hogy nem megfelelő formátum.
(#) mps válasza El_Pinyo hozzászólására (») Jan 9, 2011 /
 
Nagyon szépen köszönöm, az if működik
(#) mps válasza mps hozzászólására (») Jan 9, 2011 /
 
Tehát átalakítom stringé, és úgy írom ki?
(#) MPi-c válasza mps hozzászólására (») Jan 9, 2011 / 1
 
Ha dereng, akkor OK! Szóval int típusú, ami CCS-ben 8 bit, tehát 255-nél nem lesz több! Nézd meg a CCS Reference Manual-t a"DATA DEFINITIONS" résznél felsorolja az adattípusokat! Ott van egy kis táblázatban, hogy az int32 -őt "c standard" típusban long-nak nevezik. Most nézd meg a printf függvénynél mit ír a konverziós karaktereknél! Az kell neked, ahol szintén szerepel a long!
(#) p_istvan válasza mps hozzászólására (») Jan 9, 2011 /
 
Persze ha a CCS saját dokumentációját vagy helpjét néznéd talán előbbre lennél...
"Longs in the printf may be 16 or 32 bit."
Lu --> Long unsigned int
Közben megelőztek....

CCS_help.png
    
(#) mps válasza MPi-c hozzászólására (») Jan 9, 2011 /
 
Tehát: Lu!
Köszi szépen! Azt pedig különösen, hogy nem egyből ezt írtad, ez a rávezetős módszer sokkal jobb, szerintem

Közben Te is engem, kicsit lassan írtam, vagyis ki is próbáltam...
(#) MPi-c válasza mps hozzászólására (») Jan 9, 2011 /
 
OK! Tehát a lényeg: fejlesztéskor legyen kéznél a PIC adatlapja, a fordító leírása, és egy c könyv
(#) mps válasza MPi-c hozzászólására (») Jan 9, 2011 /
 
Kettő itt volt, a helpet meg mindig elfelejtem. Igaz a cavintont is felíratni ha megyek a dokihoz
(#) trudnai válasza mps hozzászólására (») Jan 9, 2011 /
 
a '+1' helyett vagy irj '+1L' -t, vagy pedig az egeszet csereldd le '++' operatorosra.

Azonkivul a jel es kijel_ertek valtozoknak volatile-oknak kellene lenniuk szerintem -- akkor valoszinuleg mukodne az if-ed.
(#) vilmosd válasza mps hozzászólására (») Jan 10, 2011 /
 
Hali
Itt talalsz (talatok) egy nem egeszen uj iromanyt a CCS team-tol. Erdemes atbogaraszni, mert sok rejtelyrol lerantja a leplet. Benne vannak az adattipusok, struct, union, a programiras trukkjei, es meg sok egyeb. Bongesszetek, es ami tetszik "Levele".
(#) mps hozzászólása Jan 10, 2011 /
 
Szervusztok! Most csak egy pici megerősítést, vagy az ellenkezőjét kérném. Csináltam "stoppert". Prell gondom volt, megoldottam, csak nem tudom mennyire korrekt. Köszi előre is! Szép napot!

p690.c
    
Következő: »»   48 / 118
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