programovanie v c
Moderátori: psichac, Moderátori
-
- Ultimate člen
- Príspevky: 2582
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: programovanie v c
Pre mňa by bola samovražda napísať v asm vlastné atoi/itoa zo štandardných C knižníc.
0
Re: programovanie v c
V asm máte všetko pod kontrolou, ale v skutočnosti to znamená že všetko pod kontrolou mať musíte lebo dokonalejší chaos ako asm len tak nevytvorite.
V asm som strávil zároveň spústu času nad naprogramovaním drobností ( a + b/c = d ) ktoré v xc neriešim.
Môžem sa sústrediť na to čo má vec robiť a nie na to ako to spraviť, a to že je program niekedy väčší ako keď ho napíšem v asm ( čo často nie je pravda ) sa dnes dá pohode vyriešiť cez nové mcu.
Pre mňa je len škoda že Raspberry Pi nespravili ľudia z arduina.
V asm som strávil zároveň spústu času nad naprogramovaním drobností ( a + b/c = d ) ktoré v xc neriešim.
Môžem sa sústrediť na to čo má vec robiť a nie na to ako to spraviť, a to že je program niekedy väčší ako keď ho napíšem v asm ( čo často nie je pravda ) sa dnes dá pohode vyriešiť cez nové mcu.
Pre mňa je len škoda že Raspberry Pi nespravili ľudia z arduina.
0
-
- Ultimate člen
- Príspevky: 6221
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: programovanie v c
asm nie je chaos.
ja som rad, ze raspberry nerobili ludia z arduina. Ked som v nom nedavno skusal veci, tak som narazil na niekolkorocny bug, ktory mi prekazil moje plany a potvrdil to, ze nikdy sa na nic nespoliehaj. Totiz maju tam chybu v tcp, kedy jednoducho male tcp packety sa stratia. co je nepripustne. a ja 2 dni hladam chybu v mojom kode.
ja som rad, ze raspberry nerobili ludia z arduina. Ked som v nom nedavno skusal veci, tak som narazil na niekolkorocny bug, ktory mi prekazil moje plany a potvrdil to, ze nikdy sa na nic nespoliehaj. Totiz maju tam chybu v tcp, kedy jednoducho male tcp packety sa stratia. co je nepripustne. a ja 2 dni hladam chybu v mojom kode.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
Re: programovanie v c
Myslel som to skôr tak, že ja som dúfal že prepojenie hardwaru a pc bude minimálne na úrovni arduina, teda vývojové prostredie, knižnice, ovládanie pinou priamo v min. us.
Zatiaľ je pre mňa RB úspešným marketingovým projektom u ktorého žiadne skutočné použitie pre mňa nie je.
Zatiaľ je pre mňa RB úspešným marketingovým projektom u ktorého žiadne skutočné použitie pre mňa nie je.
0
-
- Ultimate člen
- Príspevky: 6221
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: programovanie v c
no vidis a pre mna je to super vec, vyvojove prostredie je tam viac nez dobre, ci uz perl, python, c, .net core...
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
Re: programovanie v c
poradil by mi niekto?
Som začiatočník a len sa učím v "C" tak ak sa pýtam hlúpo alebo neznalo vopred sa ospravedlňujem.
používam PIC16F v mblab
potrebujem spraviť túto rovnicu.
L=(0,4x(R1/R2))^-1,431
môj kód vyzerá takto
no ... nefunguje .... na displeji mi ukáže nuly .... zrejme je problém že exponent je záporné číslo ... to je zrejme asi prvý problém ktorý mám. Dosadil som rôzne čísla s kladným exponentom pre skúšku správnosti ale stále mi zobrazuje nulu aj keď je výsledok celé kladné číslo. No problém ale bude asi aj v zaokrúhľovaní ... keď už v prvom výraze dostanem číslo napríklad 0,687 tak to berie ako nula a výsledok je potom nula. Alebo výsledok rovnice je 0,687 tak mi vypíše nulu.
Ja viem že je niekde chyba v mojej nevedomosti ale ak by bol ochotný mi niekto poradiť bol by som vďačný....
Som začiatočník a len sa učím v "C" tak ak sa pýtam hlúpo alebo neznalo vopred sa ospravedlňujem.
používam PIC16F v mblab
potrebujem spraviť túto rovnicu.
L=(0,4x(R1/R2))^-1,431
môj kód vyzerá takto
Kód: Vybrať všetko
P=R1/R2;
n=0.4*P;
H = pow ( n,-1.431);
Ja viem že je niekde chyba v mojej nevedomosti ale ak by bol ochotný mi niekto poradiť bol by som vďačný....
0
-
- Stály člen
- Príspevky: 386
- Dátum registrácie: 16 Júl 2019, 14:22
Re: programovanie v c
ja by som si tipol ze sa ti zaokruhlia na nulu po deleni alebo nasobeni 0.4, lebo mas celociselny typ na premennych. Skus
P=((float)R1)/((float)R2);
n=0.4*((float)P);
H = pow ( ((float)n),-1.431);
P=((float)R1)/((float)R2);
n=0.4*((float)P);
H = pow ( ((float)n),-1.431);
0
Re: programovanie v c
Vďaka chalani.
To mi stačí. Idem si naštudovať typové dáta premenných.....zrejme tam spočíva môj problém
ja mám všetky premenné definované ako uint8_t x.... resp. uint16_t y....
To mi stačí. Idem si naštudovať typové dáta premenných.....zrejme tam spočíva môj problém
ja mám všetky premenné definované ako uint8_t x.... resp. uint16_t y....
0
-
- Okoloidúci
- Príspevky: 1
- Dátum registrácie: 06 Feb 2020, 23:11
Re: programovanie v c
treba si pozrieť druhy premenných, je niekedy dobré použivať aj short, byte a podobné veci kvôli šetreniu pamäte, C je inak dosť zapeklitý jazyk, ale materiálov na učenie je našťastie k nemu dosť
0
- boraicho
- Ultimate člen
- Príspevky: 12412
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: programovanie v c
Prosím Vás, mam taky problem, začal som pisať program a zistil som že mam problem.Neviem to vyriešiť.
Na procaku su pripojene 3 tlačitka 3 kontrolky takže:
použivam tlačitko 1 a 2 a prerušenia.
jednoducha vec
stlačim tlačitko 1 , dioda 1 na vystupe sa preklapa
stlačim tlačitko 2 , dioda 2 na vystupe sa preklapa
(plus časovač taky debounicng)
lenže v skotočnosti
stlačam tlačitko 1 preklapa sa dioda 1 všetko v poriadku
stlačam tlačitko 2 preklapa sa dioda 2 a náhodne sa preklapa aj dioda 1 to nieje v poriadku
Prečo sa to deje? neviem kde mam chybu.
Procesor je 16F18325 a program v linku https://textuploader.com/1qwup
nejake riešnie? vdaka
Na procaku su pripojene 3 tlačitka 3 kontrolky takže:
použivam tlačitko 1 a 2 a prerušenia.
jednoducha vec
stlačim tlačitko 1 , dioda 1 na vystupe sa preklapa
stlačim tlačitko 2 , dioda 2 na vystupe sa preklapa
(plus časovač taky debounicng)
lenže v skotočnosti
stlačam tlačitko 1 preklapa sa dioda 1 všetko v poriadku
stlačam tlačitko 2 preklapa sa dioda 2 a náhodne sa preklapa aj dioda 1 to nieje v poriadku
Prečo sa to deje? neviem kde mam chybu.
Procesor je 16F18325 a program v linku https://textuploader.com/1qwup
nejake riešnie? vdaka
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
Pullup rezistory mas aktivovame? 100n na napajacicj vyvodoch uP su? To else tam je snad zbytocne ci?
RMW problem na tychto uP uz nieje?
RMW problem na tychto uP uz nieje?
0
- boraicho
- Ultimate člen
- Príspevky: 12412
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: programovanie v c
vnutorne nepouživam. mam externe puldown 4,7k tušim. a blokovanie a všetko je samozrejmosť.
else som vyhodil, nepomohlo....
RMW to mi niečo hovori, asi som to niekedy riešil, cez LATA? nepametam bolo to dávno.
problem je že mi vchádza do prveho prerušenia nerozumiem prečo.
else som vyhodil, nepomohlo....
RMW to mi niečo hovori, asi som to niekedy riešil, cez LATA? nepametam bolo to dávno.
problem je že mi vchádza do prveho prerušenia nerozumiem prečo.
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
jak máš definovaný led1 ,led2 ? Mělo by to být jako LATA pro port A LATB pro port B.
0
- boraicho
- Ultimate člen
- Príspevky: 12412
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: programovanie v c
aha , hned vyskušam!
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
V C toho moc nepíšu ale obecně výstupy dávat na LAT registry a vstupy číst z PORT registrů.
0
- boraicho
- Ultimate člen
- Príspevky: 12412
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: programovanie v c
vieš čo, mam pocit že pomohlo toto
že do prerušenia ISR som na koniec dal IOCCF=0;
lebo ked som kukal cez debuger, tak tie flagy IOCCFx sa same od seba zapinali aj bez toho aby som stlačal tlačitko, netušim prečo to robilo.
tak som dal na koniec ten IOCCF=0; a vyzera že to ide, ale dal som k tym IOCCF0==1 aj && tl1
pre istotu.
že do prerušenia ISR som na koniec dal IOCCF=0;
lebo ked som kukal cez debuger, tak tie flagy IOCCFx sa same od seba zapinali aj bez toho aby som stlačal tlačitko, netušim prečo to robilo.
tak som dal na koniec ten IOCCF=0; a vyzera že to ide, ale dal som k tym IOCCF0==1 aj && tl1
pre istotu.
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
- 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
Vidím že stále panujú nejasnosti okolo LAT registrov, tak vedzte že:
Po odoslaní Byte na port, (či už zápisom do registra LAT alebo PORT alebo funkciou OutPort, atď.) tento Byte skončí vždy v registri LAT.
Všetky výstupné zápisy sú teda rovnocenné. To či sa hodnota bitu prenesie aj na pin, je závislé od nastavenia registra TRIS. V načítaní dát sú rozdiely. Pri načítaní LAT registra sa prečíta posledná hodnota dát ktorá bola odoslaná na výstup, bez ohľadu na skutočný stav portu. Pri načítaní z PORTu sa prečítajú skutočné hodnoty ktoré sú na pinoch. Relevantné dáta sú len z pinov ktoré sú v TRIS
nastavené ako vstup.
Kto toto vie nech sa nevzrušuje, kto nie nech sa doučí.
Po odoslaní Byte na port, (či už zápisom do registra LAT alebo PORT alebo funkciou OutPort, atď.) tento Byte skončí vždy v registri LAT.
Všetky výstupné zápisy sú teda rovnocenné. To či sa hodnota bitu prenesie aj na pin, je závislé od nastavenia registra TRIS. V načítaní dát sú rozdiely. Pri načítaní LAT registra sa prečíta posledná hodnota dát ktorá bola odoslaná na výstup, bez ohľadu na skutočný stav portu. Pri načítaní z PORTu sa prečítajú skutočné hodnoty ktoré sú na pinoch. Relevantné dáta sú len z pinov ktoré sú v TRIS
nastavené ako vstup.
Kto toto vie nech sa nevzrušuje, kto nie nech sa doučí.
0
Niki31
- boraicho
- Ultimate člen
- Príspevky: 12412
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: programovanie v c
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?
čiže ak je kod takýto:
__delay_ms(100); tak všetko funguje
ale ked je kod takyto tak to nefunguje a neskompiluje program a nejake erory.
int cas=100;
__delay_ms(cas);
potrebujem potenciometrom meniť frekvenciu a v podstate je to jednoduchšie ako nastavovať timery. diky za radu.
tak som mohol počas chodu meniť jeho parameter , čiže čas?
čiže ak je kod takýto:
__delay_ms(100); tak všetko funguje
ale ked je kod takyto tak to nefunguje a neskompiluje program a nejake erory.
int cas=100;
__delay_ms(cas);
potrebujem potenciometrom meniť frekvenciu a v podstate je to jednoduchšie ako nastavovať timery. diky za radu.
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: 6221
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: programovanie v c
tie nejake erory budu oznamovat kde je chyba, tak by bolo fajn ich sem skopirovat.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 38 Odpovedí
- 2737 Zobrazení
-
Posledný príspevok od používateľa Lennox