programovanie v c

C,C++,C#

Moderátori: psichac, Moderátori

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 » 04 Sep 2020, 08:36

Na toto ti stači aj 555tka :butthead:
Čo tak si kupiť knižku a naštudovať si základne veci? za tie roky čo s tým robiš by si mal vedieť programovať aj zložitejšie veci :thumbdown:
A hlavne že ideš druhých poučovať o programovani :potlesk: a pozor na tie delay aby si sa potom nečudoval že ti procesor pomaly reaguje. :crying:
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

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: programovanie v c

Príspevok od používateľa Atlan » 04 Sep 2020, 19:05

1kB v lufte, to sa fakt oplati, hlavne ked ani nevies co to arduino robi okrem toho co chces ty :)
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6203
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: programovanie v c

Príspevok od používateľa pocitujlasku » 04 Sep 2020, 19:24

Atlan: tak uloha splnena, kopol si si do arduina.
Zeby to kilo obsahovalo aj bootloader? ale zaujimave, ze ti nevadi fakt, ze C oproti asm je takmer dvojnasobok.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

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 » 04 Sep 2020, 19:45

Tak ono je to v podstate fuk, máš tam 32kiBy takže nejakých pár fičúr čo ti robia pohodlie

Kód: Vybrať všetko

pinMode(0,OUTPUT);
analogWrite(0, jas):
Potom map - síce úplne zbytočné ale moc to nezožerie, len to potrebuje ďalšie rutiny na násobenie a delenie.
Delay tam bude robený asi cez TIMER0 takže to máme výpočet milisekund
No a ešte tam je myslím štandardne pridaná možnosť sériovej komunikácie. Ono keby som to tam mal všetko porobiť v tom C tak by som možno nejaké kilečko zhltol. Ono to je len 512 inštrukcií ba ešte menej. Kódovanie inštrukcií nemá AVR ktovie ako úsporné.
Kedže je arduino open source, nič ti nebráni si zistiť čo to naozaj robí. Jediné čo je tam jalové sú tie prekódovavania z ich číslovania IO pinov na fyzické porty.
boraicho napísal:Na toto ti stači aj 555tka :butthead:
Tak s týmto názorom silne nesúhlasím. Od okamihu kedy 8pinový MCU mal cenu okolo jedného eura tak by som nepoužil 555 ale MCU. No a dnes keď môžem mať taký MCU za 3centy tak je to neobhájitelný archaizmus z minulého storočia.
pocitujlasku napísal:Zeby to kilo obsahovalo aj bootloader?
Podľa mňa to bootloader neobsahuje. Bootloader je už napálený v bootloader časti a nemá prečo sa tam kompilovať a nahrávať. To bude ďalšie kilečko, čo je ale tiež fuk.
Ten asm proti C nie je až taká výhra. ono Posledná adresa je 0xdc. To sa mi len nechcelo písať prázdnu tabuľku prerušovacích vektorov a tak som ju iba skočil. No a prekladač potom počítal len skutočne obsadené miesta.
To C a asm je od seba iba mierne. Síce ako sa to vezme tie prázdne miesta tabuľky vektorov môžu obsahovať normálny kód takže by to reálne na tých 120byte fungovalo, kedže sa tam prerušenia nepoužívajú.

Každopádne tu máme autá s automatickou prevodovkou a parkovaním, tak prečo by sme nemali arduino? Každý nech si vyberie na čom chce jazdiť. A čo zvládne.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

michal312
Stály člen
Stály člen
Príspevky: 385
Dátum registrácie: 30 Dec 2007, 00:00
Bydlisko: Hlohovec

Re: programovanie v c

Príspevok od používateľa michal312 » 04 Sep 2020, 19:46

peterple napísal:Zdá sa že sa nikomu nechce písať program. Ani mne sa nechcelo ale nakoniec som sa donútil, aby som len nekritizoval. Snažil som sa aby sa to čo najviac podobalo na ten arduino kód.
Peterple super ze si dal ten kod v C aj ASM :potlesk: . Vedel by si uploadnut ten kod aj v arduine? Ked uz to tu mame v ASM a v C tak nech je to kompletne :) . Arduino nepoznam tak aspon by som si to porovnal s C. Dik
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 » 04 Sep 2020, 19:50

