Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   279 / 1320
(#) trudnai válasza watt hozzászólására (») Szept 4, 2008 /
 
Bele drotoztak az EXE-be ott De figyi, szerintem rakeresel a neten, hogy "cpp.exe download windows" es biztos talalsz egy valaggal elore leforditva
(#) watt válasza trudnai hozzászólására (») Szept 4, 2008 /
 
Van egy a C32-ben is, de nem műkszik vele. Azért rákeresek egyre, ha az elegendő. Hogy fog együttműködni a fordítóval az előfordító? Nem látom át, hogy an működhet ez?

Rákerestem. Minden, csak nem egyértelmű találatok...
Ha rájöttél, hogy melyik lenne jó, és működik is nálad, akkor kérlek majd jelezd!
(#) kacsa hozzászólása Szept 4, 2008 /
 
Sziasztok!

Nem tejesen az aktuális témához kapcsolódó probléma, de számomra teljesen érthetetlen.
Írtam egy programot egy PIC16F877-re Ccs-C -ben mely egy RC szervo motort vezérel", ez tökéletesen sikerült is: a szervo szépen forgott oda ahova kellett. Ezek után átírtam a progit egy 16F628A-ra (ezzel szereném majd vezérelni valójában). De ezen az uC-n már nem ment minden olyan jól: a szervó "rángatva" fordul ill. sokszor mintha nem találná a helyét. Azért sem értem, hogy mi lehet a baj mivel a programon annyi változtatást csináltam, hogy átírtam a PIC nevét és a lábkiosztást.
Itt a progi:
Idézet:

#include <16F628A.h>
#zero_ram
#fuses HS, NOWDT,NOPROTECT,NOPUT,BROWNOUT,NOLVP
#define SERVO PIN_B3
#define LED PIN_A2
#use delay(clock=10240000)
int16 second; // sec
int16 period; // periodus
int16 dutycycle; // '1' -es jel hossza
int16 ms; //milisec
int16 qs; // 100 mikro sec (servohoz)
int16 us; //100 mikro sec
int16 min; // perc
int16 pc; // temp
enum inter { lowtohigh=0, hightolow=1 } allapot=hightolow;

#int_TIMER0
void TIMER0_isr() {


//*********** idő számlálás ************
us++;
qs++;
if (us==10) {ms++; us=0;pc++;}
if(ms==1000) {ms=0; second++;}
if(second==60){second=0;min++;}

//**************************************

//******* Szervo ****************

if((allapot==1 )&& (qs==(period - dutycycle))){
output_bit(SERVO,1);
allapot=0;
qs=0;}
if(allapot==0 && qs==dutycycle){
output_bit(SERVO,0);
allapot=1;
qs=0;}
} //*******************************


//****** Initcializálás **************-
void inits(){
output_toggle(LED); //LED kapcsolás
allapot =1; // "lent" kezdjük a szervó jelet
period=250; //periódus hossza
dutycycle=10; // high szint hossza
//********** Setup ***********-
set_tris_a(0x02); //A porton LED helye kimenet
set_tris_b(0); //B port kimenet
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); //TMR0 setup

//********* Megszakítés engedélyezések **************-

enable_interrupts(INT_TIMER0); //TMR0 megszakítás eng.
enable_interrupts(GLOBAL); //Global Interruptsot bekapcs
}


void main(){
inits(); //inits fv.
while(1){ // végtelen ciklus
if(pc==1000 ){ // 1000ms = 1s-enként váltja a szervó az irányát
pc=0;

if(dutycycle==20){
dutycycle=10;
}
else {
dutycycle=20;
}
output_toggle(PIN_A2); // minden váltásnál a LED is "vált"
}
}”


Előre is köszi a válaszoakt!
(#) zsimon válasza watt hozzászólására (») Szept 4, 2008 /
 
Na ezt meg én nem tudtam hogy makróban a paraméterrel lehet külön a linker-el matekolni...
Na ha ez működik akkor nagyon patent...
Hol találtad ezt leírva?
(#) zsimon válasza watt hozzászólására (») Szept 4, 2008 /
 
Nekem megvan a Full verzió ha érdekel...
(#) watt válasza zsimon hozzászólására (») Szept 4, 2008 /
 
Nem találtam ilyesmit(alig van példa a neten ASM-ban, minden C-ben van!), kipróbáltam és bejött.

Találtam egy szkópot, ami asm-ban van(dsPIC304011). Az include-olást tanultam belőle( .extern, külső rutin elérése *.inc fájlban), da van még néhány jó rész benne, csatoltam, hátha segítek vele.
(Full verzió miből? Lehet, hogy ezt privátban kéne...)
(#) trudnai válasza watt hozzászólására (») Szept 4, 2008 /
 
Szerintem legegyszerubb ha leszeded a gcc-t ill az egesz MinGW eszkozt a MinGW oldalrol. Probaltam kiherelni, vegulis a cpp.exe es a cc1.exe kellene hozza, de 1.8MB es igy nem szeretnem csatolni.
(#) szilva válasza watt hozzászólására (») Szept 4, 2008 /
 
Nyílván csonkol, hozzá kell adni 0.5-et a csonkolás előtt. Ha egészekkel számol, akkor meg ki kell számoltatni a 10-szeresét, ahhoz adni 5-öt és utána tizedelni. Elég gány, de így lehet a csonkolásból kerekítést csinálni.
(#) watt válasza szilva hozzászólására (») Szept 4, 2008 /
 
Értem, köszi, kipróbálom!
(#) szilva válasza watt hozzászólására (») Szept 5, 2008 /
 
Ha nem titok, hogy hol van az a szkóp, akkor beírnád az elérhetőségét? Kicsit megnézegetném, hogy hogyan is működik.
(#) watt válasza szilva hozzászólására (») Szept 5, 2008 /
 
Természetesen: - Íme -
(#) levii hozzászólása Szept 6, 2008 /
 
Sziasztok!
A következő problémával fordulok hozátok:
Építettem egy órát PIC16F628A-val és SN7448-al.
A PICbe a vicsys által közétett bináris óra programját égettem be.
Az óra méri az időt szóval működik valamennyire viszont a számokat pont fordítva írja ki mint ahogy kéne.
Szóval a hétszegmenses kijelzőkön 1 helyett egy "E" betűt lehet látni.
A képen az óra éppen azt akarja kiírni hogy 13:25 pont fordítva világítanak a szegmensek.

Mit lehetne vele tenni hogy normálisan jelezze az időt?

Válaszokat előre is köszönöm.

Üdv!
Levii

DSC01194.JPG
    
(#) Báddzsó válasza levii hozzászólására (») Szept 6, 2008 /
 
vagy átírni a pic progiját, hogy negálva küldje ki a a jeleit, vagy hardveresen negálni, pl tranyókkal, vagy más kijelzőt használni, tehát ha ezek közös katódosak akkor közös anódosokat.
bár a bináris órát i snagy kihívás egyeseknek leolvasni, hát ezt se sokkal könnyebb... maradjon így, csak te fogod tudni mennyi az idő
(#) watt válasza levii hozzászólására (») Szept 6, 2008 /
 
Mivel egy BCD dekódert használ a kapcsolás, ezért a programot nem tudod átírni. Marad az, hogy a megfelelő kijelzőket használsz, a jelenlegi nem megfelelők helyett. (nem tudom milyen kell, de az ellenkezője van most bennt. (anódos <-> katódos)
(#) levii válasza watt hozzászólására (») Szept 6, 2008 /
 
Köszi a választ neked is és báddzsónak is, közös anódos kijelzőket használok.
Valószínűleg akkor így marad.

Üdv!
(#) watt hozzászólása Szept 6, 2008 /
 
trudnai!
Neked sikerült már analog stimulust készíteni? (dsPIC30F2020 ADM30, nem tudom ez számít-e ezügyben)
(#) vicsys válasza levii hozzászólására (») Szept 6, 2008 /
 
Használj CD4543 meghajtót, ott ki lehet választani, hogy katódos vagy anódos a kijelződ.
(#) levii válasza vicsys hozzászólására (») Szept 6, 2008 /
 
Már én is néztem de ahhoz új nyák kéne ellenben a 7446 és a 7448 között csak az a különbség hogy anódos vagy katódos a lábkiosztásuk teljesen egyforma szóval szerintem ki lesz cserélve.
(#) Laller hozzászólása Szept 6, 2008 /
 
Bocsi az offért, megéri ezzel foglalkozni? A gyári cucc demo panellal, garanciával 5e+fa.
Ez az:
Bővebben: Link
(#) gyengus válasza Laller hozzászólására (») Szept 6, 2008 /
 
Nekem kb 2000 alatt jött ki Szilva klónja. Szerintem megéri, ha mást nem vésztartaléknak
(#) Mate78 hozzászólása Szept 6, 2008 /
 
Sziasztok

Lenne megint egy kérdésem:
ICD2 használatához a PGC,PGD lábakat (PORTB<6:7>) kimenetnek,vagy bemenetnek kell konfigurálni?

köszi.
(#) zsimon válasza Mate78 hozzászólására (») Szept 6, 2008 /
 
ICD2 használatához nem kell a lábakat konfigurálni, mert az ICD állapot olyan nulladig típusú állapot.

Semmi dolgod vele igazából. Rárakod az ICD-t betartva azt a pár dolgot amit ír a microchip az ICD2 poszteren és kész. Megy minden magától.
(#) zsimon válasza watt hozzászólására (») Szept 6, 2008 /
 
EZ a kijelző milyen rajta? Az ok hogy valami 128x64-es de egyenlőre nem jöttem rá hogy milyen grafikus vezérlő ez itten benne...

Érdemes lehet megcsinálni szerintetek?
(#) levii válasza zsimon hozzászólására (») Szept 6, 2008 /
 
Milyen kijelztől beszélsz?
Hogyha arra gondolsz ami a linken van akkor oda van írva hogy
Idézet:
„1x Lumex LCM-S12864GSF Graphic LCD (or similar 128x64 GLCD with KS0107/KS0108 controller)”
.
Üdv!
(#) Mate78 válasza zsimon hozzászólására (») Szept 6, 2008 /
 
Köszi.

Igazából megy,nincs vele gond,csak tudni akartam hogy amikor beállítom a TRISB-t akkor mit írjak bele.Kimenetnek konfiguráltam.
(#) zsimon válasza levii hozzászólására (») Szept 6, 2008 /
 
Jó van na... Tök fáradt vagyok. Ilyenkor felületes is sajna....
(#) zsimon válasza Mate78 hozzászólására (») Szept 6, 2008 /
 
Igazából az a legjobb hogy ha nem csak programozni hanem debuggolni is akarod, akkor jobb ha az az 2 lábat el is felejted. Persze lehet használni, de én nem szeretem keverni a dolgokat. Tökmindegy mindek konfigurálod. Nem számít.
(#) levii válasza zsimon hozzászólására (») Szept 7, 2008 /
 
Én se úgy írtam mint valami szemrehányást, remélem nincs harag...
(#) zsimon válasza levii hozzászólására (») Szept 7, 2008 /
 
Nem, tényleg nincs semmi harag. Csak teljesen kész voltam mint a mateklecke. Ilyenkor jobb lenne aludni, de én csak húzatom magam még egy kicsit. És látod ez az eredménye. Abszolute no problem. Még jó is volt a hír.
(#) szilva válasza levii hozzászólására (») Szept 7, 2008 /
 
7446 vagy 7447 jó lesz oda. Viszont azt érdemes tudni, hogy a 46 és 47 elég fura, egyenes szárú 6-ost és 9-est generál, ha a jobban megszokott, behajlított szárú számokat akarsz, akkor 74246 vagy 74247 kell.
Következő: »»   279 / 1320
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