Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • programovanie v c

programovanie v c

C,C++,C#

Moderátori: psichac, Moderátori

Re: programovanie v c

Odoslaťod boraicho » 01 Júl 2020, 19:57

Používateľ dostal varovanie: "Porušenie pravidla 5."

AD-LCD.c:279: error: (1387) inline delay argument must be constant
"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
boraicho
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 12085
Vek: 31.65
Založený: 03.02.2007
Bydlisko: Prešov
Karma: 46

Re: programovanie v c

Odoslaťod Atlan » 01 Júl 2020, 20:24

Nesmie tam byt premena ale konkretne cislo.
Pac to oneskorrnie prrkladac, vypocita a vytvori kod o pevnej dlzke oneskorrnia. A tento kod napalis do flash, tak logicky to nemoze byt premena.
Pouzi nejaky casovac, aj tak ti ho trrba pre normalny beh programu. (multitasking)
Atlan
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 353
Založený: 01.02.2008
Karma: 0

Re: programovanie v c

Odoslaťod pin » 01 Júl 2020, 21:21

Dalo by sa to obísť opakovaním kratšieho delay v slučke, nejako takto:

int tt=1;

tt = analogRead(pin);
for (int i=tt, i=0, i--)
{ delay(10);
}
pin
Obrázok používateľa
Power user
Power user
Príspevky: 2298
Založený: 09.05.2009

Re: programovanie v c

Odoslaťod mac26 » 01 Júl 2020, 21:35

Kód: Vybrať všetko
void cakaj(uint16_t cas){
    while(cas--)
        __delay_ms(1);
}
mac26
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1145
Založený: 01.02.2010
Bydlisko: Martin
Karma: 8

Re: programovanie v c

Odoslaťod misocko » 01 Júl 2020, 21:36

boraicho napísal:AD-LCD.c:279: error: (1387) inline delay argument must be constant

z povahy tvojej otazky vypliva ze programovanim sa zivit nebudes :D (ked uz nie programovanie , tak bez zakladov anglictiny sa tu nezaobides)
na tvojom mieste , na domace hrajkanie, vytiahnem zatracovane Arduino
funguju delay, blikas ako chces, nemusis manipulovat portami ak nechces / nevies, a vela vela delsieho vdaka comu som ja zacal aspon zaklady programovania MCU (ani zo mna nikdy programator nebude, ale som s tym zmiereny)
misocko
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 3434
Vek: 43.78
Založený: 14.06.2009
Bydlisko: Hlohovec
Karma: 31

Re: programovanie v c

Odoslaťod boraicho » 02 Júl 2020, 16:12

Používateľ dostal varovanie: "Porušenie pravidla 5."

misočko, prosim ešte raz, absolutne som nepochopil čo si napisal
"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
boraicho
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 12085
Vek: 31.65
Založený: 03.02.2007
Bydlisko: Prešov
Karma: 46

Re: programovanie v c

Odoslaťod niki31 » 03 Júl 2020, 12:25

Neviem s akým kompilátorom pracuješ, ale v ccs c to funguje bez problému. Môžeš čas vložiť cez premennú. V Mcc18 sa tuším podľa hodnoty času vložilo makro s pevným počtom prechodov slučkou. Hodnotu teda bolo možné zmeniť iba v čase prekladu programu, potom už nie. XC to má asi podobne.
Treba čítať manuál.
Niki31
niki31
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 113
Vek: 45.7
Založený: 05.02.2010
Bydlisko: Žilinský kraj
Karma: 0

Re: programovanie v c

Odoslaťod misocko » 03 Júl 2020, 13:34

Boraicho. OK. Skusim jednoduhsie.
Napisalo ti to ze argument v delay musi byt konstanta. (Po anglicky samozrejme) Ty sa pytas preco tam nemoze byt premenna.
misocko
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 3434
Vek: 43.78
Založený: 14.06.2009
Bydlisko: Hlohovec
Karma: 31