Ten arduino kód tu dal misocko
https://svetelektro.com/modules.php?nam ... 5#pr760688
no tom som nezmenil ani písmenko.
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
misocko
Ultimate člen
Ultimate člen
Príspevky: 4319
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: programovanie v c

Príspevok od používateľa misocko » 04 Sep 2020, 22:40

boraicho napísal:Na toto ti stači aj 555tka :butthead:
- nemam ju rad. To co som dal bol priklad.... bol to priklad na porovnanie roznych jazykov (programovacich), staci lepsie citat
boraicho napísal:Čo tak si kupiť knižku a naštudovať si základne veci? za tie roky čo s tým robiš by si mal vedieť programovať aj zložitejšie veci :thumbdown:
- nemam dovod, toto je pre mna relax , iba relax, ked nieco neviem alebo tu na fore je dobry navrh na otestovanie , tak to proste poskladam , pomeriam a rozoberiem, nikdy som nic funkcne do zivota nevyrobil , netajim sa tym , nemam na to. Sam dobre vies , ze ked mozem , poradim , aj Tebe !
mimochodom , "tie roky" co som zacal prvy program na MCU , konkretne ARDUINO = 3 roky !
Relax , znamena oddych, živy ma nieco uplne ine , je to sice technika, ale potrebujem si od toho oddychnut. Vraj ma to zivy nadpriemerne podla statistik , ale na to kolko makam by som mal zit vo vile nie bytovke...
boraicho napísal:A hlavne že ideš druhých poučovať o programovani :potlesk: a pozor na tie delay aby si sa potom nečudoval že ti procesor pomaly reaguje. :crying:
vo svojich "programoch" (pre Teba vysvetlim uvodzovky - nepovazujem to za programy, su to nedorobky amatera) vecsinou nepouzivam "delay" , mam "programy" kde nieje jediny "delay".
PS , este ze ma vychodnara nezivy slovencina, to mi fakt nejde , sorry :D
dufam že som Ťa zas (tentokrat , opeť) niečim neurazil, to minule som nejako nedal , fakt sorry
0

wizing
Nový člen
Nový člen
Príspevky: 95
Dátum registrácie: 21 Sep 2017, 09:09
Bydlisko: Žilina
Vek: 40

Re: programovanie v c

Príspevok od používateľa wizing » 13 Nov 2020, 14:11

Čaute.
Vedel by mi niekto poradiť?
Mám takýto displej.
displej.JPG
neviem čo je zač ale zrejme je to tento pretože pinológia sedí. Tu je datasheet.
EDC190-DALIANDONGFU.pdf
(33.27 KiB) 93 stiahnutí
Chcem ho ovládať procesorom PIC. Problém je v tom že každý segment sa zapína samostatným pinom. Segmenty nie sú medzi sebou prepojené a nemajú vyvedený pin na
spínanie spoločnej anody alebo katody ako je to u Led segmentovky. Nie je tam teda možnosť to prepojiť do multiplexu a minúť na to 7x4=28 pinov procesora sa mi zrovna nechce. Nie je na to nejaká softwarova finta? ..... mňa nič iné nenapadá ako použiť 4 x posuvný register napríklad 74HC595. Chcel som sa ale tomu vyhnúť pretože som chcel na to použiť čo najmenej externých súčiastok a tým minimalizovať DPSku, ale ak nie je iná možnosť nebudem mať na výber.
Vopred ďakujem za radu...
0

Používateľov profilový obrázok
Dr.Martin
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1361
Dátum registrácie: 15 Jún 2011, 00:00
Vek: 29

Re: programovanie v c

Príspevok od používateľa Dr.Martin » 13 Nov 2020, 14:30

Ved tie segmenty si môžes prepojit, tým pádom to budeš mať 7+4 piny to máš 11 pinov na procesory.
1
Obrázok 1
Ľudovít Štúr opustil túto konverzáciu.
Nemám rád špenát, Tdi a moralistov.
GitHub

wizing
Nový člen
Nový člen
Príspevky: 95
Dátum registrácie: 21 Sep 2017, 09:09
Bydlisko: Žilina
Vek: 40

Re: programovanie v c

Príspevok od používateľa wizing » 13 Nov 2020, 14:37

Áno. Lenže v tom prípade keby som zapol segment A tak sa mi zapne segment A na všetkých štyroch. Aby tomu tak nebolo musel by som ich striedavo vypínať a zapínať v multiplexe tak ako pri Led 7segmentovke. Taký som mal plán aj ja. Lenže na displeji nie je vyvedený pin ktorým zapnem a vypnem celý 7segment. Je tam len pin pre kladné napájanie celého displeja a potom piny jednotlivých segmentov.
0

