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   37 / 118
(#) vicsys válasza pepe33 hozzászólására (») Máj 17, 2010 /
 
Nem a kapcsolásodban van a hiba? Tehetnél be egy rajzot.
(#) pepe33 válasza vicsys hozzászólására (») Máj 17, 2010 /
 
Egy kis adapterkártyát készítettem, amit fejlesztőpenelemhez tudok kötni.
18F4520- al probálgattam utoljára, C5,C4,C3 lábakra kötve.
(#) Jossz válasza pepe33 hozzászólására (») Máj 17, 2010 /
 
Bár az én kártyám még gyártási szakaszban van, egy nagy csomó kész kapcsolást néztem át és az alapján a csatolt módon terveztem meg a foglalat bekötését. Elvileg ennek így működnie kell. Én ebben az esetben az RB4,RB5,RB6,RB7 lábakat használom.
(#) pepe33 válasza pepe33 hozzászólására (») Máj 17, 2010 /
 
Pillanatnyilag ezt a kódot próbálom életre kelteni, a CCS fórumon található ez eredetije.
Igazából csak a portokat írtam át meg a PIC típusát.

Csatolom a projektet, hátha valaki meg tudja mondani, mi lehet a gond.

Már a kártya inicializálásánál probléma van.
Ahogy néztem a response értéknek 0 nak kellene lenni a sikeres inicilizációhoz. Sajnos nálam ez SD kártya esetén C0, MMC esetén FF.

Egyelőre nem tudok rájönni mi probléma oka.
A kártyát DOS ablakból formáztam meg a következő paranccsal:
format I: /A:512 /V:KARTYA /FS:FAT32
(#) pepe33 válasza pepe33 hozzászólására (») Máj 30, 2010 /
 
Sikerült megoldani a kártya inicializálását, de sajnos a DIR parancsnál hibát ad vissza a program.
Pedig a PK2-vel debug módban már látom a mappa és file neveket, amik a kártyán vannak.
Megpróbáltam egy append parancsot is, de még az a tartalom is elromlik a fileban ami, benne volt.
(#) mazso1988 hozzászólása Jún 16, 2010 /
 
Sziasztok

Szeretnék egy pici segítséget kérni.
Szeretnék beleilleszteni a meglévő programba, egy olyan sort hogy kb 30 másodpercenként irjon ki egy main függvényt, és utána térjen vissza a program az addigi alapképernyőre, majd ismét 30 másodperc múlva irja ki megint a main függvényt.
Tudna valaki segíteni hogy mit kell ilyenkor a programba beleirni.
(#) whalaky válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
Megbocsáss, de szerintem ezt rajtad kívül nem sokan értik......
hogy is kell kiírni egy main függvényt, és mi az az alapképernyő?
(#) mazso1988 válasza whalaky hozzászólására (») Jún 16, 2010 /
 
Bocsi lehet hogy kicsit hülyén fogalmaztam,

van egy C-ben irt program ami alap esetben folyamatosan az LCD-n az időt jeleníti meg!
én irtam bele pluszba egy sort ami induláskor a készülék nevét irja ki,
azt szeretném elérni hogy ezt a sort ne csak induláskor irja ki a PIC hanem kb 30 másodpercenként váltson képernyőt az idő kiirás és az indulási képernyő között.
(#) vilmosd válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
Hali
Hat ez igy bizony keves info. Ismerni kellene az altalad irt programot, hogy erdemben tudjunk segiteni. Azert lehet pl figyelni a "sec" valtozot, es ha "0" vagy "30" kiirod a copyright-ot.
Udv Vili
(#) mazso1988 válasza vilmosd hozzászólására (») Jún 16, 2010 /
 
Magát a programot nem én irtam hanem Topi fórumtárs

én csak saját részre szeretném ennyiban módosítani az eredeti forrást,
igazábol Topi engedélye nélkül nem is akartam feltölteni a forrást, de mivel láttam hogy az időkapcsolós topicban márt fent van azért gondolom nem lesz leharapva a fejem érte ha ide most felrakom.

main.c
    
(#) vicsys válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
vilmosd már jól leírta. Van a sec nevű változód. Ha az 0 vagy 30 értékű akkor kiíratás. Ennyi. Ha gondolod választhatsz más értékeket is....
(#) vilmosd válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
Hali
Kb igy kellene :
  1. void dsp_cpyrgt (void)
  2. {
  3.         printf(lcd_putc,"\f4 csatornas\nIdokapcsolo")
  4. }
  5.         //===========================================================================
  6. void ReWriteLCD() {
  7. //===========================================================================
  8. int16 v;
  9. int p,s;
  10.    //LCD-n lévő adatok újra írása
  11.    //nem forban van, hogy ne villogjon, és ne dolgozzon a proci
  12.    if(prog_hour_set || prog_min_set || prog_wday_set || prog_output_set || prog_num_set) {
  13.       //ha bármi prog set is van, azt kell megjeleníteni
  14.       dispProg();
  15.    } else {
  16.       if(P1_Timer && (ActDisp == 1)) {
  17.          printf(lcd_putc,"\f");
  18.          printf(lcd_putc,"Auto. vissza:   ");
  19.          lcd_gotoxy(1,2);
  20.          v = P1_Timer/2;
  21.          p = v/60;
  22.          s = v%60;
  23.          printf(lcd_putc,"  %02u:%02u mulva",p,s);
  24.       }
  25.       else
  26.       {
  27.         if (time.sec==0 || time.sec==30) dsp_cpyrgt();
  28.         else dispClock();
  29.           }
  30.    }
  31. }

Udv Vili
(#) mazso1988 válasza vilmosd hozzászólására (») Jún 16, 2010 /
 
Köszönöm

megpróbáltam ahogy mutattad de sajnos mikor leakarom fordítani hibát ad a fordító.

{} jeleknél irja a hibát
(#) potyo válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
És pontosan mit ír?
(#) mazso1988 válasza vilmosd hozzászólására (») Jún 16, 2010 /
 
Próbálgattam közben és ilyen formában lefordult hiba nélkül a kód:

//==================================================
void dsp_cpyrgt (void)
{
lcd_gotoxy(3,1); lcd_putc("4 csatornas");
lcd_gotoxy(3,2); lcd_putc("Idokapcsolo");
}

viszont nem jeleníti meg a szöveget maradt továbbra is az alapképernyő.
(#) mazso1988 válasza potyo hozzászólására (») Jún 16, 2010 /
 
Hibát konkrétan nem ír.

void dsp_cpyrgt (void)
{
printf(lcd_putc,"\f4 csatornas\nIdokapcsolo")
}

ha így akarom fordítani akkor csak fordítás után villog a kurzor.
} itt ennél a jelzi a hibát!

én PIC C Compillert használok
(#) vilmosd válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
Hali
Azert nem fordult le mert a printf(... sor vegerol lehagytam a semicolont (.
Probald meg igy.
Udv Vili
(#) mazso1988 válasza vilmosd hozzászólására (») Jún 16, 2010 /
 
Köszi
így már lefordult meg is próbáltam de sajnos magát a szöveget nem irja ki az LCD-re.
(#) vilmosd válasza mazso1988 hozzászólására (») Jún 16, 2010 /
 
Hali
Lehet hogy rovid az ido es nem latszik a kiiras, mert rogton felulirja. Jobban bele kellene melyedni a programba. Probald ki a fvenyt a main elejen, ahol kiirta eredetileg a ket sort.
Udv Vili
(#) atideath válasza mazso1988 hozzászólására (») Júl 1, 2010 /
 
Miért nem teszel bele egy Timer megszakítást? Így ha a megadott idő van megszakítod, kiírod, delay-el kicsit vársz és utána fut tovább a program. Szerintem ez a legjobb megoldás. De lehet én tévedek.
(#) mazso1988 válasza atideath hozzászólására (») Júl 1, 2010 /
 
köszi

sajnos annyira nagyon azért nem vagyok profi Pices de majd próbálkozom még vele!

igazából úgy gondoltam az elején még hogy mindig irja ki ezt a sort, és mikor bármely gomb lenyomásra került akkor váltson át az alapképernyőre melyen az időt jeleníti meg és mikor letelt az idő ujra váltson át.
(#) edison14 hozzászólása Júl 1, 2010 /
 
Hali.

Most kezdtem foglalkozni PIC processzorokkal és már írtam egy-két villogtatós programot. De meg tudná nekem valaki mondani hogy a portokat hogyan lehet beállítani? A TRIS és LAT parancsokat megpróbáltam de hibát ír ki rájuk.

A segítséget köszönöm.
(#) blockshears válasza edison14 hozzászólására (») Júl 1, 2010 /
 
A CCS Reference Manual (a telepítés tartalmazza és az MPLAB-ből is behívható) pontosan leírja az I/O portok kezelését. Ez CCS-ben alapból nem úgy történik mint más, pl. MC18, Hi-Tech fordítóknál (szerintem az utóbbaik megoldása az egyértelműbb), de megoldható ez a módszer is. Olvasd el Topi "Nullától a robotokig..." és deguss "PIC programozás C nyelven - CCS" cikkeit!
(#) edison14 válasza blockshears hozzászólására (») Júl 1, 2010 /
 
Helló!

Elolvastam a cikkeket és azt vettem ki belőle hogy a CCS C fordító egyszerű mindent meg lehet benne írni a HI-TECH C (PICC) ez profiknak való de sokkal jobban lehet benne a portokat kezelni.
Még azt szedtem ki, hogy a CCS C-nél a portokat automatikusan állítja be a program de ha a #FAST_IO parancsot alkalmazom akkor be kell állítanom a TRIS-eket. A PICC-nél pedig a felhasználónak kell beállítania, hogy melyik portokat hogyan akar kezelni.
Ezek szerint a PICC fejlesztőkörnyezet az amely a felhasználó beállításitól nagyon függ és a CCS C amely egyszerű és hobbi célokra megfelelő. Azt hiszem hogy meg is kaptam a választ. De akkor most melyik fordítót használjam inkább?

Ha esetleg valamit rosszul írtam vagy nem így van javítsatok ki. És kösz a segítséget.
(#) vicsys válasza edison14 hozzászólására (») Júl 1, 2010 /
 
CCs C-ben működik a tris...
Itt van 1-2 minta, ami szerepel a user manualban is:
Port b-re egy érték
  1. OUTPUT_B(0xf0);

bitenkénti meghatározás:
  1. output_bit( PIN_B0, 0);
  2. // output_low(pin_B0);
Illetve (de gondolom ezt már tudod) működik az output_
high
low
toggle
float, is... Szerintem töltsd le a felhasználói könyvet.
(Azért írtam ide, mert megvádoltak minket azzal, hogy mi soha sem segítünk, csak leugatunk mindenkit)
(#) edison14 válasza vicsys hozzászólására (») Júl 1, 2010 /
 
Az elugatást és nem segítséget hülyeségnek tartom.
Nagyon sokat segítetek mindenkinek és minden felhasználó szerintem azon van hogy másnak is segítsen.


Nos visszatérve a tárgyhoz ha a portot bemenetnek akarom megválasztani és a belső felhúzó ellenállást szeretném használni azt hogyan állítsam be?
(#) vicsys válasza edison14 hozzászólására (») Júl 1, 2010 /
 
  1. port_a_pullups(true); //felhúzó az A porton bekapcs

A TRIS-nél:
ami 0 (nulla) az output, ami pedig 1 az input. Hajaz a kezdőbetű arra, hogy minek állítottad be.
  1. SET_TRIS_B( 0x0F ); //vagy
  2. SET_TRIS_B(0b00001111); //mert ez látványosabb de ugyanaz
(#) edison14 válasza vicsys hozzászólására (») Júl 1, 2010 /
 
Valamiért a felhúzó ellenállások beállítása nem megy.
'Undefined identifier port_d_pullups' errort ír ki.
(#) potyo válasza edison14 hozzászólására (») Júl 1, 2010 /
 
Talán mert a D porton nincsenek is felhúzók?
(#) edison14 válasza potyo hozzászólására (») Júl 1, 2010 /
 
Ez igaz csak a B porton vannak felhúzóellenállások.
Következő: »»   37 / 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