Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Szia!
Ha az MPLAB-ban kiválasztod a PIC-et, akkor is írja ...! Steve A hozzászólás módosítva: Dec 23, 2012
Azt nem írja, hogy kell-e hozzá header vagy nem.
Szia!
Szerinted itt mire gondol ?! Kellemes ünnepeket ! Steve Nem kell minden mondat végén 2 enter, úgy is érthető. --moderator A hozzászólás módosítva: Dec 24, 2012
Köszönöm, neked is kellemes ünnepeket kívánok. Megértem ám kioktató animáció nélkül is
Amúgy köszönöm valóban elkerülte a figyelmemet ezen kicsi ablak tartalma.
Van arra lehetőség (és melyik típusoknál), hogy a PIC User IDs-ét átírjam, szoftverből? Jó lenne nyomon követnem a verzió változataimat.
Sajnos, valami gubanc van. Nagyon nem szereti...
Milyen PIC-el próbálod és mi a probléma?
szerk.: Most nézem, hogy a CCS topicban vagyunk én az asm-hez írtam ( látszik a kép fejlécén!)! Steve A hozzászólás módosítva: Dec 31, 2012
PIC18F452 volt kéznél. Expecting an opcode mnemonic __idlocs
Végül is találtam megoldást. (automatikus idő/dátum bélyegző)
A main.h-ban:
és az ellenőrzés:
Működik, teszteltem. Az elv alapján akár automatikus verzió számláló is írható. A hozzászólás módosítva: Dec 31, 2012
Üdv!
Szeretném ha valaki elmagyarázná és jópár egyszerűbb mintakódot is küldene beérkező jelek feldolgozására, kibocsájtására. Arra gondolok, hogy hogyan lehet pl 1) egy érkező frekvenciatartományt integer számokká átalakítani, hogy tovább dolgozni lehessen vele vagy 2) egy távirányítótól érkező jeleket feldolgozni vagy küldeni 3) szenzoroktól érkező digitális jelet, stb. Érdekelne a kód felépítése, hogy mik az alaplépések de mivel vizuális típus vagyok ezért még jobban örülnék pár mintakódnak. Igazából arra sem jöttem rá, hogy milyen kulcsszóval kéne keresgéljek. Nagyon szépen köszönöm előre is. Szép napot!
A feltelepitett CCS C tartalmaz egy nagy marok mintapeldat. Mire vegigprobalod oket mar tudhatsz mindent.
Helló!
16f676-ot szeretnék használni belső osszcillátorral, de nem sok sikerrel... Pic wizard alatt ugyan kiválasztom a belsőt, de lejjebb a konfigjánál már nem lehet bekapcsolni sem... Külsővel működik szépen. Véletlenül 16f677-et választottam ki és úgy be lehetett kapcsolni 4MHz-re a belsőt. Úgy el is indult egy szimpla "hello world" jellegű led villogtatás, de pl soros kommunikáció meg az adc már nem akar működni 4.104-em van, lehet kellene valami újabb verzó?
Kódrészlet?
Egyébként a 16F676-ban nem lehet szoftveresen be/ki kapcsolgatni a belső oscillátort. (ha jól tudom) Ezért a wizard sem engedi pöcögtetni a nemlétező bitet. Ezt a FUSES bitekkel egyértelműen beállítod és megy, de csak 4MHz-en, nincs választási lehetőség itt sem.! #FUSES INTRC_IO //Internal RC Osc, no CLKOUT
Az user részen kívül mindent a wizard írt be, de már ez sem fut le! Külső kvarcra téve (és azt beforrasztva) megy csak. Viszont ha ezt (#include <16F676.h>) átírom 16F677.h-ra akkor működik! Csak hát az ugye nem a saját headerje ezért pl már az A/D-t nem kezeli jól... Letöltöttem a legfrissebb demót is (4.140) de azzal sem jó csak az előbbi trükkel. Bekapcsoltam a clockoutot is, de el sem indul a pic! Szkóp nem mutat semmi órajelet...
Lenne egy másik projektem is. Egy napelemes rendszernél kellene áramot és feszültséget mérnem, illetve ezeket ip alapon egy pc-n megjeleníteni. Minél egyszerűbbnek kellene lennie és a lehető legkisebb fogyasztásúnak. Mintavétel elég 1 percenként is akár, bár jobban tetszene, ha 1 perces mérések átlagát kérdezhetném le.
A kérdés az lenne, hogy melyik pic-et ajánlanátok, amit ccs-el kezelni is tudok és a lehető legkevesebb külső eszköz kelljen hozzá?
Ez a probléma meg is oldódott...
Csak egy kicsit gondolkodni kellett rajta és rájöttem, hogy elfelejtettem visszaírni a flash végére a kalibrációs értéket...
Szerintem bármelyik 18Fxxxx és fölötte tipus megteszi, aminek van 128k flash memóriája vagy több, 3-6kB RAM és legalább 8-10MIPS sebessége. Ha kényelmesen akarsz dolgozni, akkor veszel egy ilyen modulét vagy hasonlót
Bővebben: Link és az SPI buszon keresztül tudod vezérelni. Vagy egy 18F97J60 + MAGJACK kombó ami használható lehet. A Microchipnek és a CCS-nek is van TCP/IP stack programja ingyen letölthető, de inkább a Microchipest ajánlanám, mert a legújabb verzióba már sok szolgáltatás van belegyömöszölve. ARP, IP, ICMP, UDP, TCP, DHCP, SNMP, HTTP, FTP, TFTP stb. Ehhez meg Microsoft C fordító is kell, vagy szólsz valamelyik fórumtársnak, akik téglával verik a mellüket az ANSI C kód hordozhatóság oltárán és átírja neked CCS C nyelvre De elégé izzadságszagú lesz a project már most megmondom. Idézet: Pech, de a CCS C nem ANSI C, úgyhogy az átírásra ne várj nagy tolongást.„téglával verik a mellüket az ANSI C kód hordozhatóság oltárán és átírja neked CCS C nyelvre” Idézet: Ez azt jelenti, hogy a HiTech C-ben írt programot könnyű áttenni C18-ba, vagy C30-ba. „Mármint a Microchip (HiTech) C az ANSI.”
Rátapintottál a lényegre!
Én azt tekintem hordozható kódnak, hogy ha kiemelsz mondjuk egy szoftweres PWM függvényt egy linux kódból, átírod a portokat és lefut a lelkes amateur 10F202 MCU-ból felépített, LED villogtató hardwerén. (ennél egyszerűbb MCU nem jutott hirtelen eszembe) Manapság a kódot még C-ről C-re átírni is körülményes, hogy finoman fogalmazzak. A CCS-t (szerintem) azért használják sokan, mint például én is, mert eléggé elkényeztetnek a sok beépített függvényekkel. Sajnos, a kényelemnek meg ára van. Kicsit sárga, kicsit savanyú, de legalább ehhez értünk. Vagy legalábbis ezt hisszük. Én HiTech C-ről váltottam még 10+ évvel ezelőtt CCS-re, és egy kánaán volt a HiTech után. Alapvetően mindenki a kisebb ellenállás felé halad, mint tudjuk. De lassan elérkezik az idő és megint válthatok a C18 és C30 irányába, mert a kor lassan megköveteli. Mi a helyzet a Texas MCU-k és C fordítók terén? Ott csupa napfény és boldogság?
A lehető legegyszerűbb megoldást szeretném Nem kell több kapcsolatot lekezelni, nem akarok webszervert csinálni a pic-ből csak egyszerűen küldje el a mért értékeket egy (eepromban definiált) ip címre, akár udp-vel is. Bár snmp-nek jobban örülnék azért
Lassan 10 éve piceztem utoljára, azóta kicsit megújult a ccs is! Úgy gondolom már ez is elég jó kis kihívás újrakezdésként Idézet: Programja válogatja. Múltkor egy ATMega168-ra írt programot seperc alatt sikerült átírni MSP430-ra (Ethernet webszerver), anélkül, hogy az ATMEL MCU-kről bármi ismeretem volna. Működésre még ne sikerült bírni, mert az MSP430G2553-ban túl kevés a RAM (a duplája kellene...), de a kód 90 %-ban kompatibilisnek bizonyult (csak a fejléc állományok becsatolását meg az SPI kezelését kellett átírni)„Manapság a kódot még C-ről C-re átírni is körülményes, hogy finoman fogalmazzak.” Idézet: Microchip C18 és C30 tapasztalatokkal nem volt különösebb gondom ezekkel sem. „Mi a helyzet a Texas MCU-k és C fordítók terén?”
Helló mindenki!
Van egy PIC12F508 -asom. Szeretném használni benne a Timert ,de sehogy sem jön össze. Valaki ki tudna segíteni egy rövid ccs bemutatóval? (500ms -onként kellene meghívódnia) Előre is köszi! A hozzászólás módosítva: Jan 28, 2013
Pontosítsál egy kicsit. Minek kellene meghívódnia 500ms-onként, a Timernek? Vagy a Timer0-val akarsz időzíteni?
Konkrétan egy ledet akarnék 1/2Hz -en járatni.
Gondolom figyelmetlenség volt, az 500 ms az 2 Hz, nem 1/2 Hz. De hogy valami hasznosat is mondjak, ebben a PIC-ben csak egy 8 bites Timer0 modul van. A Timer0 rendelkezik egy előosztóval (prescaler) és egy TMR0 regiszterrel (szintén 8 bites), ezekkel lehet beállítani, hogy milyen időközönként történjen megszakítás.
A képlet elég egyszerű: t=((256-TMR0)*4*prescaler)/fosc, ahol az fosc az órajel frekvenciája, a prescaler pedig lehet 1,2,4,8,16,32,64,128,256. Innentől csak matek az egész. Viszont az 500 ms az jó nagy idő, ezt ha csak kizárólag a Timerrel akarod megcsinálni, akkor jó kicsi órajel kell hozzá. Másik lehetőség, hogy a Timerrel sokkal kisebb időzítést állítasz elő, és a megszakítás rutinban minden megszakításkor egy változó értékét növeled. Amikor ez a változó eléri a kívánt értéket, nullázod és ezzel párhuzamosan megváltoztatod a PIC azon lábának állapotát, amin a LED van.
A problémám az ,hogy a kódot, ami eddig jól bevált a PIC16Fxxx sorozaton a PIC12Fxxx sorzatnál le se fordul. Sajnos nem értem a hibaüzenetet. Egy példára lenne szükségem.
|
Bejelentkezés
Hirdetés |