Hệ thống nhúng lập trình bài học 4: nhấp nháy đèn LED

chào đón các hệ thống nhúng khóa học lập trình tên tôi là Miro Samek và trong bài học này tôi & #39; m sẽ cho bạn thấy làm thế nào để Blink các LED trên bảng Launchpad Stellaris cho bài học này tôi rất khuyên bạn nên tải về hướng dẫn sử dụng của Hội đồng quản trị từ liên kết tôi cung cấp các ghi chú lớp cho video này nếu bạn Don & #39; t có hội đồng quản trị bạn vẫn có thể làm theo cùng trong trình mô phỏng, nhưng xem trình gỡ lỗi của bạn sẽ hơi khác nhau và dĩ nhiên bạn giành & #39; t xem LED nhấp nháy hướng dẫn sử dụng mô tả làm thế nào để kết nối bảng với máy tính của bạn qua cáp USB được cung cấp cho ngày hôm nay bạn đang quan tâm chủ yếu là rất tốt đẹp màu đỏ xanh đèn LED người dùng nằm ở cạnh phải của Hội đồng quản trị hướng dẫn sử dụng giải thích làm thế nào các thành phần trên bảng được kết nối với vi điều khiển trong số những người khác bạn có thể thấy rằng người sử dụng LED được kết nối với GPIO có nghĩa là mục đích chung đầu vào đầu ra ở phần cuối của hướng dẫn sử dụng, bạn có thể tìm thấy các sơ đồ của Hội đồng quản trị trên trang đầu tiên của sơ đồ bạn có thể thấy rằng là G và P thành phần của người sử dụng LED được cung cấp bởi transistor được điều khiển bởi đầu ra LED được dẫn G và LED B tương ứng bạn có thể thấy các kết quả đầu ra một lần nữa lên trong sơ đồ, nơi họ nối với các chân vi điều khiển gắn nhãn pin F1 pin F2 và pin F3 chữ F trong trường hợp này là viết tắt của GPIO F bây giờ mà bạn có một số ý tưởng như thế nào LED được kết nối cho phép & #39; s chuẩn bị dự án IR cho bài học này như bình thường cho & #39; s bắt đầu với việc thực hiện một bản sao của bài học trước 3 dự án và đổi tên nó vào bài học 4 nếu bạn Don & #39; t có bài học 3 dự án bạn có thể nhận được nó trực tuyến từ state-machine.

com/quickstart nhận được bên trong bài học mới 4 thư mục và nhấp đúp vào tập tin không gian làm việc để mở các công cụ IAR nếu bạn Don & #39; t có các bộ công cụ IAR quay trở lại bài học 0 nếu bạn có bảng Launchpad bạn nên kết nối nó với máy tính của bạn bây giờ và đảm bảo rằng trình gỡ lỗi được cấu hình cho các giao diện TI Stellaris và rằng các tab tải về họ đã sử dụng tùy chọn Flash Loader kiểm tra nếu bạn Don & #39; t có bảng cấu hình trình gỡ lỗi cho mô phỏng và làm theo cùng cũng nếu bạn đang sử dụng bảng xin vui lòng bấm vào trình đơn TI Stellaris và kiểm tra thiết lập lại sẽ làm hệ thống tùy chọn thiết lập lại để hội đồng quản trị sẽ luôn bắt đầu từ sạch thiết lập lại cuối cùng xin vui lòng xây dựng lại các dự án hoàn toàn để ngăn chặn các IAR kéo trong các dấu chấm chính C tập tin từ các bài học trước ba dự án bây giờ để cho & #39; s đi đến trình gỡ lỗi và đánh giá một cách nhanh chóng như thế nào bộ xử lý sử dụng các địa chỉ khác nhau đầu tiên tại các địa chỉ thấp bắt đầu với 0 bạn có thể thấy các hướng dẫn máy tính này là mã biên dịch của chương trình của bạn được lưu trữ vĩnh viễn bên trong vi điều khiển này có nghĩa là các địa chỉ thấp bắt đầu từ 0 được ánh xạ tới bộ nhớ Flash bạn cũng đã biết rằng các địa chỉ bắt đầu từ hex-tôi được sử dụng cho các biến như biến truy cập có nghĩa là hex Android-theo sau bởi tất cả các số không đánh dấu sự khởi đầu của bộ nhớ RAM truy cập ngẫu nhiên thực sự bạn có thể nhìn thấy một lỗ ở địa chỉ bên phải trước khi bắt đầu của RAM mà chỉ đơn giản có nghĩa là trình gỡ lỗi không thể đọc bất cứ điều gì từ các địa chỉ này rất có thể bởi vì họ là không sử dụng khi bạn thăm dò thêm tại địa chỉ hex-0 0 0 8 0 0 0 bạn thấy rằng RAM kết thúc vì vậy nó là một hòn đảo mở rộng cho hex tám không không có địa chỉ không là 32 kilobyte trong thập phân này có nghĩa là vi điều khiển có 32 kilobyte RAM này là càng nhiều như bạn biết về các địa chỉ tại thời điểm này tuy nhiên để nhấp nháy đèn LED đó là mục tiêu của bạn trong bài học này bạn cần phải tìm hiểu thêm lý tưởng là bạn cần phải biết bản đồ của họ về tất cả các châu lục và hòn đảo khác nhau như đảo RAM trong không gian địa chỉ các tài liệu mô tả bản đồ bộ nhớ của vi điều khiển của bạn và nhiều hơn nữa trong chi tiết đớn được gọi là bảng dữ liệu tôi khuyên bạn nên tải về các bảng dữ liệu cho vi điều khiển lm4f cụ thể trên bảng Launchpad của bạn từ liên kết tôi cung cấp trong các ghi chú lớp nhưng tôi cần phải cảnh báo bạn phải đi các bảng dữ liệu có xu hướng lớn này một trong những đặc biệt là hơn 1.