Re: programovanie v c

Odoslaťod boraicho » 03 Júl 2020, 16:18

Používateľ dostal varovanie: "Porušenie pravidla 5."

niki diky za koment, Je možne kompilovať programy do procesora v ccs?
Ja použivam XC8 . Viem že by bolo dobre čitať manual, ale to by som cely život nič nerobil iba čital manual. Bohužiaľ, mám kopec úplne inej roboty, ktoré mi platia šeky. Už vidim ako pribehne mato3000 a další miloško že za tie roky by som to mohol vedieť, ale neberu do uvahy veľmi doležitu vec, že ak človek programuje raz v roku 3dni , čo je môj prípad atď.... čo som napísal na pochopenie stačí , kto chce pochopí , kto nie, tak tomu dávam do pozoru slovíčko bocyan...



misočko vkladaš mi do úst veci , alebo do prstov veci ktore som nenapisal, pytal som sa ako meniť počas chodu jeho parameter....
O premene nepadlo ani slovo, ak hej tak ukaž.
Tak načo rýpeš? žena ti nedá?

boraicho napísal:Neviete niekto ako spraviť aby ked použivam delay čiže __delay_ms(); ale ten čo je v knižnici priamo zakomponovany,

tak som mohol počas chodu meniť jeho parameter , čiže čas?
"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
boraicho
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 12085
Vek: 31.65
Založený: 03.02.2007
Bydlisko: Prešov
Karma: 46

Re: programovanie v c

Odoslaťod maskrtnik01 » 03 Júl 2020, 16:23

A ako inak než premennou by ste to chceli za chodu meniť?

Podstata je tá, že keď kompilátor tam chce konštantu, tak to musí byť konštanta a dovidenia. Nič čo sa môže meniť počas behu programu tam neskompiluje.

A všade používať delay je cesta do pekiel. Už viackrát sa tu potom začiatočníci čudovali, že tlačidlo reaguje len raz za sekundu a podobne.
maskrtnik01
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 1729
Vek: 23.72
Založený: 20.07.2010
Bydlisko: okolie KE
Karma: 7

Re: programovanie v c

Odoslaťod niki31 » 03 Júl 2020, 18:57

Úplne všetko čo robí XC8 robí aj CCS c akurát je to od inej firmy.
Čo sa týka toho oneskorenia maskrtnik01 má pravdu. Ak kompilátor zostaví čakaciu slučku pri preklade, za behu už nejde meniť. Ak chceš meniť čas za behu je treba použiť nejakú čakaciu rutinu. Buď vlastnú alebo z knižnice. Alebo to obmedzenie obísť. Priznám sa že ma nenapadá na čo by to bolo dobré. Ja čakacie slučky nepoužívam, namiesto toho si vytvorím časovač s prerušením (hardwarový alebo softwarový). Po vypršaní času si v prerušení obslúžim čo potrebujem. Procesor tak beží neustále naplno a nestráca čas pri čakaní.
Niki31
niki31
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 113
Vek: 45.7
Založený: 05.02.2010
Bydlisko: Žilinský kraj
Karma: 0

Re: programovanie v c

Odoslaťod boraicho » 03 Júl 2020, 19:54

Používateľ dostal varovanie: "Porušenie pravidla 5."

Ja všetkemu rozumiem, ale jednoduche kody napriklad aj so spominaným delay použivam, ked niečo potrebujem odladiť.
Vždy zo všetkeho ako prve napišem takýto program, to pišem vždy na začiatku ako kontrolu či su všetky registre nastavene spravne, konfiguračne registre.
led1=1;
_delay_ms(200);
led1=0;
_delay_ms(200);

a ked blika viem že procesor beži :D a takto odladujem program po častiach až ho nakoniec cely pospajam.
ale to je jedno, iba som sa pýtal či sa da meniť delay za chodu. nie že nechapem čo znamena
"argument must be constant" ako to tu niektorý písali.

