Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Mostmár tényleg pihenek egy kicsit mert a borogatás helyett borozgatást olvastam...
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...
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!
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:
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!
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
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.
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...
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... 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.
Project -> Build Options...-> Project . A megnyíló ablakban CCS C Compiler fül, majd a Categories-nél Optimization...
Hagyd ki a printf-et, és írj egy saját rutint rá, ha nem akarsz nagyobb memóriájú chipet venni...
Köszi, de ezt nem találtam meg. Ugye nem az MPLAB-ban van?
Idézet: „Ugye nem az MPLAB-ban van?” Dehogynem.
sziasztok
Nem tudja valaki miért hozza az MPLAB ezt a hibaüzenetet amikor a CCS compilert szeretném használni?
Még annyi, hogy a C-18 -nál is, ugyan az a helyzet.
Szerintem elég egyértelmű a hibaüzenet. Vagy azt már beállítottad?
szia
ha az elérési útra gondolsz, az rendbe van!
Halihó,
Meg tudja mondani valaki, hogy Magyarországon milyen cég forgalmazza a CCS C compilert? THX
CCSC
Ahogy a nóta mondja: "Ma bármit kérhetsz, ha van rá pénzed!" Kb 10 másodperc megtalálni a guglival...
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?!
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á.
Az lesz, mint bladika-nál. Sehol sem állítja az ANSEL és ANSELH regisztert. Link
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.
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. 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... |
Bejelentkezés
Hirdetés |