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   64 / 118
(#) MPi-c válasza potyo hozzászólására (») Szept 25, 2011 /
 
Szoktam volt rád hallgatni, kerülgetem is, de azért néha előveszem, hogy aztán újra félretegyem...
(#) szuperman válasza MPi-c hozzászólására (») Szept 25, 2011 /
 
Köszi a segítséget. Viszont nem tudom ccs ben ,hogy lehet beállítani a megfelelő bitet. Le tudnád esetleg írni ,hogy lehet beállítani a megfelelő bitet?

Előre is köszi!
(#) potyo válasza szuperman hozzászólására (») Szept 25, 2011 /
 
A kulcsszó, ami neked kell: #fuses. Erre keress rá a súgójában. Vagy a 12F629.h fájlban is megtalálod a listát a lehetséges konfigbitekről.
(#) szuperman válasza potyo hozzászólására (») Szept 25, 2011 /
 
Röstellem ,de nem igazán tudom értelmezni amit a súgó mondd,

Esetleg ez lenne a megoldás?
#FUSES 1 = 0xC200
(#) szuperman hozzászólása Szept 25, 2011 /
 
Valaki segítsen!

Hogy lehet ccs -ben beállítani a 2007h konfig bit alső 3 bitsét 100 -ra?
(#) potyo válasza szuperman hozzászólására (») Szept 25, 2011 /
 
(#) szuperman válasza potyo hozzászólására (») Szept 26, 2011 /
 
Ha biírom ,hogy :
#fuses INTRC_IO //Internal RC Osc, no CLKOUT

Akkor egyáltalán el sem indul a PIC programja. Mit kell még megadni??
(#) icserny válasza szuperman hozzászólására (») Szept 26, 2011 /
 
Miért nem használod a Project Wizardot a beállításokhoz?

Nekem nincs CCS C telepítve, de egy leírásban azt olvastam, hogy a View menüben előcsalogatható a kiválasztott mikrovezérlő típushoz használható érvényes FUSE kulcsszavak. Lehetséges pl. hogy az INTRC_IO helyett mást kell írni (pl. RC). Nézz körül!
(#) szuperman hozzászólása Szept 26, 2011 /
 
Köszi szépen!

Sikerült megtalálnom a megfelelő beállítást. Bár ebbe a wizard -ban sem enged rengeteg dolgot beállítani ezen a PIC en. Érdekes....
(#) MPi-c válasza szuperman hozzászólására (») Szept 26, 2011 /
 
Idézet:
„Bár ebbe a wizard -ban sem enged rengeteg dolgot beállítani ezen a PIC en. Érdekes....”

Pont azért, mert ezen a PIC-en nincs más beállítható...
Most már fut is?

Idézet:
„Valaki el tudná magyarázni ,hogy működik a rand() fv.?”

Gondolom a használatára gondoltál.
Szintén a súgóban le van írva, egy szótár vagy egy fordító sokat segít (Más is így csinálja...).
A lényeg, hogy a stdlib.h-t be kell includolni. A függvény 0 és a RAND_MAX közötti int16 értékkel tér vissza. A RAND_MAX a stdlib.h-ban van definiálva 32767-nek. A stdlib.h includolása előtt beállíthatod a RAND_MAX értéket magad is.
(#) Doncso hozzászólása Okt 5, 2011 /
 
Itt folytatnám akkor. Annyit kérdeznék, hogy ha rosszul konfigoltam az oszcillátort, van mód rá, hogy átírjam a konfigurációt, vagy készítsek egy új projektet?
(#) vicsys válasza Doncso hozzászólására (») Okt 5, 2011 /
 
Nyugodtan átírhatod.
(#) Doncso válasza vicsys hozzászólására (») Okt 5, 2011 /
 
De ezt hogyan tudom megtenni? Próbáltam úgy, hogy a mappa ikonra kattintva a "Recent files" fül alatt megtalált main2.h-file-t megnyitottam, megjelent a programom mellett, itt átírtam az XT-t HS-re majd Build-all, jól csináltam? Bocs a sok hüle kérdésért, de ez most nagyon új nekem.
(#) vicsys válasza Doncso hozzászólására (») Okt 5, 2011 /
 
Ha jól értem, akkor jól.
(#) Doncso válasza vicsys hozzászólására (») Okt 5, 2011 /
 
Megcsináltam, de valahogy a belső oszcit használja, mert bár fut a programom, de ha kihuzom a kvarcot, akkor is fut, fene enné meg, nem értem :S Majd csak rájövök.
(#) vicsys válasza Doncso hozzászólására (») Okt 5, 2011 /
 
Ezt írd át:
  1. #FUSES FCMEN //Fail-safe clock monitor enabled

erre:
  1. #FUSES NOFCMEN  //Fail-safe clock monitor disabled

Illetve ez elé tegyél 2 db. per jelet így:
  1. //setup_oscillator(OSC_8MHZ|OSC_INTRC|OSC_31250|OSC_PLL_OFF);
(#) Doncso válasza vicsys hozzászólására (») Okt 5, 2011 /
 
Ennek a miértjét sejtem, ez a beállítás ugye arra vonatkozik, hogy ha nem megy a külső oszci akkor a belsőt használja, ezt kellene kikapcsolnom?
(#) vicsys válasza Doncso hozzászólására (») Okt 5, 2011 /
 
A Fail-safe clock monitor akkor kapcsol be, ha valami miatt leállna a külső oszci.
A setup oscillatorban az OSC_INTRC meg a belső oszcillátorra vonatkozik.
Azt mond meg: jó lett?
(#) Doncso válasza vicsys hozzászólására (») Okt 5, 2011 /
 
Ez az! Kiveszem a kvarcot, és megáll, visszadugom, megy tovább. Működik. Mit rontottam el eddig? A Fail-safe-t értem, de mi történt akkor amikor két perjelet tettem a setup_oscillation elé?
(#) trudnai válasza Doncso hozzászólására (») Okt 6, 2011 /
 
Idézet:
„mi történt akkor amikor két perjelet tettem a setup_oscillation elé?”


Kikommentezed -- azaz hatastalanna tetted azt a kodreszletet...
(#) Doncso válasza trudnai hozzászólására (») Okt 6, 2011 /
 
Vagyis teljesen kikapcsoltam a belső oszcit?
(#) vicsys válasza Doncso hozzászólására (») Okt 6, 2011 /
 
Igen. Vagy a belsőt, vagy a külsőt használod- ennél a felállásnál.
(#) Doncso válasza vicsys hozzászólására (») Okt 6, 2011 /
 
Értem, akkor köszönöm nektek a kiigazítást, folytatom az okosodást.
(#) levi18 hozzászólása Okt 7, 2011 /
 
Sziasztok!
Valakinek van tapasztalata a CCS-ben az "addressmod" használatával? Ez egy olyan lehetőség, hogy egy külső területen létrehozhatunk és tárolhatunk változókat, de nem tudom működésre bírni. Nekem egy AT45db161D dataflash lenne a külső adatterület. Az író és olvasófüggvényei úgy vannak megírva, hogy lineáris a címzése. A problémám pedig az, hogy, ha létrehozok egy változót, akkor azt nem arra területre hozza létre, hanem ugyanúgy a belső RAM területre. Ezt úgy ellenőriztem, hogy létre akartam hozni egy 15000 elemű tömböt és nyavajog a fordító, hogy nincs elég RAM terület. Tehát, ha működne, akkor nem kellene szólnia, mert a dataflash-ben 2Mbyte elfér. A dataflash függvényei egyébként tökéletesen működnek mert 1000 bájtot beírva és visszaolvasva ugyanazokat az eredményeket kapom. De a CCS manualja szerint létrehozhatunk az addressmoddal a külső területen tömböket, struktúrákat, stb.
Szóval más is találkozott már ilyen problémával?
A processzor egyébként PIC24FJ128GA010.
Köszönöm.
(#) jani87 hozzászólása Okt 9, 2011 /
 
Sziasztok!
Építek egy DMX adó áramkört, ahol 24 csatornát lehet vezérelni külön-külön egyesével, vagy csoportosítva, vagy az összeset egyszerre. Ezenkívül az áramkör képes előre beállított csatornaértékeket is előhívni. Egy LCD kijelzőn jelennek meg az adatok, készen van a komplett menürendszer, működik minden. Gombnyomásra vagy a poti tekerésével változnak az értékek, a DMX adatkeret felépítésével is tisztában vagyok, de magának a kommunikációnak a megvalósításánál elakadtam. Az elképzelésem az lenne, hogy egy bufferbe sorban beírom az adatokat, és amikor az megtelt, a program kiküldi az adatkeretet.
A kérdésem az lenne, hogy hogyan lehetne előállítani az EUSART-hoz 250k baud rate-et, és hogyan lehet leprogramozni az adatküldést. CCS fórumot nézegettem, de nem lettem okosabb. Egyébként 18F4620-as PIC-et használok 20 MHz-es kvarccal.
Segítségeteket köszönöm!
(#) kissi válasza jani87 hozzászólására (») Okt 9, 2011 /
 
A sebesség számolásához ajánlom az adatlap 207.oldalát, a leprogramozáshoz pedig a környezetét. Ha egy pufferba töltesz és onnan írsz ki, akkor a mutatóként használd valamelyik FSR regisztert ( assemblyben ). C-ben pedig ugyanígy, mutató segítségével, a megfelelő adóregiszterbe betöltve.
Steve
(#) kukac_24 hozzászólása Okt 13, 2011 /
 
Halihó,
Jelenleg MPLAB IDE alatt használom a CCS C forditót. Szerintetek az MPLAB X alatt is lehetne használni?
(#) szuperman hozzászólása Okt 16, 2011 /
 
Helló mindenki!

Egy elég egyszerű problémám van. Szeretnék egy ellenállást megmérni PIC -el. Csináltam egy fesz osztót rákötöttem az A0 lábra. Szeretném beolvasni a fesz értéket ,de nem történik semmi. (PIC16F877)
Csináltam egy ilyet:
setup_adc_ports(AN0);
output_b(read_adc());

Mit kellene még tennem ,hogy megjelenjen az érték a RB porton?

Előre is köszi!
(#) sysy válasza szuperman hozzászólására (») Okt 16, 2011 /
 
Be kell állítani az ADC órajelét setup_adc (mode);
Én a belső RC órát ajánlanám, az minden kvarcal kompatibilis
Utána ki kell választani a mérendő channel-t set_adc_channel(0);
Utána elindítani a mérést read_adc(adc_start_only);
Megvárni, amíg befejezi while(ADC_godone);
(persze az ADC_godone bitet először valahol a program elején deklarálni kell, hogy megtalálja. Használd a #byte és a #bit preprocesszor direktívákat. Segítségül:
#byte ADCON0 = 0x1F
#bit ADC_godone = ADCON0.2)
Ha ezen túljutott a program, akkor ki lehet olvasi az ADC mérés erdményét.
PORTB=read_adc(adc_read_only);
Persze a PORTB-t is a #byte direktívával kell ismerté tenni a fordító számára.
És voila meg is van a dolog.
A while(ADC_godone) vizsgálat helyett meg is várhatod, amíg befejezi a konverziót, (bár az előbbi elegánsabb) aminek az idejét a 16F877 leírásából lehet kiolvasni az Electrical Characteristics fejezet alatt a TABLE 15-13: A/D CONVERSION REQUIREMENTS táblázatból. Ez azt írja, hogy 12 ADC órajel alatt megcsinálja a konverziót (Tad= 4us*12) ami azt jelenti, hogy egy kis ráhagyással
delay_us(60); utasítással is lehet operálni.
Persze, ez mind benne van a helpben is, szinte szó szerint.
Tessék beszerezni a CCS honlapjáról a Reference Manual-t. 2011 july 11 dátummal ott van a legfrissebb.
Persze így könnyebb, mert nem kell bellelapozni a doksikba.


(#) szuperman válasza sysy hozzászólására (») Okt 16, 2011 /
 
Nagyon szépen köszönöm!
Következő: »»   64 / 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