Arduino UNO- zelenáč se zelená
Moderátor: Moderátoři
To asi bude povícero překvapení.
Dneska jsem zkusil světelný řetízek s potenciometrem regulovatelnou rychlostí...
int del=A0;
const int de=A0;
byte a=2;
int b=3;
int c=4;
int d=5;
int e=6;
int f=7;
int g=8;
int h=9;
int i=10;
int j=11;
int k=12;
int l=13;
void setup()
{
pinMode(a, OUTPUT);
pinMode (b, OUTPUT);
pinMode(c, OUTPUT);
pinMode (d, OUTPUT);
pinMode(e, OUTPUT);
pinMode (f, OUTPUT);
pinMode(g, OUTPUT);
pinMode (h, OUTPUT);
pinMode(i, OUTPUT);
pinMode (j, OUTPUT);
pinMode(k, OUTPUT);
pinMode (l, OUTPUT);
del=0;
Serial.begin(9600);
}
void loop()
{
del=analogRead (de);
del=del/4;
Serial.print("prodleva = " );
Serial.print(del);
Serial.println();
//delay(1000);
digitalWrite(a, HIGH);
delay (del);
digitalWrite(a, LOW);
digitalWrite (b, HIGH);
delay (del);
digitalWrite (b, LOW);
digitalWrite (c, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (c, LOW);
digitalWrite (d, HIGH);
delay (del);
digitalWrite (d, LOW);
digitalWrite (e, HIGH);
delay (del);
digitalWrite (e, LOW);
digitalWrite (f, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (f, LOW);
digitalWrite (g, HIGH);
delay (del);
digitalWrite (g, LOW);
digitalWrite (h, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (h, LOW);
digitalWrite (i, HIGH);
delay (del);
digitalWrite (i, LOW);
digitalWrite (j, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (j, LOW);
digitalWrite (k, HIGH);
delay (del);
digitalWrite (k, LOW);
digitalWrite (l, HIGH);
delay (del);
digitalWrite (l, LOW);
}
Dneska jsem zkusil světelný řetízek s potenciometrem regulovatelnou rychlostí...
int del=A0;
const int de=A0;
byte a=2;
int b=3;
int c=4;
int d=5;
int e=6;
int f=7;
int g=8;
int h=9;
int i=10;
int j=11;
int k=12;
int l=13;
void setup()
{
pinMode(a, OUTPUT);
pinMode (b, OUTPUT);
pinMode(c, OUTPUT);
pinMode (d, OUTPUT);
pinMode(e, OUTPUT);
pinMode (f, OUTPUT);
pinMode(g, OUTPUT);
pinMode (h, OUTPUT);
pinMode(i, OUTPUT);
pinMode (j, OUTPUT);
pinMode(k, OUTPUT);
pinMode (l, OUTPUT);
del=0;
Serial.begin(9600);
}
void loop()
{
del=analogRead (de);
del=del/4;
Serial.print("prodleva = " );
Serial.print(del);
Serial.println();
//delay(1000);
digitalWrite(a, HIGH);
delay (del);
digitalWrite(a, LOW);
digitalWrite (b, HIGH);
delay (del);
digitalWrite (b, LOW);
digitalWrite (c, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (c, LOW);
digitalWrite (d, HIGH);
delay (del);
digitalWrite (d, LOW);
digitalWrite (e, HIGH);
delay (del);
digitalWrite (e, LOW);
digitalWrite (f, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (f, LOW);
digitalWrite (g, HIGH);
delay (del);
digitalWrite (g, LOW);
digitalWrite (h, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (h, LOW);
digitalWrite (i, HIGH);
delay (del);
digitalWrite (i, LOW);
digitalWrite (j, HIGH);
delay (del);
del=analogRead (de);
del=del/4;
digitalWrite (j, LOW);
digitalWrite (k, HIGH);
delay (del);
digitalWrite (k, LOW);
digitalWrite (l, HIGH);
delay (del);
digitalWrite (l, LOW);
}
Nejsu žádným fóristem, ale když něco negómu, tož, přindu se zeptat. A když se nesnesitelně nudím, nebo když jsu na plech, někdy se může stát, že se i pokusím poradit. Zdraví Jura!
- ZdenekHQ
- Administrátor
- Příspěvky: 25593
- Registrován: 21 črc 2006, 02:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Já jsem zvyklý na Pekny_nazev_pro_retezec, nějak ze zvyku dávám první písmeno velký, v asm to nevadí. Nakonec moje programy většinou nejsou veřejný, tak je to čistě moje věc.mtajovsky píše:Kód: Vybrat vše
#define PI 3.14 // OK int muj_index; // OK float getValue(void); // tohle je taky OK char* Hnusny_Nazev_Pro_Retezec; // tohle není OK char pekny_nazev_pro_retezec[20]; // tohle už je lepší
Jenže pak přijde někdo, kdo chce PeknyNazevProRetezec a já jsem v háji, pořád se mně tam pletou ty podtržítka...
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
ZdenekHQ << pokud jsou vaše programy jen vaše, je to (možná) jedno. Pokud na projektu pracuje více vývojářů, je třeba dohodnout kódovací pravidla a ta dodržovat. Jde zejména o přehlednost s snadnost čtení a taky, pokud se čte cizí kód, tak aby se člověk cítil jako doma. Omezuje to chyby z přehlédnutí a nepozornosti. Za sebe musím říct, že míchání kombinace velkých a malých písmen s podtržítky mi dost vadí - až z toho bolí oči a je to velice náchylné na chyby. Když už camel, tak by se velká písmena v názvu měla používat ne jako první písmeno - to nemá opodstatnění, ale jako oddělovač slov, nejčastěji podstatného jména, slovesa a případně přídavného jména, číslovky atd., která jsou složena do jednoho názvu. Sloveso činnosti se obvykle dává na začátek s malým písmenem. Jistě se čte snadněji camelnež To stejné platí o používání podržítek. A proto je kombinace camel s podtžítky špatná, přináší zbytečně mnoho oddělovacích markerů v názvu a to snižuje čitelnost.
P.S.: existuje jistě mnoho pravidel pro psaní názvů proměnných tak, aby samotný název co nejvíce řekl o co jde. U nás ve firmě, například, dáváme za každý název fyzikální veličiny důsledně suffix, který říká jednotku. Například: a podobně. Jeden by nevěřil, co to ušetří koukání do dokumentace a případných chyb a nedorozumění na interfacech modulů.
Kód: Vybrat vše
getFirstItem
Kód: Vybrat vše
Getfirstitem
P.S.: existuje jistě mnoho pravidel pro psaní názvů proměnných tak, aby samotný název co nejvíce řekl o co jde. U nás ve firmě, například, dáváme za každý název fyzikální veličiny důsledně suffix, který říká jednotku. Například:
Kód: Vybrat vše
distance_m
velocity_kmph
- ZdenekHQ
- Administrátor
- Příspěvky: 25593
- Registrován: 21 črc 2006, 02:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Tak to my se zatím spíš rozcházíme, ale na daleko vyšší úrovni. Teď třeba místo master a slave zavedli duck a duckling či jak to napsali, to je pak teprve mazec...
Asi dost dělají závorky, v asm se nepoužívají vůbec, takže to i jinak vypadá.
Asi dost dělají závorky, v asm se nepoužívají vůbec, takže to i jinak vypadá.
Kód: Vybrat vše
mov a,P_cyklu
cjne a,#Wt_start,Sm_star2
Sm_star2:
jnc Sm_star3 ;--> prechod do dalsiho MODE
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
U nás jsme si kdysi nastavili svůj standard a ten přísně dodržujeme. Kromě "camel" názvů je to i způsob pojmenování lokálních proměnných, formátování (dvě mezery), pojmenování typů a pod. A to ve všech jazycích, ve kterých píšeme (assembler mezi nimi už dlouho není).
Teda kromě lokálních i,j to zůstalo jako památka na Fortran![Smile :)](./images/smilies/icon_smile.gif)
Teda kromě lokálních i,j to zůstalo jako památka na Fortran
![Smile :)](./images/smilies/icon_smile.gif)
- ZdenekHQ
- Administrátor
- Příspěvky: 25593
- Registrován: 21 črc 2006, 02:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Z "ijklmn" mám kopřivku, protože si někteří nějak neuvědomují, že v asm (JSA pro šťouraly) nejsou lokální proměnné. Teda kromě registrů bank, a to velmi omezeně. Já ty procesory obecně beru jako BIOS pro navržené HW, bohužel někdo na tom chce stavět orloj...
Znám vyšší programovací jazyky a třeba oblíbený cyklus typu "for i", ale když mně někdo řekne, že zná 8051, dělal na něm hromadu let a přitom požaduje lokální proměnnou, tak si bohužel myslím svoje...
Znám vyšší programovací jazyky a třeba oblíbený cyklus typu "for i", ale když mně někdo řekne, že zná 8051, dělal na něm hromadu let a přitom požaduje lokální proměnnou, tak si bohužel myslím svoje...
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
JiriTom << kupte si variantu s paticí a ATmega328 v DIL pouzdře. Má to výhodu přinejmenším v opravitelnosti.
void f(void);
tak zápisem f() se ta funkce vyvolá, kdežto samotné f znamená pointer na tu funkci, čili adresu, na které ta funkce začíná. Tento pointer je regulérním pointerem, který lze předat například argumentem jako call-back funkci do jiné funkce.
Rovněž tak:
int *f(char c); je deklarace funkce odevzdávající pointer na int, ale:
typedef int (*F)(char c); je definice nového typu - a sice typu "pointer na funkci, která bere jako argument char a vrací int. Pak:
F f; je alokace pointeru datového typu F v paměti pod názvem f.
A to nemluvím o závorkách deklarovaných jako operátor pro třídu, čímž dostáváme funkční objekt (více nějaká učebnice C++
)
Proto úsměvy nad C++ jako jazykem, který to se závorkami nadbytečně přehání, opravdu nejsou na místě.
Ony závorky v C jsou velmi podstatným prvkem, který není kvůli čitelnosti, ale jsou integrální součástí syntaxe. Nejen, že mění prioritu operací - to je obvyklé, také určují, co je všechno argumentem funkce, a také někdy říkají, co je daný indetifikátor zač. Jestliže máme funkci s deklaracíZdenekHQ píše: ...Asi dost dělají závorky, v asm se nepoužívají vůbec ...
void f(void);
tak zápisem f() se ta funkce vyvolá, kdežto samotné f znamená pointer na tu funkci, čili adresu, na které ta funkce začíná. Tento pointer je regulérním pointerem, který lze předat například argumentem jako call-back funkci do jiné funkce.
Rovněž tak:
int *f(char c); je deklarace funkce odevzdávající pointer na int, ale:
typedef int (*F)(char c); je definice nového typu - a sice typu "pointer na funkci, která bere jako argument char a vrací int. Pak:
F f; je alokace pointeru datového typu F v paměti pod názvem f.
A to nemluvím o závorkách deklarovaných jako operátor pro třídu, čímž dostáváme funkční objekt (více nějaká učebnice C++
![Smile :)](./images/smilies/icon_smile.gif)
Proto úsměvy nad C++ jako jazykem, který to se závorkami nadbytečně přehání, opravdu nejsou na místě.
- ZdenekHQ
- Administrátor
- Příspěvky: 25593
- Registrován: 21 črc 2006, 02:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Já naštěstí úsměvem nad závorkama netrpím, nakonec znám třeba Pascal či částečně php, ale na druhou stranu "céčkovský" zápis pro požadovaný asm kód taky může skončit pěkným nedorozuměním. Mám s tím zajímavý zkušenosti...
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Jak to, že se nepoužívají vůbec? Znáš vůbec něco jiného než 8051?ZdenekHQ píše:Asi dost dělají závorky, v asm se nepoužívají vůbec
AVR:
Kód: Vybrat vše
ldi R16,(1<<CLKPS2)|(1<<CLKPS1)
Kód: Vybrat vše
and A,#~((mask >> 7) + (mask << 1))
Kód: Vybrat vše
mov AX,((XRAMSA * 64) AND 0FE00h) + RAMWS
mov DL,low(KEYB + 4)
mov EDX,[TempWins + ECX * 4]
Kód: Vybrat vše
push {R0 - R3}
ldr R0,=(1<<20)|(1<<19)|(1<<16)|(1<<7)|(1<<8)
str R0,[R2,#(AIC_SMR + (ID_SYS<<2))]