programovanie v c
Moderátori: psichac, Moderátori
-
- Ultimate člen
- Príspevky: 2572
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: programovanie v c
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
- niki31
- Stály člen
- Príspevky: 172
- Dátum registrácie: 05 Feb 2010, 00:00
- Bydlisko: Žilinský kraj
- Vek: 49
Re: programovanie v c
Nemáte niekto plnú verziu niektorého kompilátora pre mplab alebo keygen? (PICC18,MCC18,XC8)
0
Niki31
Re: programovanie v c
Hladaj studensku verziu, akjrat potom treba este nainstovat 4 updajty. No ale co by clovek neurobil ze.
0
- boraicho
- 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
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
3D REBEL II + PLA + PETG
CNC 1810 na DPS
- Najgel
- 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
Nehnevaj sa ale vieš použiť google ? Je tam snáď 500 000 výsledkov.
Dokonca aj v datasheete to je.
Dokonca aj v datasheete to je.
0
Keď neodpisujem tak tu nie som, alebo som a neodpisujem
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
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
- boraicho
- 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
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
3D REBEL II + PLA + PETG
CNC 1810 na DPS
- boraicho
- 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
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
3D REBEL II + PLA + PETG
CNC 1810 na DPS
- boraicho
- 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
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);
}
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
3D REBEL II + PLA + PETG
CNC 1810 na DPS
-
- 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
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);
}
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);
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
- boraicho
- 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
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
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: programovanie v c
č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;
}
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
-
- 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
Býva zvykom dávať kód do tagov Code aby sme sa v tom vyznali.
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é.
Kód: Vybrať všetko
while(x=0){
for ....
}
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í.
- bobo87
- Ultimate člen
- Príspevky: 1913
- Dátum registrácie: 15 Feb 2007, 00:00
- Vek: 36
- Kontaktovať používateľa:
Re: programovanie v c
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;}}
Re: programovanie v c
č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
vždy mi na spodu vyhodí chybu a nezostaví program
poradil by mi prosím niekto kde robím chybu? .... vopred ďakujem
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;
}
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)
0
-
- Stály člen
- Príspevky: 386
- Dátum registrácie: 16 Júl 2019, 14:22
Re: programovanie v c
To asi koli tomuto, koli bezpeciu
while(1)
{
PORTE=0b00000000;//RE0=0;
}
z tohto cyklu nikdy nemas sancu vyjst.
while(1)
{
PORTE=0b00000000;//RE0=0;
}
z tohto cyklu nikdy nemas sancu vyjst.
0
Re: programovanie v c
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
prepáč možno len tomu nerozumiem
0
-
- Stály člen
- Príspevky: 386
- Dátum registrácie: 16 Júl 2019, 14:22
Re: programovanie v c
ta slucka ti bude vzdy stale bezat a nieje sposob aby program/procesor z nej vysiel bez neprirodzenej terminacie
0
Re: programovanie v c
Kód: Vybrať všetko
while(PORTEbits.RE0=0)
{
PORTE=0b00000000;
}
return;
}
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
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 38 Odpovedí
- 2446 Zobrazení
-
Posledný príspevok od používateľa Lennox