30/09/2018, 18:32

Cần giải đáp thắc mắc về lập trình arm tiva tm4c123

em đang lập trình cho kit tiva arm tm4c 123 và gặp rắc rối khi lập trình
1.khi muốn điều khiển hết các chân của 1 port nào đó thì phải làm thế nào
vd: như lệnh GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_0,0x0f) chỉ điều khiển được pin0 của port B còn giờ muốn điều khiển cả port B thì phải làm thế nào ạ?
2.có thể cấp xung cho cả port B lẫn port D được ko ạ?
vd: có thể dùng lệnh SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB|SYSCTL_PERIPH_GPIOD)

hoangviet viết 20:38 ngày 30/09/2018

bạn có thể tác động trực tiếp vào thanh ghi của nó luôn. Nhưng thường các dòng 32bit thì phải khai báo chõ mỗi pin của mỗi port như chức năng, mode, mapping tới ngoại vi nên người ta thường chỉ tác động lên pin riêng lẻ thôi.
Bạn muốn tác động cả port thì viết thêm hàm có tham số là một số 16bit. Trong hàm ta đọc từng bit của số trên và set giá trị tương ứng cho mỗi pin.
Có thể cấp clock như bạn nói được.

Nguyễn Khải viết 20:41 ngày 30/09/2018

ý bạn là đọc từng port như thế này hả
GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,maled[i])

hoangviet viết 20:32 ngày 30/09/2018

bạn phải tự viết hàm xử lý thằng mã led đó :v.Đọc từng bit rồi set lên tương ứng dùng gpiopinwrite ấy.

Nguyễn Khải viết 20:46 ngày 30/09/2018

Thế nếu muốn so sánh giá trị 1 pin của port D thì dùng lệnh gì bạn

Văn Dương viết 20:47 ngày 30/09/2018

Thư viện của nó có GPIOWrite không ?

hoangviet viết 20:48 ngày 30/09/2018

Bạn dùng gpio read các làm tương tự vậy thôi. Chắc chắn trong thư viện của bạn có hàm này. Hoặc khó hơn bạn nên tìm hiểu thanh ghi của gpio ngoại vi để đọc trực tiếp.

Nguyễn Khải viết 20:43 ngày 30/09/2018

hình như nó là thư viện GPIO luôn mà

Nguyễn Khải viết 20:33 ngày 30/09/2018

cảm ơn bạn.để mình thử

Bài liên quan
0