Používateľov profilový obrázok
Dr.Martin
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1361
Dátum registrácie: 15 Jún 2011, 00:00
Vek: 29

Re: programovanie v c

Príspevok od používateľa Dr.Martin » 13 Nov 2020, 15:34

Aha uz som pochopil ako je to zapojene.
0
Ľudovít Štúr opustil túto konverzáciu.
Nemám rád špenát, Tdi a moralistov.
GitHub

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: programovanie v c

Príspevok od používateľa Atlan » 13 Nov 2020, 18:24

Hlavne nezabudni ze musis peridicky menit polaritu na displeji. Pac pri jednosmernom napajani ten displej znicis, inak existuje zapojenie s nejakym beznim IO ktory zabezpeci prepinanie polarity.
Ale ide to urobit v uP tak ze nieje problem.
0

Používateľov profilový obrázok
feros
Stály člen
Stály člen
Príspevky: 414
Dátum registrácie: 23 Sep 2010, 00:00
Bydlisko: okres Nitra

Re: programovanie v c

Príspevok od používateľa feros » 13 Nov 2020, 18:40

Pre ovládanie LCD vyrábajú napríklad PIC18F87K22 ktorý obsahuje všetky potrebné obvody pre ovládanie LCD
0

wizing
Nový člen
Nový člen
Príspevky: 95
Dátum registrácie: 21 Sep 2017, 09:09
Bydlisko: Žilina
Vek: 40

Re: programovanie v c

Príspevok od používateľa wizing » 13 Nov 2020, 19:24

Atlan
Ďakujem. To som nevedel. Nikdy som nepoužíval tento typ displejov. Zrejme si idem najprv niečo o nich preštudovať. Na nete som toho ale veľa o nich nenašiel .... snáď niečo vyňúram

feros
viem o nich .... mám doma aj jeden z nich PIC16LF1937. Nerobil som ale s tým ešte a hlavne som chcel ten displej rozbehať na starej PIC16F877 pretože ich mám doma plnú škatuľu aj v smd verziách a rád ich používam
0

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: programovanie v c

Príspevok od používateľa Atlan » 13 Nov 2020, 20:22

Pouzi video ram (video buffer) . Tj data pre displej ulozis do ram, vpreruseni napr kazdych 10ms, potom raz posles tie data priamo na port a druhykrat ich invertujes a tak zapises na port. Tym padom mas displej napajany striedavym prudom.
10ms preto ze mozno budes potrebovat nejake casy este 1s a podobne.

Co chces zobrazit na displeji zapisujes do ram, a obsah sa automaticky aktualizuke kazd6ch 10ms.
0

Používateľov profilový obrázok
Mek
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1273
Dátum registrácie: 15 Okt 2015, 20:49
Bydlisko: Žilina
Vek: 37
Kontaktovať používateľa:

Re: programovanie v c

Príspevok od používateľa Mek » 13 Nov 2020, 21:58

Ale logicka jednotka je +5V a logicka nula je 0V, nie? Nebude to tak uplne striedave, lebo napatie nejde do minusu. Ci to tomu displeju staci aj takto? Neviem, nepouzival som ich nikdy, preto sa pytam :wink:
0
... byvaly spravca Hospudky u amplionu, Martinekk-ov brat. Nemam vystudovane elektro, je to len moje hobby. Povolanim som SW inzinier.
Moja databaza suciastok: ELPARTS
Moj velky elektro projekt: MEGA TRANSISTOR CLOCK

maskrtnik01
Ultimate člen
Ultimate člen
Príspevky: 2567
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 » 13 Nov 2020, 22:05

Malý detail, keď sa COM trvalo prizemní, tak to bude 5V alebo skrat(segmentu), podobne keď bude COM trvalo na 5V. Stačí ale prepínať aj COM (vždy opačne ako aktívne segmenty) a je vyriešené.
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 » 13 Nov 2020, 23:13

