programovanie v c

C,C++,C#

Moderátori: psichac, Moderátori

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2572
Dátum registrácie: 20 Júl 2010, 00:00
Bydlisko: okolie KE
Vek: 27

Re: programovanie v c

Príspevok od používateľa maskrtnik01 » 04 Okt 2017, 17:59

Ako inak by ste si to predstavovali, ako cez grafickú knižnicu? Priama komunikácia s driverom by bola nesmierne náročná, to sa nerobí. A vlastný driver? Na to zabudnite, driver sa píše viacmenej namieru na konkrétny GPU na grafickej karte, a cez neho potom funguje GUI celého Windowsu.
0

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: programovanie v c

Príspevok od používateľa niki31 » 29 Okt 2017, 19:52

Nemáte niekto plnú verziu niektorého kompilátora pre mplab alebo keygen? (PICC18,MCC18,XC8)
0
Niki31

kamilko
Stály člen
Stály člen
Príspevky: 269
Dátum registrácie: 21 Okt 2017, 14:07
Bydlisko: kosice

Re: programovanie v c

Príspevok od používateľa kamilko » 25 Dec 2017, 11:10

Hladaj studensku verziu, akjrat potom treba este nainstovat 4 updajty. No ale co by clovek neurobil ze.
0

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12407
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa boraicho » 15 Jan 2018, 21:17

Bude niekto taky dobry a vysvetli mi čo znamena v poistkach procesora Internal/External switchover Mode? diky
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

Používateľov profilový obrázok
Najgel
Ultimate člen
Ultimate člen
Príspevky: 1695
Dátum registrácie: 02 Júl 2010, 00:00
Bydlisko: Námestovo, Žilina(škola)
Vek: 29

Re: programovanie v c

Príspevok od používateľa Najgel » 15 Jan 2018, 21:20

Nehnevaj sa ale vieš použiť google ? Je tam snáď 500 000 výsledkov.

Dokonca aj v datasheete to je.
0
Keď neodpisujem tak tu nie som, alebo som a neodpisujem :D

MPLAB & PIC
Texas Instruments DSP TMS320Fxxxxx
Tevo Tarantula 3D
Ponúkam 3D tlač.
Ponúkam návrh a vývoj elektroniky na zákazku.

UNIZA 5.ročník

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12407
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa boraicho » 15 Jan 2018, 21:43

nehnevam, ale k programovaniu som sa dostal znova po pol roku, vobec sa mi to nechce študovať, ak sa k tomu o pol roka možno o rok znova dostanem, už nebudem mať ani tušenia čo je switchover, tak bud napišem znova, alebo skor si budem pametať že som tú informaciu už zhaňal, tak ju tu najdem, len teraz ma to zaujima či je lepšie nastaviť to ako ON alebo OFF.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

Používateľov profilový obrázok
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1298
Dátum registrácie: 01 Feb 2010, 00:00
Bydlisko: Martin

Re: programovanie v c

Príspevok od používateľa mac26 » 15 Jan 2018, 21:45

OFF :D
0

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12407
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa boraicho » 15 Jan 2018, 22:58

:thumbup:
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12407
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa boraicho » 20 Jan 2018, 14:31

zdar.

mam program a ak pride impulz, tak ma odpočitať hodnotu 10, a problem je že hodnota ide do minusu ,aspon mi to tak vypisuje na dysplej , prečo ta hodnota ide do minusu ked mam napisane že unsigned? jak to spravim aby to nešlo do minusu? diky.
potrebujem aby to šlo od nejakej hodnoty iba po 0.

unsigned int uloz_hodnotu=0;

if(msd==1) //DOLNY MIKROSPINAC
{tu je ešte nejaky program kde hodnota može byť akakoľvek.
uloz_hodnotu-=10;
if(uloz_hodnotu<0)uloz_hodnotu=0;
DAC2REFH=uloz_hodnotu;
DAC2LD=1;
sprintf(zobraz_lcd,"Rychlost:%d ",uloz_hodnotu);
string(zobraz_lcd);
}
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa peterple » 20 Jan 2018, 14:49

Kód: Vybrať všetko

unsigned int uloz_hodnotu=0;

if(msd==1) //DOLNY MIKROSPINAC
{tu je ešte nejaky program kde hodnota može byť akakoľvek.
if(uloz_hodnotu<10) uloz_hodnotu=0;
 else uloz_hodnotu-=10;

DAC2REFH=uloz_hodnotu;
DAC2LD=1;
sprintf(zobraz_lcd,"Rychlost:%d ",uloz_hodnotu);
string(zobraz_lcd);
}
ten test čo si tam mal ty nemôže byť nikdy pravda a preto sa ti to nikdy nevynuluje. Pretože 9-10 je 65535
Jednoducho podtiekla premenná
Ten printf to vypisuje ako signed lebo si mu to prikázal. Unsigned sa píšu

