Embedded Software phần 3

Khi một phần của chương trình được sử dụng ở nhiều nơi trong chương trình, nó là một sử dụng hiệu quả hơn của bộ nhớ chương trình để xây dựng một thói quen nhỏ riêng biệt và truy cập thông qua báo cáo CALL và RETURN. Mặc dù CALL và RETURN báo cáo là hữu ích, sử dụng của họ nên được tôi luyện | Device Drivers 137 AF PB31 Port B AF PB14 Figure MPC860 Port B Pins Source Copyright of Freescale Semiconductor Inc. 2004. Used by permission. PBDAT PBODR PBDIR PBPAR 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 D D D D D D D D D D D D D D D D D D OD OD OD OD OD OD OD OD OD OD OD OD OD OD OD OD OD OD DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD Figure MPC860 Port B Register Source Copyright of Freescale Semiconductor Inc. 2004. Used by permission. An example ofimtiallzing the SDA andSCL peisc the MPC860 is given m the pseudo code below. iimr immr OxFFFFOOOO MPC8xx internal register map Configure Port B pins to enable SDA and SCL immr- pbpar pbpar OR 0x00000030 set to dedicated I2C immr- pbdir pbdir OR 0x00000030 EnableI2CSDAandI2CSCL s s- as outputs The I2C registers that need initialization include the I2C Mode Register I2M0D I2C Address Register I2ADD the Baud Rate Generator Register I2BRG the I2C Event IThUSier I2CER and thel2c MaskRegister 12 CMR shown . 22CUo le Register liMFD 0 1 2 3 4 5 6 7 I - I- REVD GCD FLT pdiv I enJ Figure I2 MOD 138 Chapter 2 FC Address Register I2ADD 0 1 23 45 67 I SAD 0 6 I - SADO - SAD6 SlaAeAddress Figure I2ADD FC BRG Register I2BRG 0 1 2 3 4 5 6 7 DIV 0 7 Figure I 2BRG FC Event Register I2CER 0 12 5 6 7. I - I - I - ITXEI - bsy txb rxb Figure d I2CER PC Mask Registee I2CMR 012 3 4 5 6 7 I - I - I - ITXEI - bsy txb rxb Figure I2CMR An example of I2C register initialization pseudo code is as follows I2C Registers Initialization Sequence DisabIel2Cbefore initializingit LSBcharacter order for transmission and reception I2C clock not filtered clock division factor of 32 etc. immr- i2mod 0x00 iirimr- i2add 0x80 I2CMPC860 address 0x80 immr- i2brg 0x20 divide ratio of BRG divider immr- i2cer 0x17 Clear out I2C events by setting relevant bitsto l immr- i2cmr 0xl7 EnableinterruptsfoomI2Cin

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.