Cấu hình cho bên phát
EDMA_Config gEdmaConfigXmt = {
EDMA_FMKS(OPT, PRI, HIGH) | // Mức ưu tiên là High
EDMA_FMKS(OPT, ESIZE, 16BIT) | // Kích thước một mẫu truyền là 16 bít EDMA_FMKS(OPT, 2DS, NO) | // 2 dimensional source?
EDMA_FMKS(OPT, SUM, INC) | // Dạng update địa chỉ nguồn là INC EDMA_FMKS(OPT, 2DD, NO) | // 2 dimensional dest
EDMA_FMKS(OPT, DUM, NONE) | // Dạng update địa chỉ đích là None EDMA_FMKS(OPT, TCINT, YES) | // Có dùng ngắt EDMA không ? Yes EDMA_FMKS(OPT, TCC, OF(0)) | // Cờ truyền TCC
Đồ án tốt nghiệp đại học Trang 63
Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50
EDMA_FMKS(OPT, LINK, YES) | // Cho phép liên kết các tham số. EDMA_FMKS(OPT, FS, NO), // Sử dụng đồng bộ khung ? (Uint32)&gBufferXmtPing, // Địa chỉ nguồn.
EDMA_FMK (CNT, FRMCNT, NULL) | // Số khung truyền mỗi lần EDMA_FMK (CNT, ELECNT, BUFFSIZE), // Số element truyền mỗi lần EDMA_FMKS(DST, DST, OF(0)), // Địa chỉ đích
EDMA_FMKS(IDX, FRMIDX, DEFAULT) | // Chỉ số khung EDMA_FMKS(IDX, ELEIDX, DEFAULT), // Chỉ số element
EDMA_FMK (RLD, ELERLD, NULL) | // Reload element EDMA_FMK (RLD, LINK, NULL) // Reload link };
Cấu hình cho bên nhận:
EDMA_Config gEdmaConfigRcv = {
EDMA_FMKS(OPT, PRI, HIGH) | // Priority
EDMA_FMKS(OPT, ESIZE, 16BIT) | // Element size
EDMA_FMKS(OPT, 2DS, NO) | // 2 dimensional source? EDMA_FMKS(OPT, SUM, NONE) | // Src update mode EDMA_FMKS(OPT, 2DD, NO) | // 2 dimensional dest EDMA_FMKS(OPT, DUM, INC) | // Dest update mode
EDMA_FMKS(OPT, TCINT, YES) | // Cause EDMA interrupt? EDMA_FMKS(OPT, TCC, OF(0)) | // Transfer complete code EDMA_FMKS(OPT, LINK, YES) | // Enable link parameters? EDMA_FMKS(OPT, FS, NO), // Use frame sync?
EDMA_FMKS(SRC, SRC, OF(0)), // Src address EDMA_FMK (CNT, FRMCNT, NULL) | // Frame count EDMA_FMK (CNT, ELECNT, BUFFSIZE), // Element count
Đồ án tốt nghiệp đại học Trang 64
Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50
(Uint32)&gBufferRcvPing, // Dest addres
EDMA_FMKS(IDX, FRMIDX, DEFAULT) | // Frame index value EDMA_FMKS(IDX, ELEIDX, DEFAULT), // Element index value EDMA_FMK (RLD, ELERLD, NULL) | // Reload element
EDMA_FMK (RLD, LINK, NULL) // Reload link };