Kód: Vybrať všetko

sprintf(zobraz_lcd,"Rychlost:%u ",uloz_hodnotu);
a je to nezávisle na tom ako si to ty deklaroval. Ty musíš povedať správne pri vypisovaní čo to je, prekladač to nedokáže skontrolovať
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
boraicho
Ultimate člen
Ultimate člen
Príspevky: 12407
Dátum registrácie: 03 Feb 2007, 00:00
Bydlisko: Prešov
Vek: 35
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa boraicho » 20 Jan 2018, 14:53

jasne diky, opravujem.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS

slonik
Okoloidúci
Okoloidúci
Príspevky: 39
Dátum registrácie: 19 Dec 2019, 22:01
Bydlisko: Žilina

Re: programovanie v c

Príspevok od používateľa slonik » 19 Dec 2019, 22:18

čaute...
potreboval by som radu .... no začínam sa učiť programovať mcu v c
používam procesor PIC cez MPLAB X IDE
no fakt sa len učím a som v začiatkoch tak ak je hlúposť čo píšem vopred sa ospravedlňujem ...
chcem naprogramovať na 7segmentovke aby mi zobrazovala hodnoty od 9 po nula a po skončení slučky od 0-9 a to stále dookola
spravil som to takto ale dookola mi zobrazuje len jednu slučku ....
void main (void)
{
uint8_t x;
uint8_t y;
TRISC=0x00;
ANSEL=0x00;
ANSELH=0x00;

while(x=0)
{
for(x=9;x<=0;x--)
{

DISP(x);
__delay_ms(500);
}
}
while(y=9)
{
for(y=0;y<=9;y++)
{
DISP(y);
__delay_ms(500);
}
}

return;
}

zrejme takýmto zápisom to nedocielim že....

-- Spojený príspevok 19 Dec 2019, 23:53 --

už mi to funguje

while(1)
{
for(x=9;x<=9;x--) //meni cislo index od 0 do 9
{
DISP(x);
__delay_ms(500);
}
for(x=0;x<=9;x++)
{
DISP(x);
__delay_ms(500);
}
}
return;
}
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa peterple » 19 Dec 2019, 22:59

Býva zvykom dávať kód do tagov Code aby sme sa v tom vyznali.

Kód: Vybrať všetko

while(x=0){
for ....
}
Táto slučka ti nebeží že.
Nebeží preto že while bude opakovať príkazy pokiaľ je podmienka pravdivá
Akú tam máš podmienku? Že x=0. Nuž toto je úplne začiatočnícka chyba. Ten výraz totiž neporovnáva či x sa rovná 0 (to sa robí ako x==0) ale robí priradenie x=0. Teda do premennej x dá 0 a to je aj hodnota výrazu. Nuž a potom ešte treba vedieť že 0 je false a čokoľvek iné je true. Takže ten výraz je nepravda a do tela cylu nevbehneš.

Naopak ten druhý while čo máš za tým je pravda furt a preto už odtiaľ nevýdeš a beháš tam na večné veky.

Na tvoj zámer stačí jeden while a v ňom dva fóry.

-- Spojený príspevok 19 Dec 2019, 23:01 --

Áno tak ako si to nakoniec vymyslel. Len si zapamätaj rozdiel medzi = a == keď budeš niekedny potrebovať niečo testovať či je to zhodné.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

slonik
Okoloidúci
Okoloidúci
Príspevky: 39
Dátum registrácie: 19 Dec 2019, 22:01
Bydlisko: Žilina

Re: programovanie v c

Príspevok od používateľa slonik » 19 Dec 2019, 23:05

dakujem ....
skúsil som to z dvoma for a už mi to ide ....
0

Používateľov profilový obrázok
bobo87
Ultimate člen
Ultimate člen
Príspevky: 1913
Dátum registrácie: 15 Feb 2007, 00:00
Vek: 36
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa bobo87 » 19 Dec 2019, 23:06

