ATtiny25: změna frekvence oscilátoru za běhu programu

No ja si myslím, že pre programovanie takého AVR-ka práve C++ nepotrebuješ, tam ti stačí úplne C-ko. A ak sa s procesorom zahráš čo i len 5 krát do roka, myslím, že nie je na škodu sa to C-ko naučiť.

Nepoznám tvoj vek, ale aj tak si myslím, že naučiť sa niečo nie je nikdy na škodu, a pri hraní sa s elektronikou a hlavne s procesormi už vôbec nie, a na druhej strane to C-ko časom môžeš využiť aj pri komunikácií procesora s PC, kde si napíšeš nejaký jednoduchý program na komunikáciu či ovládanie - tam jazyk Arduina nevyužiješ.

A nie je to vôbec ťažké a pre procesor viac prijateľnejšie :slight_smile:.

Předpokládám, že víc žere program z Arduina.
Arduino má tu nepříjemnou vlastnost, že je strašně “smart” a hned po resetu nastaví hromadu věcí které jsme nežádali.
Např. (i při prázdném programu) spustí timer0 pro počítaní milis(), zapne ADC atd atd. Sám nevím, co všechno nastaví, neznám ho tak detailně.

Takže pro snížení spotřeby je třeba v setupu všechno co nepotřebujeme preventivně zakázat a odpojit.
Tak to vidím já, ale v reálu jsem to nezkoušel.

Jenom pro úplnost:
Program v Arduino .ino souboru můžeme bez jakýchkoliv dalších změn napsat v C jazyku.
V tom případě zmíněné problémy odpadají.

To StanleyV: Prosím, k věci. Toto jsme tu již probrali a v tomto směru vím, co mám dělat.
Na fórum se obracím s technickým problémem, který už určitě někdo řešil a třeba je ochotný poradit. Samozřejmě jsem rád za každou radu, pokud ovšem vede k vyřešení problému. Jinak toto bohužel zbytečně rozptyluje pozornost.

Zdravím, dík za odpověď. No ne že bych chtěl porovnávat HEXy, i mě je jasné, že každý bude jiný. Podstatné pro výsledek je, že stejný program (třeba jen prázdný nebo blikající ledka), zkompilovaný systémem:

  1. psáno v ARDUINU, kompilace v IDE 1.8.5 hex vypálený AVRdude 5.8 a odesláno do tiny USBASP
  2. to stejné psáno C++, kompilováno v ATMELstudio 7
    má spotřebu 20x menší.
    Osciloskop na noze 3 potvrzuje odpovídající snížení frekvence. To zpočátku trošku mátlo, vypadalo to, že frekvence se nesnížila, ale oscilokop to vyvrátil.
    Je docela možné, že dělám při kompilaci v Arduinu dělám nějakou chybu, zatím jsem na ni nepřišel. Horší by bylo, kdyby to z principu nešlo v Arduinu programovat.
    mpcz, 18.oct.2017

Chyba je pouzivat arduino ide na riesenie takejto veci. Urcito to ide len musis vediet co vsetko to ide v zaklade urobi s up.
Jednoduchsie bude presjt na to Cko. Ved vlastne o nic nejde ze.

Navyse ak by si to chcel robit nadalej v ide arduina, tak budes musiet pouzit prikazy C a nastavovat registre uP podla toho aky uP je pouzity. Tak ze drzat sa ide arduina nema vyznam okrem problemov.