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 15:23] – vana versioon taastatud (2014/10/14 10:04) raivo.sell | et:programming:c:crashcourse [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~PB~~ | ||
====== C keele kiirkursus ====== | ====== C keele kiirkursus ====== | ||
Line 49: | Line 48: | ||
</ | </ | ||
- | ~~PB~~ | + | < |
===== Andmed ===== | ===== Andmed ===== | ||
Line 79: | Line 78: | ||
<code c> | <code c> | ||
- | // char tüüpi muutuja c deklareerimine | + | char c; // char tüüpi muutuja c deklareerimine |
- | char c; | + | |
- | // Muutujale c väärtuse omistamine. | + | c = 65; // Muutujale c väärtuse omistamine. |
- | c = 65; | + | |
c = ' | c = ' | ||
Line 92: | Line 89: | ||
unsigned short x, y, test_variable; | unsigned short x, y, test_variable; | ||
</ | </ | ||
- | |||
- | ~~PB~~ | ||
==== Konstandid ==== | ==== Konstandid ==== | ||
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 142: | Line 135: | ||
table[4][3] = 1; | table[4][3] = 1; | ||
</ | </ | ||
- | |||
- | ~~PB~~ | ||
===== Avaldised ===== | ===== Avaldised ===== | ||
Line 156: | 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 197: | 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 234: | Line 222: | ||
Bititehted on hädavajalikud mikrokontrollerite registrite kasutamisel. Täpsemalt tutvustab neid AVR registrite peatükk. | Bititehted on hädavajalikud mikrokontrollerite registrite kasutamisel. Täpsemalt tutvustab neid AVR registrite peatükk. | ||
- | |||
- | ~~PB~~ | ||
===== Funktsioonid ===== | ===== Funktsioonid ===== | ||
Line 242: | 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 251: | 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 262: | 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 273: | Line 254: | ||
C-keele programmi täitmist alustatakse //main// nimelisest funktsioonist, | C-keele programmi täitmist alustatakse //main// nimelisest funktsioonist, | ||
- | ~~PB~~ | ||
===== Laused ===== | ===== Laused ===== | ||
Line 317: | Line 297: | ||
} | } | ||
</ | </ | ||
- | |||
- | ~~PB~~ | ||
==== Valikulause ==== | ==== Valikulause ==== | ||
Line 369: | Line 347: | ||
} | } | ||
</ | </ | ||
- | |||
- | ~~PB~~ | ||
==== for ==== | ==== for ==== | ||
Line 423: | 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 458: | 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 473: | Line 447: | ||
int x = 1 + (rand() % 16); | int x = 1 + (rand() % 16); | ||
</ | </ | ||
- | |||
- | Põhjalikuma inglisekeelse kirjelduse C keele funktsioonide kohta leiab aadressilt: | ||
- | [[http:// |