Taky maly hint - napriklad u nas v praci (medicinsky software) mame podla coding guidelines v takomto type podmienok konstantu davat nalavo, tymto sa da cast podobnych chyb eliminovat - napr. if(0 == x), while(false == quit), chvilku si na to treba zvyknut, ale potom to ide. :)
0
float l,I,Q,_,o;int E;main(){I=1.125;while(I>=-1.225){for(l=-2;l<=1;l+=3/79.0){Q=_=0;for(E=127;Q*Q+_*_<4.0&&--E>32;){o=Q;Q=Q*Q-_*_+l;_=2*o*_+I;}putchar(E);}putchar(10);I-=9/88.0;}}

slonik
Okoloidúci
Okoloidúci
Príspevky: 39
Dátum registrácie: 19 Dec 2019, 22:01
Bydlisko: Žilina

Re: programovanie v c

Príspevok od používateľa slonik » 28 Dec 2019, 16:37

čaute
chcel by som Vás poprosiť o pomoc ... učím sa programovať v C mikrokontrolér PIC
momentálne mám zapojený PIC16F887 a snažím sa rozblikať led pomocou prerušenia a to pomocou TIMER1
nastavil som si už všetky registre ale stále mi vypisuje errory a nemôžem prísť na chybu prečo.
Fakt sa len učím a ak mám v kode nejaký chybu tak sa vopred ospravedlňujem. Nik učený z neba nespadol
Používam prostredie MPLAB X IDE

Kód: Vybrať všetko

void interrupt timer_1()
 {
     if(TMR1IF==1)  //PRÍZNAK PRERU?ENIA
     {
     PORTE=0b00000001;
     TMR1H=0x0B;   //HODNOTA ONESKORENIA 100ms
     TMR1L=0xDC;
     PIR1=0b00000000;
     //TMR1IF=0;     //VYMAZANIE PRÍZNAKU PRERU?ENIA
     }
 }
 
     void main()
 {
     TRISE=0x00;
     ADCON1=0x00;
     T1CON=0b00110101; //nastavenie predelicky, zapnutie časovača
     //TMR1ON=1;
     TMR1H=0x0B;
     TMR1L=0xDC;
     
     PIE1=0b00000001; //povolí prerušenie
     //TMR1IE=1;
     INTCON=0b11000000;
     //GIE=1; //povolí globálne prerusenie
     //PEIE=1; //povolí prerusenie periferii
     

 while(1)
 {  
 PORTE=0b00000000;//RE0=0;      
 }
return;
}
vždy mi na spodu vyhodí chybu a nezostaví program

Kód: Vybrať všetko

make[2]: *** [build/default/production/blink_interupt.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 454ms)
poradil by mi prosím niekto kde robím chybu? .... vopred ďakujem
0

JohnnyElektro
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 16 Júl 2019, 14:22

Re: programovanie v c

Príspevok od používateľa JohnnyElektro » 28 Dec 2019, 16:44

To asi koli tomuto, koli bezpeciu

while(1)
{
PORTE=0b00000000;//RE0=0;
}

z tohto cyklu nikdy nemas sancu vyjst.
0

slonik
Okoloidúci
Okoloidúci
Príspevky: 39
Dátum registrácie: 19 Dec 2019, 22:01
Bydlisko: Žilina

Re: programovanie v c

Príspevok od používateľa slonik » 28 Dec 2019, 17:11

myslíš tým to že som v nekonečnej slučke? ..... no myslel som že keď nastane prerušenie tak vôjdem do prerušenia ......a tam bit0 v PORTE zapnem keď vyjdem von z prerušenia zasa mi bit0 na PORTE vypne pretože pokračujem tam kde som pred prerušením bol a to je v tej slučke
prepáč možno len tomu nerozumiem
0

JohnnyElektro
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 16 Júl 2019, 14:22

Re: programovanie v c

Príspevok od používateľa JohnnyElektro » 28 Dec 2019, 19:22

ta slucka ti bude vzdy stale bezat a nieje sposob aby program/procesor z nej vysiel bez neprirodzenej terminacie
0

slonik
Okoloidúci
Okoloidúci
Príspevky: 39
Dátum registrácie: 19 Dec 2019, 22:01
Bydlisko: Žilina

Re: programovanie v c

Príspevok od používateľa slonik » 28 Dec 2019, 19:38

Kód: Vybrať všetko

 while(PORTEbits.RE0=0)
 {
 PORTE=0b00000000; 
 }
 return;    
 }
ok ... skúsil som tam vložiť podmienku ..... že keď bude vypnutý bit.0 na PORTE ale stále mi vyhadzuje error...

ale aj tak myslel som že na pozadí pracuje s registrami TMR1H a TMR1L a keď dôjde k pretečeniu vojdem do prerušenia kde mi zmení na RE=1 ............ som z toho jeleň jak ten jeleň ...... :(
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok