Hướng Dẫn Dùng phần mềm Codevision avr (Phần 2)
Quote from Nguyễn Cao Khoa on 10/09/2021, 20:07Xin chào đã quay lại với Khoa đây là phần 2 của hướng dẫn dùng phần mềm Codevision. Các bạn có cảm thấy thú vị về này không, topic sau mình sẽ giới thiệu các con vi điều khiển chả hạn như atmega, aduino, ....... cho mình 1 like và 1 reply nhé
oThẻ Timers .
Gồm có các thẻ nhỏ: Timer0, Timer1, Timer2, Watchdog. Các thẻ này còn tùy thuộc vào loại vi điều khiển bạn chọn ban đầu.
§Ở Timer0có các tùy chọn: Clock Source (nguồn clock), Clock Value (giá trị Clokck). Ở đây tôi chọn System Clock, 8000kHz.
Nếu bạn dùng chế độ OverFlow Interrupt thì chọn vào ô đó.
Timer Value là gía trị Timer mà bạn muốn đặt.Chú ý: Timer value ở dạng hex.
§Thẻ Timer1
Có các tùy chọn Clock Source, Clock Valuegiống với Timer0. Các bạn để ý tới tùy chọn Mode (chế độ hoạt động của Timer1).
Mặc định là Nomal top=0xFFFF. Đây là chế độ hoạt động bình thường, có chức năng định thời giống với Timer0. Các chức năng còn lại chủ yếu liên quan tới phát xung PWM, các bạn có thể tự tìm hiểu.
Nếu chọn 1 mode (chức năng) liên quan tới PWM, các bạn cần chú ý tới Out. A và Out. Bđây là 2 kênh ra tương ứng của chế độ phát PWM.
2 ô bên dưới là các tùy chọn Input Capt và Interrupt onVới 4 ô nhập giá trị bên dưới, ta có: Value(giá trị của Timer), Inp. Capture (giá trị Input capture), Comp. A, B.
oThẻ Alphanumeric LCD:cài đặt cho màn hình LCD
Các bạn chọn vào Enable Alphanumeric LCD support để kích hoạt chức năng này.
Characters/Line: chọn loại màn hình.
Connections: Chọn các chân của vi điểu khiển cho chức năng LCD. Ở đây đã có sẵn tùy chọn các Port, và các bit tương ứng với các port để bạn chọn. Tôi đã chọn các
port như sau:
oThẻ ADC: chọn chức năng ADC cho vi điều khiển. Bạn cần chọn ô ADC Enable để mở tính năng này.
Các tùy chọn:
§Use 8 bits, Interrputs.
§Volt. Ref: chọn điện áp tham chiếu.
§Clock: chọn xung clock.oThẻ USART:chọn chế độ USART.
Bạn chọn Receiver nếu muốn nhận, và Transmitter nếu muốn truyền. các ô Rx Interrputvà Tx Interrput tương ứng với ngắt nhận và ngắt truyền.
Nhấn vào mũi tên
nếu muốn thay đổi Baud rate,và x2 nếu muốn gấp đôi tốc độ.
Các tùy chọn Communication Parameters và Mode, tùy thuộc vào phần cứng của bạn.
oThẻ I2C.
Đầu tiên trong mục I2C Port bạn chọn Port muốn dùng. Giả sử ở đây tôi chọn PORTB.
Xuất hiện thêm các tùy chọn trong đây.
Đầu tiên, các bạn chú ý đến SDA Bit và SCL Bit,
§SDA (Serial DATA): đường truyền nhận dữ liệu
§SCL (Serail Clock): đường truyền xung nhịp
Do ở trên, chúng ta đã chọn Port B nên các Bit chọn ở SDA và SCL là bit của PortB. Chú ý là 2 đường truyền này riêng biệt nên phải khác nhau.Các thẻ bên dưới là các thẻ tùy chọn dùng module gì, các bạn chọn module phù hợp rồi chọn ô Enable.
oThẻ 1 Wire: cấu hình cho Bus 1 dây.
Đầu tiên bạn chọn trong 1 wire Portvà Data Bitđể chỉ định Port và Bit cho Bus 1 dây. Nếu sử dụng các cảm biến đo nhiệt độ DS1820/DS18S20 bạn chọn và ô Enable bên dưới. Trường hợp muốn dùng vài cảm biến DS1820/DS18S20 kết nối đến 1Wire Bus, cần chọn ô Multuple Devices. Có tối đa 8 thiết bị DS1820/DS18S20 được kết nối tới bus.
oThẻ (TWI) I2C: chuẩn truyền thông Two Wire Bus.
Các bạn chọn vào Two Wire Enable để mở tính năng này. Xuất hiện thêm các tùy chọn.
Nếu bạn chọn Generrate Acknowledge Pulse, xung ACK trên Two wire bussẽ được tạo ra nếu một trong các trường hợp sau xảy ra: địa chỉ riêng của slave được nhận hoặc một lệnh General Call được nhận và General Call Recognition được check.
Ô Slaver Address đặt địa chỉ cho Slave. Ô General Call Recognitioncho phép công nhận lệnh General Call cho Two Wire Bus.
Tiếp theo là Bit Rate, cho phép bạn chọn tần số tối đa của xung tại dây SCL. Nó ảnh hưởng đến giá trị của thanh ghi TWBRNếu bạn chọn ô Two Wire Interrupt, giao diện Two Wire sẽ tạo ra các ngắt.
oThẻ Bit-Banged: cấu hình cho các thiết bị ngoại vi bằng cách sử dụng phương thức bit-ranging.
Đầu tiên các bạn chọn Port để chỉ định dùng Port nào cho kết nối với DS1302
Các tùy chọn I/O Bit, SCLK Bit, và CE (/RST) Bitcho phép bạn chọn các bit của port cho từng bit tương ứng.Chọn chức năng Trickle Charge bằng cách chọn vào Enable, số Diodes tương ứng với giá trị điện trở, có thể được xác định bằng ô Trickle Charge/Diodes, tương ứng với Trickle Charge/ Resistor.
oThẻ Analog Comparator : để chỉ định cấu hình analog comparator
Chọn vào ô Analog Comparator Enableđể mở chức năng này.
§Bandgap Voltage Reference.
§Negative Input Multiplexer.
§Analog Comparator Input Capture.
§Analog Comparator Interrupt.oThẻ Project Infamation: chứa các tùy chọn về thông tin project của bạn.
Bạn chỉ cần điền các thông tin vào thẻ này, khi lưu project, các thông tin này sẽ tự động được in ra ở trên cùng của project. Rất thuận tiện cho việc kiểm tra.
3. Hoàn thành quá trình tạo Project
Sau khi đã cài đặt xong cho vi điều khiển, các bạn có thẻ xem trước bằng cách vào Program/Preview.
Các bạn nhìn vào ô Program Preview, đây là các code sinh ra sẵn tương ứng với các tùy chọn cảu bạn đã thực hiện trước đó.
Giờ bạn có thể lưu project này bằng vào File/Generate program , save and exit.Do trong 1 project của CodeWizardAVR có rất nhiều file khác nhau, bạn nên tạo hẳn 1 thư mục mới và đặt tên dễ hiểu để có thể quản lý tốt project của mình.
Cửa sổ mới hiện lên, đầu tiên là lưu file có đuôi “.cwp”. Ở đây tôi đặt tên là sample1.
Tiếp theo là cửa sổ Save C Complier Source Filelưu file “.c”.
Tiếp theo là lưu file có đuôi “.prj”
Ở project này, tôi đặt tên cho 3 file này cùng một tên (Chú ý: cùng tên nhưng khác đuôi).
Xuất hiện cửa số soạn thảo.
Chúng ta sẽ lập trình trên file “.c”. Cụ thể ở đây là file “sample1.c” mà tôi đã đặt tên.
Chú ý:bên trái thẻ sample1.c là thẻ Notes như một trang note đơn giản, cho phép bạn viết nhân các chú ý của mình.Nhìn vào cửa số lập trình chình, đầu tiên các bạn sẽ thấy các ghi chú (không có ý nghĩa trong code). Ở đây là các thông tin cơ bản của vi điều khiển:
Bên dưới là các dòng lập trình chính.
Các bạn đã có thể lập trình cho Vi điều khiển của mình.
Xin chào đã quay lại với Khoa đây là phần 2 của hướng dẫn dùng phần mềm Codevision. Các bạn có cảm thấy thú vị về này không, topic sau mình sẽ giới thiệu các con vi điều khiển chả hạn như atmega, aduino, ....... cho mình 1 like và 1 reply nhé
oThẻ Timers .
Gồm có các thẻ nhỏ: Timer0, Timer1, Timer2, Watchdog. Các thẻ này còn tùy thuộc vào loại vi điều khiển bạn chọn ban đầu.
§Ở Timer0có các tùy chọn: Clock Source (nguồn clock), Clock Value (giá trị Clokck). Ở đây tôi chọn System Clock, 8000kHz.
Nếu bạn dùng chế độ OverFlow Interrupt thì chọn vào ô đó.
Timer Value là gía trị Timer mà bạn muốn đặt.
Chú ý: Timer value ở dạng hex.
§Thẻ Timer1
Có các tùy chọn Clock Source, Clock Value
giống với Timer0. Các bạn để ý tới tùy chọn Mode (chế độ hoạt động của Timer1).
Mặc định là Nomal top=0xFFFF. Đây là chế độ hoạt động bình thường, có chức năng định thời giống với Timer0. Các chức năng còn lại chủ yếu liên quan tới phát xung PWM, các bạn có thể tự tìm hiểu.
Nếu chọn 1 mode (chức năng) liên quan tới PWM, các bạn cần chú ý tới Out. A và Out. Bđây là 2 kênh ra tương ứng của chế độ phát PWM.
2 ô bên dưới là các tùy chọn Input Capt và Interrupt on
Với 4 ô nhập giá trị bên dưới, ta có: Value(giá trị của Timer), Inp. Capture (giá trị Input capture), Comp. A, B.
oThẻ Alphanumeric LCD:cài đặt cho màn hình LCD
Các bạn chọn vào Enable Alphanumeric LCD support để kích hoạt chức năng này.
Characters/Line: chọn loại màn hình.
Connections: Chọn các chân của vi điểu khiển cho chức năng LCD. Ở đây đã có sẵn tùy chọn các Port, và các bit tương ứng với các port để bạn chọn. Tôi đã chọn các
port như sau:
oThẻ ADC: chọn chức năng ADC cho vi điều khiển. Bạn cần chọn ô ADC Enable để mở tính năng này.
Các tùy chọn:
§Use 8 bits, Interrputs.
§Volt. Ref: chọn điện áp tham chiếu.
§Clock: chọn xung clock.
oThẻ USART:chọn chế độ USART.
Bạn chọn Receiver nếu muốn nhận, và Transmitter nếu muốn truyền. các ô Rx Interrputvà Tx Interrput tương ứng với ngắt nhận và ngắt truyền.
Nhấn vào mũi tên
nếu muốn thay đổi Baud rate,và x2 nếu muốn gấp đôi tốc độ.
Các tùy chọn Communication Parameters và Mode, tùy thuộc vào phần cứng của bạn.
oThẻ I2C.
Đầu tiên trong mục I2C Port bạn chọn Port muốn dùng. Giả sử ở đây tôi chọn PORTB.
Xuất hiện thêm các tùy chọn trong đây.
Đầu tiên, các bạn chú ý đến SDA Bit và SCL Bit,
§SDA (Serial DATA): đường truyền nhận dữ liệu
§SCL (Serail Clock): đường truyền xung nhịp
Do ở trên, chúng ta đã chọn Port B nên các Bit chọn ở SDA và SCL là bit của PortB. Chú ý là 2 đường truyền này riêng biệt nên phải khác nhau.
Các thẻ bên dưới là các thẻ tùy chọn dùng module gì, các bạn chọn module phù hợp rồi chọn ô Enable.
oThẻ 1 Wire: cấu hình cho Bus 1 dây.
Đầu tiên bạn chọn trong 1 wire Portvà Data Bitđể chỉ định Port và Bit cho Bus 1 dây. Nếu sử dụng các cảm biến đo nhiệt độ DS1820/DS18S20 bạn chọn và ô Enable bên dưới. Trường hợp muốn dùng vài cảm biến DS1820/DS18S20 kết nối đến 1Wire Bus, cần chọn ô Multuple Devices. Có tối đa 8 thiết bị DS1820/DS18S20 được kết nối tới bus.
oThẻ (TWI) I2C: chuẩn truyền thông Two Wire Bus.
Các bạn chọn vào Two Wire Enable để mở tính năng này. Xuất hiện thêm các tùy chọn.
Nếu bạn chọn Generrate Acknowledge Pulse, xung ACK trên Two wire bussẽ được tạo ra nếu một trong các trường hợp sau xảy ra: địa chỉ riêng của slave được nhận hoặc một lệnh General Call được nhận và General Call Recognition được check.
Ô Slaver Address đặt địa chỉ cho Slave. Ô General Call Recognitioncho phép công nhận lệnh General Call cho Two Wire Bus.
Tiếp theo là Bit Rate, cho phép bạn chọn tần số tối đa của xung tại dây SCL. Nó ảnh hưởng đến giá trị của thanh ghi TWBR
Nếu bạn chọn ô Two Wire Interrupt, giao diện Two Wire sẽ tạo ra các ngắt.
oThẻ Bit-Banged: cấu hình cho các thiết bị ngoại vi bằng cách sử dụng phương thức bit-ranging.
Đầu tiên các bạn chọn Port để chỉ định dùng Port nào cho kết nối với DS1302
Các tùy chọn I/O Bit, SCLK Bit, và CE (/RST) Bitcho phép bạn chọn các bit của port cho từng bit tương ứng.
Chọn chức năng Trickle Charge bằng cách chọn vào Enable, số Diodes tương ứng với giá trị điện trở, có thể được xác định bằng ô Trickle Charge/Diodes, tương ứng với Trickle Charge/ Resistor.
oThẻ Analog Comparator : để chỉ định cấu hình analog comparator
Chọn vào ô Analog Comparator Enableđể mở chức năng này.
§Bandgap Voltage Reference.
§Negative Input Multiplexer.
§Analog Comparator Input Capture.
§Analog Comparator Interrupt.
oThẻ Project Infamation: chứa các tùy chọn về thông tin project của bạn.
Bạn chỉ cần điền các thông tin vào thẻ này, khi lưu project, các thông tin này sẽ tự động được in ra ở trên cùng của project. Rất thuận tiện cho việc kiểm tra.
3. Hoàn thành quá trình tạo Project
Sau khi đã cài đặt xong cho vi điều khiển, các bạn có thẻ xem trước bằng cách vào Program/Preview.
Các bạn nhìn vào ô Program Preview, đây là các code sinh ra sẵn tương ứng với các tùy chọn cảu bạn đã thực hiện trước đó.
Giờ bạn có thể lưu project này bằng vào File/Generate program , save and exit.
Do trong 1 project của CodeWizardAVR có rất nhiều file khác nhau, bạn nên tạo hẳn 1 thư mục mới và đặt tên dễ hiểu để có thể quản lý tốt project của mình.
Cửa sổ mới hiện lên, đầu tiên là lưu file có đuôi “.cwp”. Ở đây tôi đặt tên là sample1.
Tiếp theo là cửa sổ Save C Complier Source Filelưu file “.c”.
Tiếp theo là lưu file có đuôi “.prj”
Ở project này, tôi đặt tên cho 3 file này cùng một tên (Chú ý: cùng tên nhưng khác đuôi).
Xuất hiện cửa số soạn thảo.
Chúng ta sẽ lập trình trên file “.c”. Cụ thể ở đây là file “sample1.c” mà tôi đã đặt tên.
Chú ý:bên trái thẻ sample1.c là thẻ Notes như một trang note đơn giản, cho phép bạn viết nhân các chú ý của mình.
Nhìn vào cửa số lập trình chình, đầu tiên các bạn sẽ thấy các ghi chú (không có ý nghĩa trong code). Ở đây là các thông tin cơ bản của vi điều khiển:
Bên dưới là các dòng lập trình chính.
Các bạn đã có thể lập trình cho Vi điều khiển của mình.
Quote from Đào Tuấn Tài on 11/09/2021, 20:24Hai bài viết của bạn giúp ích cho mình khá nhiều đấy.Cảm ơn bạn!
Hai bài viết của bạn giúp ích cho mình khá nhiều đấy.Cảm ơn bạn!