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   26 / 118
(#) vicsys válasza Norberto hozzászólására (») Júl 17, 2009 /
 
Mostmár tényleg pihenek egy kicsit mert a borogatás helyett borozgatást olvastam...
(#) Jossz válasza vicsys hozzászólására (») Júl 17, 2009 /
 
Na, akkor én is mesélek, hogy mi volt ezen a forró héten nálam a csúcs... A jelenlegi projektben 3 db reed relé van a panelon. Általában olyanokat használok, amelyekben nincsen védő dióda és én rakom mellé. Elfeledtem, hogy a mostani beszerzésben az egyikből csak védődiódásat kaptam. És persze, hogy kötöttem be?? Na?? Naná, hogy forditva!! Persze mellette volt a külső dióda jól bekötve, de az ugye így annyi volt, mint halottnak a forró csók... Fél napig méregettem és nem értettem, miért akar a vezérlőtranyó tojást sütni... Már ott tartottam, hogy kétségbe vontam az Ohm törvényt, mikor eszembe jutott, hogy ez a relé más...Hát mit mondjak... Még jó, hogy van ez a meleg és rá lehet fogni a hülyeségemet...
(#) Seclusion hozzászólása Aug 3, 2009 /
 
Sziasztok!

Olyan kérdésem lenne, hogy külső EEPROM-ba, hogy tudok 255-nél nagyobb címre írni? Mert ahogy néztem az external eeprom fileait, abban csak 8bites címet lehet írni. De nekem 1024 van (24 LC 01)
Bármi segítséget előre köszönök!
(#) icserny válasza Seclusion hozzászólására (») Aug 3, 2009 / 1
 
1. Az adatlapok szerint a 24LC01 az 1 kbit, de 128x8 ites szervezésű, azaz 128 byte. Mivel bájtokat kell címezni, nincs gond...

2. A CCS C Drivers mappájában találsz példát nagyobb kapacitású (pl. 2408.c vagy 24128.c) EEPROM-ok kezelésére. A címzés ezekben -mérettől függően - 2 vagy 3 bájton történik.

Például 1 kbájtos EEPROM esetében:
  1. void write_ext_eeprom(long int address, BYTE data) {
  2.    while(!ext_eeprom_ready());
  3.    i2c_start();
  4.    i2c_write((0xa0|(BYTE)(address>>7))&0xfe);
  5.    i2c_write(address);
  6.    i2c_write(data);
  7.    i2c_stop();
  8. }


(#) Seclusion válasza icserny hozzászólására (») Aug 3, 2009 /
 
Nagyon szépen köszönöm a választ!
(#) vicsys hozzászólása Aug 10, 2009 /
 
Sziasztok!
Az lenne a kérdésem, hogy PCW esetén van lehetőség (utólagos) kód optimalizációra? Vagy esetleg ezt külön zokszó és felkérés nélkül végrahajtja fordításkor?
Illetve, már megint nem találom a microchip honlapján a paraméteres típusválasztót... Ha valaki megszánna egy linkkel, nagyon megköszönném!
(#) potyo válasza vicsys hozzászólására (») Aug 10, 2009 /
 
Szerintem amit fordításkor csinál, ott be is van fejezve a dolog.

Én is néztem, hogy eltűnt a főoldalról, de így elérhető: http://www.microchip.com/maps
(#) vicsys válasza potyo hozzászólására (») Aug 10, 2009 /
 
Nagyon szépen köszönöm!
Van lehetőség (akár külső szoftverrel) további tömörítésre-nyomaszkolásra? Vagy most nagy hülyeséget kérdeztem? Tudom, tudom, vegyek nagyobb típust... Ez most ellenkezik a vallásommal és sajnos pénzem sincs.
(#) potyo válasza vicsys hozzászólására (») Aug 10, 2009 /
 
Kétlem, hogy utólag lehetne bármit csinálni rajta. Mondjuk azt láttam, hogy a CCS az ún. procedural abstraction optimalizálást nem ismeri, így ha több helyen van ugyanolyan kódrészlet, akkor abból nem csinál egy fordítást, és több helyről hívja meg, hanem beépíti mindenhová külön. Volt olyan, hogy a programban több változóra volt LCD-re kiírandó adatok generálása, és nem fért bele a programmemóriába a kód. Azt csináltam, hogy egy függvénybe átemeltem az összeset, és csak a függvényt hívogattam paraméterekkel. Így már belefért. Szóval lehet a fordítónak is segíteni ilyesmivel.

De ha mondjuk printf vagy hasonlót használsz, akkor ne csodálkozz, hogy nem fér el...
(#) MPi-c válasza vicsys hozzászólására (») Aug 10, 2009 /
 
Szerintem is, ha az Optimization Level max High-ra van húzva, akkor nincs tovább.
Néhány programomat átírtam Hi-Tech-re és azok, bizony kisebbek lettek...
(#) vicsys válasza MPi-c hozzászólására (») Aug 10, 2009 /
 
Idézet:
„Optimization Level max High-ra van húzva”

Ezt hol tudom ellenőrizni?
@Potyo:
Igen, sajnos a sok printf tényleg zabál. Szét kellett vagdalnom a főprogimat is. Külön-külön include-olva viszont 10-20% spóroltam.
(#) MPi-c válasza vicsys hozzászólására (») Aug 10, 2009 /
 
Project -> Build Options...-> Project . A megnyíló ablakban CCS C Compiler fül, majd a Categories-nél Optimization...
(#) potyo válasza vicsys hozzászólására (») Aug 10, 2009 /
 
Hagyd ki a printf-et, és írj egy saját rutint rá, ha nem akarsz nagyobb memóriájú chipet venni...
(#) vicsys válasza MPi-c hozzászólására (») Aug 10, 2009 /
 
Köszi, de ezt nem találtam meg. Ugye nem az MPLAB-ban van?
(#) MPi-c válasza vicsys hozzászólására (») Aug 10, 2009 /
 
Idézet:
„Ugye nem az MPLAB-ban van?”

Dehogynem.

opti.png
    
(#) zsoltee0001 hozzászólása Aug 19, 2009 /
 
sziasztok

Nem tudja valaki miért hozza az MPLAB ezt a hibaüzenetet amikor a CCS compilert szeretném használni?
(#) zsoltee0001 válasza zsoltee0001 hozzászólására (») Aug 19, 2009 /
 
Még annyi, hogy a C-18 -nál is, ugyan az a helyzet.
(#) potyo válasza zsoltee0001 hozzászólására (») Aug 19, 2009 /
 
Szerintem elég egyértelmű a hibaüzenet. Vagy azt már beállítottad?
(#) zsoltee0001 válasza potyo hozzászólására (») Aug 19, 2009 /
 
szia
ha az elérési útra gondolsz, az rendbe van!
(#) kukac_24 hozzászólása Aug 25, 2009 /
 
Halihó,

Meg tudja mondani valaki, hogy Magyarországon milyen cég forgalmazza a CCS C compilert?

THX
(#) p_istvan válasza kukac_24 hozzászólására (») Aug 25, 2009 /
 
CCSC

Ahogy a nóta mondja: "Ma bármit kérhetsz, ha van rá pénzed!"

Kb 10 másodperc megtalálni a guglival...
(#) kukac_24 válasza p_istvan hozzászólására (») Aug 25, 2009 /
 
Kösz,
A Chipcad-et pont nem néztem
(#) toto hozzászólása Aug 27, 2009 /
 
Sziasztok!
PIC18F14K50-re próbálok programot írni CCS-ben, de egy egyszerű nyomógomb beolvasásán fennakadtam.
Kiollóztam az ide vonatkozó részt. Már leállítottam mindent ami bezavarhat, de mindig nullát olvas vissza.
A LED-ek külön működnek, azt kipróbáltam, sőt szoftveres SPI is megy (csak írás, ott nincs szükség olvasásra).

#use standard_io(ALL)
#int_AD
#define BUTTON1 PIN_C6
#define BUTTON2 PIN_C1
#define LED2 PIN_A4
#define LED3 PIN_C5
...
void main()
{
int1 button;
setup_adc_ports(NO_ANALOGS);
...
while(TRUE)
{
...
button=input(BUTTON2);
if (button==1) output_high(LED2);
button=input(BUTTON1);
if (button==1) output_high(LED3);
...

}
}

Egyszerűen nem akarnak a ledek kigyulladni, pedig a gombokat már izomból nyomkodtam. Már PIC-et is cseréltem, de nem javult.
Megnéztem a .lst file-ban, hogy mit fordít, ott jónak tűnt.
Mi lehet a baja, nem bírok rájönni?!
(#) potyo válasza toto hozzászólására (») Aug 27, 2009 /
 
Csatold az lst fájlt!


Szerk.: találtam valamit. De azért csatold már az előző lst fájlját is, kíváncsi vagyok rá.
(#) toto válasza potyo hozzászólására (») Aug 27, 2009 /
 
Itt a .lst file.

main.lst
    
(#) potyo válasza toto hozzászólására (») Aug 27, 2009 /
 
Az lesz, mint bladika-nál. Sehol sem állítja az ANSEL és ANSELH regisztert. Link
(#) toto válasza potyo hozzászólására (») Aug 27, 2009 /
 
Hoppá!
Most újat mondtál.
(próbáltam keresgélni a fórumban, mielőtt feltettem a kérdést, de nem voltam elég hatékony)
PIC16-ban nem voltak ilyen izék, ugye?
Mert ott ment ez az olvasás, itt pedig nem. Most térnék át PIC18-ra, de...
Köszi a segítséget, némi alvás után kipróbálom.
(#) potyo válasza toto hozzászólására (») Aug 27, 2009 /
 
Itt nem a PIC18-al volt a gond, hanem a CCS-el. Úgy néz ki, hogy konkrétan a 18F1xK50-nél van ez a probléma, hogy nem állítja be az ANSEL-t és ANSELH-t.
(#) toto válasza potyo hozzászólására (») Aug 27, 2009 /
 
Már másodszor járok úgy, hogy hamarabb válaszoltál, mint hogy a kérdést elküldtem volna.
Köszi még egyszer, az egész napom ráment és nem bírtam rájönni a hibára.
(#) potyo válasza toto hozzászólására (») Aug 27, 2009 /
 
Idézet:
„az egész napom ráment és nem bírtam rájönni a hibára.”


Pedig csak az adatlapot kellett volna elővenni és összehasonlítani azt, amit az adatlap szerint kell csinálni, és a .lst fájl tartalmát, amit a fordító gyártott...
Következő: »»   26 / 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