Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
719,5 KB
Nội dung
Tóm tắt C cho vi điều khiển Bài tập nhà Chương trình C #include void main(void) { for (;;) { P1=0x55; P1=0xAA; } } #include void main(void) { while(1) { P1=0x55; P1=0xAA; } } Ví dụ lệnh sử dụng bit #include void main(void) { unsigned char z; z=P1; z=z&0x3; Chuyển đổi Hex - ASCII #include void main(void) { unsigned char x,y,z; unsigned char mybyte=0x29; x=mybyte&0x0F; P1=x|0x30; y=mybyte&0xF0; y=y>>4; P2=y|0x30; } #include void main(void) { unsigned char bcdbyte; unsigned char w=‘4’; unsigned char z=‘7’; w=w&0x0F; w=w[...]... clock() - t0); \ } Sử dụng như sau: TIMELOOP(y = sin(x)); 19 Dịch có điều kiện Các lệnh dịch có điều kiện trong C: #if, #elif, #else, #endif #ifdef, #ifndef Mục đích: Thêm vào các đoạn gỡ lỗi chương trình Thêm vào các đoạn không phãi mã chuẩn, Bảo vệ các header-files sử dụng nhiều lần gọi Typedefs A typedef cũng có cùng ý nghĩa như #define, tức là thuần tùy thực hiện vi c thay thế văn bản,... hàm và các biến #include #include “myheader.h” File #include sẽ chèn toàn bộ đoạn mã mà nó được gọi đến vào phần mềm Macros Lệnh #define thường được sử dụng trong vi c tạo ra các macro Khai báo sau #define MAX(x,y) ((x)>(y) ? (x) : (y)) Macro giống như hàm, nhưng thực chất không phải hàm Thực tế chương trình dịch sẽ thay thế mọi khai báo MAX bằng dòng lệnh tương ứng các đối số đưa vào... tĩnh mô tả vi c gọi hàm trong ví dụ trên Tham Số Và Biến Cục Bộ Phạm vi tĩnh (Static Scope) Biến hay hàm có từ khóa static ở trước chỉ có phạm vi trong file được dùng đó Khởi tạo biến tĩnh mặc định là 0 Biến cục bộ dùng trong hàm khi có khai báo static sẽ giữ nguyên giá trị giữa các lần gọi hàm int increment(void) { static int local_static; return local_static++; } 32 Phạm vi Tĩnh Biến và hàm tĩnh... Thay vi đưa vào theo giá trị, người ta đưa vào theo con trỏ Giá trị đầu vào sẽ được copy những vẫn trỏ đến cùng ô nhớ ban đầu swap(&a, &b); /* Pass pointers to a and b */ void swap(int* px, int* py) /*px and py are copies of the pointer arguments*/ { int tmp = *px; *px = *py; *py = tmp; } Ví dụ: strcpy() Thường dùng con trỏ như sau void strcpy (char *s, char *t) { while (*s++ = *t++) ; } Con trỏ và. .. thế văn bản, nhưng typedef là từ khóa của C, và được dịch bởi chương trình dịch Từ khóa typedef cho phép tạo ra kiểu dữ liệu mới với tên mới typedef int Length; Length len, maxlen; Length lengths[50]; Toán tử làm vi c với bit C cung cấp 6 toán tử bit: &| ^ ~ > Các toán tử này chỉ làm vi c với các kiểu char, short, int, long Không dùng cho dấu phẩy động Và 5 phép gán bit như sau &= |= ^= = Phép... Biến và hàm tĩnh của một file không thể được sử dụng bởi các file khác Có thể có cùng một tên mà không bị tranh chấp tên File one.c: static double myvariable; static void myfunc(int idx); File two.c: static int myvariable; static int myfunc(int idx); 33 Tóm tắt Hàm có phạm vi ngoài là mặc định Hàm và biến có khai báo static chỉ giới hạn sử dụng trong file đó Biến định nghĩa trong hàm chỉ... shksum=0; unsigned char x; for (x=0;x sert.h> 14 eArea (double r) { 0); * r * r; rArea (double inner, double outer) { erArea, outerArea, washerArea; er>=0.0 && outer>inner); = CircleArea(inner);... các mặt nạ, toán tử ~ dùng 25 2 3 4 5 để đảo dấu tất cả các bit (mọi bit là 1 trừ những bit được che mặt nạ) |= dùng để set bits &= dùng để reset bits ^= dùng để đảo dấu bits & dùng để chọn bits (cho vi c kiểm tra trạng thái) Các Macros cho từng bít #define #define #define #define BitSet(arg,posn) BitClr(arg,posn) BitFlp(arg,posn) BitTst(arg,posn) ((arg) ((arg) ((arg) ((arg) | (1L