-- Spojený príspevok 03 Júl 2020, 19:00 --

mam od misocka správu že
Zjavne nema cenu sa s tebou natahovat ked chces nieco menit pocas behu programu a nema to byt premenna! Ako inac to Ty nazyvas?
Inac dal som ti perfektnu radu ked programujes raz za rok, skus arduino, je jednoduhsie.
Nemaš za čo....


ked chcem niečo meniť? Vždy sa miečo mení , vždy sa meni počas behu programu, vždy sa menia hodnoty na vstupoch,(napetie(potenciometer) logicke vstupy(tlačitka) a vždy sa menia hodnoty na výstupoch (PWM(ledky) DAC(napetie do operaka?)) potreboval som meniť výstupnu frekvenciu, ale podľa teba sa to nedá, tak radšej nepiš nič....

arduino je zložitejšie jak HW tak SW , taku radu si strč do diery.... :butthead:
"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
boraicho
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 12085
Vek: 31.65
Založený: 03.02.2007
Bydlisko: Prešov
Karma: 46

Re: programovanie v c

Odoslaťod niki31 » 03 Júl 2020, 21:35

No, na generovanie PWM sú aj lepšie spôsoby. Viacmenej je to tak, že pri kompilácii XC8 vloží napevno makro a viac nieje hodnotu možné meniť. To som si overil. Jediná možnosť je použiť _delay_ms v nejakom cykle.

Na odlaďovanie programu sa niekedy dobre hodí printf funkcia.
Niki31
niki31
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 113
Vek: 45.7
Založený: 05.02.2010
Bydlisko: Žilinský kraj
Karma: 0

Re: programovanie v c

Odoslaťod maskrtnik01 » 03 Júl 2020, 22:10

Plne súhlasím so správou od misocka. Tu už je asi dobrá rada hádzať hrach o stenu. Pozrel som si arduino delay, akceptuje aj premennú. Takže ak mcu riešite párkrát do roka, a z akýchkoľvek dôvodov nechcete študovať detaily, lepšiu možnosť ako arduino nepoznám.
maskrtnik01
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 1729
Vek: 23.72
Založený: 20.07.2010
Bydlisko: okolie KE
Karma: 7

Re: programovanie v c

Odoslaťod boraicho » 04 Júl 2020, 12:17

Používateľ dostal varovanie: "Porušenie pravidla 5."

lh, ak bud frajer a menuj! do koho sa navažam? misocko?
pýtal som sa jednoduchu otázku:
ako meniť delay počas chodu.
misocko mi dal radu že sa mam naučiť po anglicky a kupiť arduino.
a pride tretí konkretne TY a sa ho zastáva ako veľmi mi pomohol a si toho nevažim.
Myslíš to vážne?

Zas úplne super že sa nedaju spetne meniť a mazať príspevky.

misočko, ty si mal dobru radu? že sa mam naučiť po anglicky a kupiť arduino? ako to súvisi s danou otázkou?

v arduine neviem napisať program pre zablikanie, už to pochop že som arduino nikdy v ruke nemal. a v Cčku som napisal vyšiše.
V elektronike použivam PIC už 8 rokov, a nemienim to meniť, arduino nema po praktickej stranke u mňa zmysel, človek sa mu musí veľmi prisposobovať. a ja nemam čas na bavkanie sa. Všetko čo robim su veci ktoré sa použivaju nie že si poskladam blikač a potom rozoberiem.

pin a mac obivom vďaka za nápad, určite to použijem. ostatný berte si z nich príklad, bez blbých rečí dali hotovu vec :potlesk:


Téma prečistená od OT a urážok.boraicho-vi udelené napomenutie. 29.7.2020 mirosne
"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
boraicho
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 12085
Vek: 31.65
Založený: 03.02.2007
Bydlisko: Prešov
Karma: 46

Predchádzajúca

Naspäť na C,C++,C#

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 0 hostí.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.64 sekúnd