Bộ Môn Viễn Thông-ĐH Bách
Khoa TpHCM
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU
4
if(DSK6713_DIP_get(0)==0) //=0 if switch #0 pressed
{
DSK6713_LED_on(0); //turn LED #0 ON
output_sample(sine_table[loop]*gain);//output every Ts (SW0 on)
if (++loop > 7) loop = 0; //check for end of table
}
else DSK6713_LED_off(0); //LED #0 off
} //end of while (1)
}
Giải thích chương trình
Trong chương trình này, một bảng
sine_table được tạo ra và chứa 8 điểm thể hiện giá trị
của sin(t) tại t = 0, 45, 90, 135, 180, 225, 270 và 315 độ (tỷ lệ 1000). Trong hàm
main(), một
hàm khác,
comm_poll, được gọi. Hàm này được chứa trong tập tin
c6713dskinit.c. Nó khởi
động DSK, bộ codec AIC onboard và các cổng nối tiếp trên bộ xử lý C6713.
Lệnh
while(1) trong hàm
main tạo một vòng lặp vô tận. Khi dip switch 0 được nhấn, LED 0
được bật lên và tín hiệu sine được tạo ra. Ngược lại, hàm
DSK6713_DIP_get(0) sẽ là
false
và LED 0 sẽ tắt.
Hàm
output_sample, chứa trong tập tin hỗ trợ
C6713dskinit.c, được gọi để xuất giá trị dữ
liệu đầu tiên trong bảng
sine_table[0] = 0. Chỉ số lặp
loop sẽ được tăng dần cho đến hết
bảng và trở lại giá trị zero.
Mỗi chu kỳ lấy mẫu
T
s
= 1/
F
s
= 1/8000 = 0.125ms, giá trị của dip switch 0 được kiểm tra và
một giá trị tiếp theo trong bảng
sine_table (nhân với tỷ lệ
gain) được xuất ra. Trong một chu
kỳ tín hiệu, 8 giá trị dữ liệu ( cách nhau 0.125ms) được xuất ra để tạo một tín hiệu sine. Chu
kỳ của tín hiệu sine thu được là
T = 8
(0.125ms) = 1ms ứng với tần số
f = 1/
T = 1 kHz.
Tạo project
Phần này sẽ minh họa cách tạo một project mới, thêm các tập tin cần thiết để biên dịch
project sine8_LED.
1.
Trong CCS, chọn Project New. Trong hộp thoại tạo Project, nhập tên project
là sine8_LED, chọn Project Type là Executable (.out) và Target là TMSC67xx.
Chia sẻ với bạn bè của bạn: