Presentation is loading. Please wait.

Presentation is loading. Please wait.

C keel AVR mikrokontrolleril

Similar presentations


Presentation on theme: "C keel AVR mikrokontrolleril"— Presentation transcript:

1 C keel AVR mikrokontrolleril

2 Testprogramm #include <stdio.h> void main() {
printf(“Hello world!\n”); }

3 Süntaks // Makro-keel #include <stdio.h> // Deklaratsioonid
int i; // Funktsioonid int main(void) { // Laused printf(“Hello world!\n”); // Avaldised i = * 4 / (23 % 5); }

4 Andmetüübid ja muutujad
Baas andmetüübid: char, int, short, long, float Massiivid: char[], int[][] Struktuurid: struct { char, int } Ühendtüüp (jagatud mälu): union { char[2], int }

5 Baas-andmetüübid short = int int x; // Näidismuutuja tüübist int Bitte
Minimaalne Maksimaalne (signed) char 8 -128 127 unsigned char 255 (signed) int 16 -32768 32767 unsigned int 65535 (signed) long 32 unsigned long short = int int x; // Näidismuutuja tüübist int

6 Massiivid ja struktuurid
unsigned char array[3]; // Ühemõõtmeline massiiv unsigned int table[10][20]; // Kahemõõtmeline massiiv // Struktuurne muutuja struct { int speed; unsigned int mass; } car; // Struktuurne andmetüüp typedef struct { int x, y; } vector; vektor points[20]; // Massiiv struktuurist

7 Funktsioonid // Funktsioon
[andmetüüp] nimi([andmetüüp] argument1, [andmetüüp] argument2) { /* Funktsiooni keha */ } Funktsioon tagastab määratud andmetüübiga väärtuse. Erand on andmetüüp void mis ei oma väärtust. Funktsiooni kehas võivad olla samad deklaratsioonid mis failis. int summa(int a, int b) { return a + b; }

8 Avaldised // Avaldis operand1 [operaator] operand2
Operand on konstant, muutuja või funktsioon. Operandi asemel võib omakorda avaldis olla. Avaldistest tekib väärtus mida saab omistada muutujatele, anda funktsiooni argumentideks või tagastada funktsioonis. int y = 0x04; int x = ruut(4) * (5 + y << 2);

9 Operaatorid Aritmeetika: + - / * % Loogikaavaldised: ! && ||
Bitiloogika: ~ & | ^ Bitinihutus: << >> Võrdlus: == != <= >= Omistus: = += -=

10 Laused Tingimuslause: if ([avaldis]) [lause]
Valikulause: switch ([avaldis]) { case [väärtus]: break; } Tsükkel: for ([lause]; [avaldis]; [lause]) { } while ([avaldis]) {}

11 Tingimuslause // Ühe tingimuse võrldus if ((2 + 1) > 2) x = 5;
// Muul-juhul lause if (x == 5) { y = 2; } else if (x == 6) { y = 3; } else { y = 0; }

12 Valikulause int y; switch (y) { case 1: funktsioonA(); break;
case 2: funktsioonB(); break; case 3: funktsioonC(); break; case 4: // Täitmisele tuleb esimene järgnev lause case 5: funktsioonYhine(); break; default: muu_funktsioon(); // Kõik muud juhtumid }

13 Tsükkel int i, x = 5; // Tsükkel toimub 5 korda – ehk seni kuni avaldis on täidetud. for (i = 0; i < 5; i++) { x += 2; // Liitev-omistav operaator } // Siinkohal tuleb x väärtuseks 15 printf(“%d”, x);

14 Tsükkel while (1) { // Lõputu tsükkel sest avaldis on alati tõene }
// Kuigi tsükkli avaldis on alati tõene on break käsuga võimalik väljuda tsüklist if (x > 100) break; if (x < 10) continue; // Kui x on alla 10, siis järgnev kood täitmisele ei lähe, vaid tsükklit alustatakse otsast y++;

15 AVR siinide kasutamine
DDRA - Suund PORTA – Väljund PINA – Sisend // Viigud 0-3 väljundiks, 4-7 sisendiks DDRA = 0x0F; // Väljundisse arv 10 PORTA = 10; // = 0x0A // Sisendi lugemine X = (PINA & 0xF0) >> 4;

16 AVR viikude manipuleerimine
// Viigu üheks seadmine PORTA |= (1 << BITT); // Viigu nullimine PORTA &= ~(1 << BITT); // Viigu inverteerimine PORTA ^= (1 << BITT); // Viigu väärtuse lugemine X = (PINA & (1 << BITT) ? 1 : 0);

17 Praktika


Download ppt "C keel AVR mikrokontrolleril"

Similar presentations


Ads by Google