This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:programming:c:crashcourse [2015/02/19 16:14] – raivo.sell | et:programming:c:crashcourse [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 48: | Line 48: | ||
</ | </ | ||
- | ~~PB~~ | + | < |
===== Andmed ===== | ===== Andmed ===== | ||
Line 92: | Line 92: | ||
Konstante deklareeritakse samamoodi nagu muutujaid, kuid ette lisatakse //const// võtmesõna. Konstantide väärtust ei saa programmi käigus muuta. Näide kasutamisest: | Konstante deklareeritakse samamoodi nagu muutujaid, kuid ette lisatakse //const// võtmesõna. Konstantide väärtust ei saa programmi käigus muuta. Näide kasutamisest: | ||
- | |||
<code c> | <code c> | ||
- | // int tüüpi konstandi määramine | + | const int x_factor = 100; // int tüüpi konstandi määramine |
- | const int x_factor = 100; | + | |
</ | </ | ||
Line 149: | Line 147: | ||
int x, y; | int x, y; | ||
- | // Mooduli võtmine, korrutamine ja väärtuse omistamine | + | // Mooduli võtmine, korrutamine ja väärtuse omistamine, x saab väärtuse 9 |
- | // x saab väärtuse 9 | + | |
x = (13 % 5) * 3; | x = (13 % 5) * 3; | ||
- | // Liitev-omistav operaator | + | // Liitev-omistav operaator, x väärtuseks saab 14 |
- | // x väärtuseks saab 14 | + | |
x += 5; | x += 5; | ||
- | // Ühe lahutamise kiirmeetod | + | // Ühe lahutamise kiirmeetod, x väärtuseks saab 13 |
- | // x väärtuseks saab 13 | + | |
x--; | x--; | ||
</ | </ | ||
Line 190: | Line 185: | ||
==== Võrdlused ==== | ==== Võrdlused ==== | ||
- | Arvude väärtuste võrdlemisel saadakse loogilised väärtused. Võrdlustehted on samaväärsus (==), erinevus (!=), suurem (>), suurem-võrdne (>=), väiksem (<) ja väiksem-võrdne (<=). Näide kasutamisest: | + | Arvude väärtuste võrdlemisel saadakse loogilised väärtused. Võrdlustehted on samaväärsus (==), erinevus (!=), suurem (>), suurem-võrdne (> =), väiksem (<) ja väiksem-võrdne (< =). Näide kasutamisest: |
<code c> | <code c> | ||
Line 233: | Line 228: | ||
<code c> | <code c> | ||
- | // Kahe int tüüpi parameetriga | + | // Kahe int tüüpi parameetriga |
- | // Funktsioon | + | int sum(int a, int b) { |
- | int sum(int a, int b) | + | |
- | { | + | |
// Kahe arvu liitmine ja summa tagastamine | // Kahe arvu liitmine ja summa tagastamine | ||
return a + b; | return a + b; | ||
Line 242: | Line 235: | ||
// Ilma parameetrite ja tagastatava väärtuseta funktsioon | // Ilma parameetrite ja tagastatava väärtuseta funktsioon | ||
- | void power_off(void) | + | void power_off(void) { |
- | { | + | |
} | } | ||
</ | </ | ||
Line 253: | Line 245: | ||
int y = 3; | int y = 3; | ||
- | // Liitmisfunktsiooni väljakutsumine | + | // Liitmisfunktsiooni väljakutsumine, kus parameetriteks |
- | // Parameetriteks | + | |
x = sum(y, 5); | x = sum(y, 5); | ||
- | // Väljalülitamise funktsiooni väljakutsumine | + | // Väljalülitamise funktsiooni väljakutsumine, parameetrid |
- | // Parameetrid | + | |
power_off(); | power_off(); | ||
</ | </ | ||
Line 409: | Line 399: | ||
==== sprintf ==== | ==== sprintf ==== | ||
- | sprintf funktsioon toimib sarnaselt C-keeles üldlevinud printf funktsiooniga. Erinevuseks on funktsiooni tulemuse väljastamine puhvrisse (märgimassiivi), | + | sprintf funktsioon toimib sarnaselt C-keeles üldlevinud printf funktsiooniga. Erinevuseks on funktsiooni tulemuse väljastamine puhvrisse (märgimassiivi), |
Näide 1: | Näide 1: | ||
Line 444: | Line 434: | ||
| %X | Heksadetsimaalarv| 0x3F | | | %X | Heksadetsimaalarv| 0x3F | | ||
- | ===== Üldised utiliidid ===== | + | Standardteegi päisefailides stdio.h, stdlib.h ja string.h on veel terve hulk erinevaid funktsioone erinevate teksti-operatsioonide teostamiseks. Näiteks on võimalik nendega teksti muundada arvudeks, tekste liita ja võrrelda, tekstist märke otsida jpm. |
- | Standard teegi päisefailides stdio.h, stdlib.h ja string.h on veel terve hulk erinevaid funktsioone erinevate teksti-operatsioonide teostamiseks. Näiteks on võimalik nendega teksti muundada arvudeks, tekste liita ja võrrelda, tekstist märke otsida jpm. | + | ===== Juhuarvud ===== |
- | + | ||
- | ==== random | + | |
Juhuarvude genereerimine ei olegi AVR kontrolleril väga lihtne. Esmalt tuleb juhunumbrigeneraator seemendada arvuga, mille alusel genereeritakse suvaliste numbrite jada. Sama numbri järgi genereeritakse alati sama jada, seega suurema juhuslikkuse saavutamiseks on kasulik seemendus teha arvuga, mis ei ole alati sama - näiteks kasutada selleks kellaaega või lahti ühendatud ADC sisendist väärtust. | Juhuarvude genereerimine ei olegi AVR kontrolleril väga lihtne. Esmalt tuleb juhunumbrigeneraator seemendada arvuga, mille alusel genereeritakse suvaliste numbrite jada. Sama numbri järgi genereeritakse alati sama jada, seega suurema juhuslikkuse saavutamiseks on kasulik seemendus teha arvuga, mis ei ole alati sama - näiteks kasutada selleks kellaaega või lahti ühendatud ADC sisendist väärtust. | ||
Line 459: | Line 447: | ||
int x = 1 + (rand() % 16); | int x = 1 + (rand() % 16); | ||
</ | </ | ||
- | |||
- | Põhjalikuma inglisekeelse kirjelduse C keele funktsioonide kohta leiab aadressilt: | ||
- | [[http:// |