Trochu osvety:
LCD segmenty sú z elektrického pohľadu vlastne kondenzátory. Na skle sú naparené dve elektródy. V tomto prípade je jedna spoločná (označená ako COM) a druhá ako segment. Medzi sklom je tekutý kryštál. Ten má tú vlastnosť, že je otáčaný elektrickým polom ktoré naň pôsobí. Ak na obe elektródy pripojíme rovnaké napätie (v prípade MCU je to GND alebo VCC) tak na tekutý kryštál žiadne pole nepôsobí a tak si kryštáľ slobodne pláva v tej kvapaline. Tento typ je takzvaný reflexný. Teda pod spodnou elektródou je odrazná vrstva (zrkadlo) ktoré odráža prechádzajúce svetlo. Kedže kryštály si plávajú ako chcú tak svetlo prechádzajúce zhora v podstate rozptyľuje do náhodného smeru. To čo prejde až nadol sa odrazí a zase sa rozptýli do náhodného smeru. Oku sa to javí ako sivá plocha. Ak teraz pripojíme na tieto dve elektródy rozdielne napätie. napr na COM GND a na segment VCC. Tak sa kryštály otočia do jedného smeru podľa el poľa. Vytvoria tak bariéru pre svetlo prechádzajúce zhora (pohltia ho). Nemá sa teda čo odraziť a oko to vníma ako čiernu plochu. Na polarite nezáleží molekuly sa otočia do rovnakého smeru aj pri jednej aj pri druhej polarite.
Tu ale vstupuje do hry iný fenomén. Tekutina medzi doskami je v princípe elektrolyt. A ten ak bude vystavený el. poľu iba v jednom smere sa začne rozkladať. To spôsobí zničenie molekúl, efektu otáčania a je po displeji. Preto je potrebné aby z pohľadu elektrolytu vo vnútri bolo el. pole striedavé. No a to sa dá dosiahnuť jednoducho aj tak že COM nie je trvale na GND ale sa preriodicky mení. GND VCC. Druhá strana sa potom mení tiež a to podľa toho či má "svietiť", alebo či má byť zhasnutá.

Prečo toto nemôže mať multiplex ako LED? Lebo reakcia je pomalá. "Zapnutie" -orientácia el. poľom ešte ako tak fičí, lebo tu pôsobí sila. Ale opačný dej spolieha len na postupnú dezorientáciu kryštálov tepelným pohybom. Preto tieto displeje so znižovaním teploty lenivejú. Mi čo pamätáme digitálky, vieme že v zime pomaly ani nestíhali ukazovať sekundy. Takže toto riadiť časovým multiplexom je technicky nemožné.
V skutočnosti ale tieto displeje v multiplexnej verzii existujú, ale nie je to časový multiplex. Ale to už je iná rozprávka.

Osobne som takto riadil veľa 3.5 miestnych displejov s MHB8748 a funguje to dodnes. Jediná nevýhoda je potreba veľa pinov.
Dobrú noc.
5
Obrázok 5
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

wizing
Nový člen
Nový člen
Príspevky: 95
Dátum registrácie: 21 Sep 2017, 09:09
Bydlisko: Žilina
Vek: 40

Re: programovanie v c

Príspevok od používateľa wizing » 14 Nov 2020, 11:38

Ďakujem za vysvetlenie. Som rád že som sa tu na to spýtal pretože by som už teraz mal asi displej zničený.
Vyskúšam to teda a polaritu budem meniť v prerušení. Použijem asi tých 28pin procesora. V princípe potrebujem 28pin pre segmenty a dva tlačítka takže mal by som mať pri PIC16F877 pinov postačujúco :-) .... chcel som doma zbastliť časovač do kuchyne k vareniu a mcu aj tak nebude robiť nič iné ako odpočítavať sekundy takže tie minuté piny až tak nevadia. Možno taký displej v budúcnosti použijem na niečo iné a potom tie piny budú chýbať. Zrejme sa potom tomu posuvnému registru nevyhnem. Pár rokov do zadu som vyrobil takýto časovač z led Segmentov ale meníme tam baterku každú chvíľu. Práve pre to som chcel vyrobiť nový a použiť tam tento displej.
Ešte raz ďakujem všetkým za rady
0

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: programovanie v c

Príspevok od používateľa Atlan » 14 Nov 2020, 12:53

Tak som pozeral zdrojak asi tam boli 4x 4094 v ktorych sa uchovaval stav.
A chces usetrit piny pouzi nejaky radic alebo bezne IO.
https://mediatoget.blogspot.com/2011/09 ... rcuit.html
0

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