v
Định
nghĩa các hàm
Các hàm được định nghĩa gồm các phát biểu để thực hiện các
giải thuật phục vụ cho dự án. Cấu
trúc của hàm như sau:
Từ khoá của hàm tên hàm (các biến mà hàm sử dụng)
Khai báo các biến cần thiết và các kiểu dữ liệu cho hàm
{
Các phát biểu trong hàm
}
+ Từ khoá của hàm gồm các thành phần: void, #separate ,
#inline, #int_…hoặc có thể bỏ trống.
+ Tên hàm được đặt tùy ý
+ Các biến sử dụng trong hàm sẽ được phân cách nhau bởi dấu
‘,’. Nếu không sử dụng biết trong hàm thì các biến trong hàm bỏ trống.
· Phát biểu điều kiện if - else
Phát biểu điều kiện if – else được dùng để rẽ nhánh chương trình, phát biểu
if else có dạng như sau:
If (điều kiện)
{
Các lệnh trong chương trình
}
else
{
Các lệnh trong chương trình
}
Cắp từ khóa {} được dùng nếu các lệnh trong chương trình gồm nhiều lệnh.
Trong trường hợp chỉ có một lệnh thì không cần dùng cắp từ khoá {}.
· Vòng lặp WHILE
Vòng lặp while được dùng để lặp chương trình. Cấu trúc của vòng lặp while
như sau:
while (biểu thức điều kiện)
{
Các lệnh trong chương trình
}
Hoạt động của vòng lặp while là sẽ thực hiện các lệnh trong cặp từ khoá {}
khi mà biểu thức điều kiện là đúng.
· Vòng lặp do –
while
Vòng lặp do – while được sử dụng tương tự như vòng lặp while tuy nhiên,
vòng lặp while kiểm tra điều kiện trước khi thực hiện các lệnh còn vòng lặp do
– while sẽ kiểm tra điều kiện sau khi thực hiện các lệnh. Cấu trúc của vòng lặp
do– while như sau:
do
{
Các lệnh trong chương trình
}
while (biểu thức điều kiện);
· Vòng lặp for
Vòng lặp for được dùng để lặp lại chương trình theo một biến đếm. Cấu trúc
của vòng lặp for như
sau:
For (biểu thức 1; biểu thức 2; biểu thức 3)
{
Các lệnh trong chương trình
}
Trong đó biểu thức 1 là giá trị khởi đầu của biến đếm, biểu thức 2 là giá
trị cuối của biến đếm,
biểu thức 3 là biểu thức đếm.
· Phát biểu SWITCH
– CASE
Phát biểu switch – case được dùng để rẽ nhánh chương trình. Cấu trúc của
phát biểu này như sau:
Switch (biểu thứcđiều kiện)
{
case điều kiện 1:
Các lệnh trong chương trình;
Break;
Case điều kiện 2:
Các lệnh trong chương trình;
Break;
…
default:
Các lệnh trong chương trình;
Break;
}
· Phát biểu return
Phát biểu return được dùng để trả về trị của hàm. Phát biể return như sau:
Return (giá trị);
· Phát biểu goto
Phát biểu goto được dùng để nhảy tới một nhãn trong chương trình. Phát biểu
goto có dạng như
sau:
goto nhãn;
· Phát biểu break
Phát biểu break dùng để kết thúc một nhóm lệnh trong cặp từ khóa {}. Phát
biểu break như sau:
break;
· Phát biểu
continue
Phát biểu continue dùng để tiếp tục thực hiện một nhóm lệnh trong cặp từ
khóa {}. Phát biểu
continue như sau:
continue;
v
Nhóm Hàm Vào/Ra Số
·
OUTPUT_LOW()
Hàm này dùng để reset các chân của MCU về mức logic 0
+ Cú pháp: output_low (pin)
+ Tham số: các chân (pin) phải được định nghĩa trong file
tiêu đề devices .h. Giá trị hoạt động là bit địa chỉ. Ví dụ, cần port A (byte
5) bit 3 tương ứng với giá trị 5*8+3 or 43 thì sẽ định nghĩa như sau: #define
PIN_A3 43
+ Trị trả về: không
+ Yêu cầu: Chân IC phải được định nghĩa trong tập tin tiêu đề devices .h
· OUTPUT_HIGH()
Hàm này dùng để set các chân của MCU lên mức logic 1.
+ Cú pháp: output_high(pin)
+ Tham số: các chân (pin) phải được định nghĩa trong file tiêu đề devices
.h. Giá trị hoạt động là bit địa chỉ. Ví dụ, cần port A (byte 5) bit 3 tương ứng
với giá trị 5*8+3 or 43 thì sẽ định nghĩa như sau: #define PIN_A3 43
+ Trị trả về: không
+ Yêu cầu: Chân IC phải được định nghĩa trong tập tin tiêu đề devices .h
· OUTPUT_FLOAT()
Hàm này dùng để Set mode input cho các chân. Hàm này cho phép pin ở mức cao
với mục đích như là một cực collector thu hở.
+ Cú pháp: output_float(pin)
+ Tham số: các chân (pin) phải được định nghĩa trong file tiêu đề devices
.h. Giá trị hoạt động là bit địa chỉ. Ví dụ, cần port A (byte 5) bit 3 tương ứng
với giá trị 5*8+3 or 43 thì sẽ định nghĩa như sau: #define PIN_A3 43
+ Trị trả về: không
+ Yêu cầu:
Chân IC phải được định nghĩa trong tập tin tiêu đề devices .h
· OUTPUT_BIT()
Hàm này được dùng để xuất giá trị 0 hoặc 1 trên các ngõ ra.
+ Cú pháp: output_bit (pin, value)
+ Tham số: tương tự output_low(pin) và output_high(pin)
+ Trị trả về: không
+ Yêu cầu: chân IC phải được định nghĩa trên các tập tin tiêu đề devices
.h
Ví dụ:
output_bit( PIN_B0, 0);
// Giống như output_low(pin_B0);
output_bit( PIN_B0,input( PIN_B1 ) ); // Đặt chân B0 giống chân B1
output_bit( PIN_B0,shift_left(&data,1,input(PIN_B1)));
· INPUT()
Hàm này trả về trạng thái các chân. Phương thức I/O phụ thuộc vào USE *_IO
điều khiển trước đó.
+ Cú pháp: value = input (pin)
+ Tham số: các chân của device phải được khai báo trong tập tin tiêu đề
device.h và sẽ được đọc sau lệnh input(). Giá trị là các bit địa chỉ.
+ Trị trả về: 0 (or FALSE) nếu giá trị trên chân IC là 0
1 (or TRUE) nếu giá trị trên chân IC là 1
Ví dụ:
while ( !input(PIN_B1) ); // waits for B1 to go high
if( input(PIN_A0) )
printf("A0 is now high\r\n");
· OUTPUT_X()
Hàm này được dùng để xuất một byte ra cổng. Cổng điều khiển phụ thuộc vào
khai báo điều khiển #USE *_IO trước đó
+ Cú pháp :
output_a (value)
output_b (value)
output_c (value)
output_d (value)
output_e (value)
+ Tham số
value là một số nguyên 8 bit
+ Trị trả về : không
+ Yêu cầu : không
Ví dụ:
OUTPUT_B(0xf0); // Xuất 11110000b ra port B
· INPUT_X()
Hàm này được dùng để nhập một byte từ Port. Port điều khiển phụ thuộc vào
khai báo điều khiển #USE*_IO trước đó.
+ Cú pháp:
value = input_a()
value = input_b()
value = input_c()
value = input_d()
value = input_e()
+ Tham số: không
+ Trị trả về: số nguyên 8 bit.
+ Yêu cầu : không
Ví dụ:
data = input_b();
· PORT_B_PULL-UPS()
Hàm này được dùng để Sets cổng vào B pullup. TRUE sẽ hoạt động, và FALSE sẽ
ngừng.
+ Cú pháp: port_b_pull-ups (value)
+ Tham số: value là biến bool logic ( TRUE hoặc FALSE)
+ Trị trả về: không
Lưu ý: Chỉ có trên các thiết bị 14 và 16 bit (PCM and PCH). (Note: use
SETUP_COUNTERS trong PCB phần).
Ví dụ:
port_b_pullups(FALSE);
· SET_TRIS_X()
Những hàm này định nghĩa chân I/O cho một port. Điều này chỉ thực hiện được
khi sử dụng FAST_IO và khi cổng xuất nhập được truy cập. Mỗi bit đại diện cho một
chân. số 1 chỉ chân nhập và 0 chỉ chân xuất
+ Cú pháp: set_tris_a (value)
set_tris_b (value)
set_tris_c (value)
set_tris_d (value)
set_tris_e (value)
+ Tham số: value là số nguyên 8 bit với mỗi bit đại diện cho một cổng xuất
nhập.
+ Yêu cầu: không
Ví dụ:
SET_TRIS_B( 0x0F ); //
B7,B6,B5,B4 là xuất, B3,B2,B1,B0 là nhập
· BIT_SET()
Hàm này được dùng để Sets bit cho một biến. Hàm này tương đương:
var |=(1<<bit);
+ Cú pháp: bit_set(var,bit)
Tham số: var là biến 8,16 or 32
bit, bit là một số từ 0-31 thể hiện số bit, 0 là bit có trọng số thấp nhất.
+ Trị trả về:
không
+ Yêu cầu : không
Ví dụ:
int x;
x=5;
bit_set(x,3); // x is now 13
bit_set(*6,1); // A crude way
to set pin B1 high
. . .
~> Còn nữa . . .
0 nhận xét:
Đăng nhận xét