200 trang dài vẫn còn tương đối ngắn như các bảng dữ liệu đi may mắn các tài liệu này không được dự định để được đọc bìa để trang trải trong thực tế, một phần lớn là một hệ thống nhúng kỹ sư bao gồm biết làm thế nào để tìm cách của bạn xung quanh các bảng dữ liệu để bạn có thể tìm thấy những thông tin bạn cần một cách nhanh chóng tôi hy vọng rằng bạn nhận các quy mô từ từ khi bạn tham gia vào khóa học này để ví dụ như để tìm ra bản đồ bộ nhớ của vi điều khiển của bạn chỉ cần tìm kiếm các dữ liệu cho bản đồ bộ nhớ này uống vì vậy ở đây nó là bản đồ bộ nhớ của một điển hình ARM Cortex và vi điều khiển này là rất tốt đẹp và đơn giản không gian địa chỉ tuyến tính mà không có bất kỳ phân đoạn hoặc bộ nhớ ngân hàng nếu bạn làm việc với các vi điều khiển đặc biệt là 8 lớn hơn đắng tôi hy vọng bạn đánh giá cao đơn giản của một tuyến tính 32-bit không gian địa chỉ tôi hy vọng bạn nhận ra những hòn đảo đầu tiên trên bản đồ này được gọi là trên-chip Flash từ địa chỉ từ 0 đến 3 FFFF tương ứng với 256 kilobyte của bộ nhớ flash, bạn cũng nên nhận ra các đảo RAM quen thuộc bắt đầu từ 2 hex theo sau là tất cả các số không được đặt tên ở đây bit sọc trên chip SRAM trong khi SRAM là viết tắt của RAM tĩnh trong lục địa thiết bị ngoại vi, bạn nên lưu ý các cổng GPIO các đảo này là thú vị bởi vì bạn đang tìm kiếm GPIO cổng F để kiểm soát LED của bạn tiếp tục tìm kiếm thêm xuống bản đồ bộ nhớ Hey ở đây là GPIO điếc mà bạn & #39; ve được tìm kiếm sao chép địa chỉ bắt đầu vào clipboard và quay trở lại trình gỡ lỗi IAR dán địa chỉ bắt đầu của gpiof để xem bộ nhớ và xem những gì đi lên Whoops phạm vi địa chỉ của gpiof quảng cáo trong bảng dữ liệu xuất hiện trống rỗng, nếu điều này xảy ra với bạn xuống tuyệt vọng những lý do điển hình là khối phần cứng được tắt theo mặc định để tiết kiệm điện kỹ thuật chặn tín hiệu đồng hồ đến một số phần của chip được gọi là đồng hồ gating là một thực tế rất phổ biến trong hiện đại vi điều khiển như vậy trước tiên bạn cần phải khám phá làm thế nào để biến khối GPIO F trên có nghĩa là bạn cần phải quay trở lại các bảng dữ liệu quay trở lại đầu của văn bản và tìm kiếm các gating chuỗi đồng hồ Oh ở đây là một cái gì đó thú vị cho & #39; s đi đến trang đó cho phép & #39; s tìm kiếm cho chuỗi GPIO trong phần này Oh ở đây nó là GPIO Clock gating đăng ký kiểm soát cho phép & #39; s Hãy xem xét kỹ hơn các mô tả đăng ký bởi vì đây là một định dạng rất điển hình thường được sử dụng trong bảng dữ liệu đăng ký được hiển thị như là một khối bit luôn đánh số từ 0 loại mỗi bit được chỉ định trong khi o của chúng tôi có nghĩa là đọc chỉ RW có nghĩa là đọc viết và wo có nghĩa là chỉ viết các nhóm liên quan đến logic của bit được ghi lại dưới đây đăng ký khối hình ảnh bắt đầu từ bit quan trọng nhất cho bạn thú vị nhất là mô tả của bit 5 vì bit này cho phép đồng hồ để GPIO cổng F này khẳng định rằng đăng ký này là chính xác những gì bạn & #39; ve được tìm kiếm sao chép các địa chỉ cơ sở của các đăng ký vào clipboard và thông báo rằng các thêm offset hex sáu đi cần phải được thêm vào cơ sở để có được địa chỉ đăng ký hoàn tất quay trở lại trình gỡ lỗi và mở thêm bộ nhớ được gọi là bộ nhớ biểu tượng để thiết lập các bit 5 trong đồng hồ gating đăng ký trong khi đồng thời xem các gpiof bắt đầu địa chỉ trong Xem bộ nhớ ban đầu dán đồng hồ gating đăng ký địa chỉ cơ sở từ bảng dữ liệu biểu tượng bộ nhớ xem và Don & #39; t quên thêm 608 bù cho nó bây giờ đi đến đồng hồ nổi bật gating đăng ký và chỉnh sửa giá trị của nó để thiết lập bit 5 mà khi bạn nhớ từ bài học 1 về đếm là 20 hit hệ thập lục phân nhập Hey các khối phần cứng gpiof thức dậy bạn đang nhận được thực sự gần để có thể nhấp nháy đèn LED nhưng bạn không phải là khá có chưa như bạn nên làm điều đó trong GPIO phần của bảng dữ liệu bạn vẫn cần phải cấu hình các gpiof bit 1 2 & 3 mà lái xe màu đỏ màu xanh và màu đỏ tương ứng như là kết quả đầu ra kỹ thuật số để thiết lập các pins hướng là sản lượng di chuyển xuống trong khối địa chỉ GPIO F đến hex địa chỉ 4 0 0 2 5 4 0 0 và thiết lập các bit 1 2 và 3 2 1 tương ứng với 1 1 1 0 trong nhị phân và E trong Hex ngoài ra để thiết lập các chức năng của các chân như đầu ra kỹ thuật số cuộn tiếp tục xuống trong khối địa chỉ GPIO F địa chỉ 4 0 0 2 5 5 1C và một lần nữa thiết lập các bit 1 2 và 3 2 1 vì vậy cuối cùng bạn có thể thử để kiểm soát các LED bạn làm điều này thông qua đăng ký gpiof dữ liệu nằm ở hex 4 0 0 2 5 3fc di chuyển lên để đăng ký này và đầu tiên chỉ cần thiết lập bit 1 bằng cách viết hex hai đến nibble thấp nhất một lần nữa ghi nhớ rằng các bit luôn được tính từ số không hey nó đã làm việc đèn LED đỏ lên bạn nên cung cấp cho mình một pat lớn trên trở lại cố gắng bật tắt LED bằng văn bản không mát làm thế nào về cài đặt bit hai bằng cách viết hex cho wow đèn LED chuyển sang màu xanh bạn đang rocktrong làm thế nào về thiết lập bit ba bằng cách viết X 8 bạn đã nhận nó quá nặng-nâng thực sự là hơn vì mã hóa này tất cả lên trong C sẽ là một miếng bánh tất cả có để kiểm soát các LED nắm xuống để viết số đến địa chỉ bộ nhớ cụ thể và điều này bạn đã biết làm thế nào để làm với con trỏ cụ thể bạn sẽ sử dụng trỏ hack mà tôi đã cho thấy bạn ở cuối bài học 3 bởi vì kỹ thuật này cho phép bạn viết bất kỳ số điện thoại vào bất kỳ địa chỉ bộ nhớ bạn chọn sạch mã lên để lại chỉ những thứ con trỏ thực sự bạn giành & #39; t thậm chí cần biến con trỏ riêng biệt bởi vì bạn có thể dereference chi phí con trỏ như bạn sẽ thấy trong một phút trong bài học 3 bạn đã sử dụng con trỏ để kết thúc nhưng cánh tay đăng ký là unsigned để thay đổi kiểu trỏ để unsigned int thay thế địa chỉ chế tạo từ ít hơn 3 với địa chỉ của đồng hồ gating hệ thống đăng ký mà bạn sử dụng để chuyển GPIO f-khối trên và đóng toàn bộ con trỏ trong dấu ngoặc đơn và thông báo rằng toàn bộ điều này là một con trỏ để unsigned int nếu như vậy thì bạn sẽ có thể dereference con trỏ này bằng phương tiện của các nhà điều hành sao cũng giống như bạn thấy trong dòng dưới đây bây giờ bạn có thể ghi vào con trỏ như bạn gọi lại từ các thử nghiệm trong trình gỡ lỗi bạn cần phải thiết lập một chút 5 đó là hex 20 vào đăng ký này giá trị nên được unsigned mà bạn chỉ ra bởi các hậu tố được sử dụng thoát khỏi không còn được sử dụng P con trỏ cuối cùng và kiểm tra nếu trình biên dịch thích mã của bạn bằng cách nhấn F7 tất cả các quyền như vậy bây giờ bạn có thể bấm vào với đăng ký tiếp theo là mã pin hướng Đăng ký mà bạn cần phải thiết lập bit 1 2 & 3 bằng cách viết hex e cuối cùng GPIO e cấu hình yêu cầu cũng thiết lập bit 1 2 & 3 trong chức năng kỹ thuật số đăng ký với điều này thực hiện, bạn có thể bật đèn LED màu đỏ và tắt bằng cách thiết lập và thanh toán bù trừ một chút trong dữ liệu gpiof đăng ký thực sự nếu bạn muốn thực sự nhấp nháy đèn LED bạn có thể bật và tắt chỉ một lần nhưng bạn cần phải tiếp tục làm điều này vĩnh viễn để đạt được điều này, bạn có thể quấn một vòng lặp trong khi xung quanh mã cho chuyển đèn LED và tắt một trong những liên tục ở nơi điều kiện có nghĩa là tình trạng luôn đúng vì vậy vòng lặp chạy vĩnh viễn khi bạn biên dịch mã này bạn nhận được một cảnh báo rằng tuyên bố trở lại xuôi tuyến từ vô tận trong khi nó là không thể kết nối đó là đúng để cho & #39; s kiểm tra mã này trên bảng Launchpad lưu ý rằng thiết lập đồng hồ gating đăng ký thức dậy khối gpiof như mong đợi ở đây bạn có thể thấy rằng đèn LED màu đỏ lên và bây giờ nó đi tối một lần nữa vô tận vòng cũng có vẻ là làm việc tốt nếu tất cả mọi thứ trông rất tốt để cho & #39; s chạy mã ở tốc độ đầy đủ bằng cách nhấn nút Go những gì heck các LED vẫn trên tất cả các thời gian để cho & #39; s break vào mã bằng cách nhấn nút break và bước duy nhất một lần nữa thời gian này tất cả mọi thứ là tốt chưa khi bạn chạy ở tốc độ đầy đủ các điểm dừng nhấp nháy để bạn biết những gì & #39; s vấn đề ở đây có bạn là đúng chương trình chỉ chạy quá nhanh cho một mắt người để thông báo nhấp nháy nhanh chóng của LED chúng ta cần phải làm chậm chương trình xuống cho điều này bạn có thể sử dụng đếm trong khi vòng lặp mà bạn đã học được trong bài học hai và trông giống như này chất thải rất nhiều chu kỳ CPU nhưng sự chậm trễ có thể được kiểm soát bằng cách thiết lập giới hạn trên trong điều kiện của trong khi lưu ý rằng bạn cần một sự chậm trễ cả sau khi bật đèn LED và sau khi tắt nó lại tất cả các quyền để cho & #39; s cho nó một thử cho & #39; s xóa điểm dừng và chạy chương trình cũng vẫn có vẻ quá nhanh okay quay trở lại và tăng giới hạn của một ba đơn đặt hàng của cường độ thử lại và hi xuất hiện để được chỉ đúng rằng LED giữ nhấp nháy này kết luận bài học này về nhấp nháy một LED mặc dù nó có thể không có vẻ như nhiều điều này là một mốc quan trọng trong nhúng sự nghiệp để xin chúc mừng trong bài học tiếp theo bạn sẽ tìm hiểu làm thế nào để cải thiện chương trình Blinky bằng cách sử dụng Preprocessor và từ khóa dễ bay hơi nếu bạn thích kênh này xin vui lòng đăng ký để chơ bạn cũng có thể truy cập state-machine.

com/quickstart cho các ghi chú lớp học và tải tập tin dự án bạn.

Leave a Reply