Làm thế nào tôi có thể lập trình một arduino trong C thuần túy?


7

Tôi là người mới bắt đầu và tôi muốn học AVR C / C ++. Tôi có thể làm điều này bằng cách sử dụng một Arduino? (Tôi đang hỏi điều này vì tôi đã có một cái).

Nếu vậy, ai đó có thể cho tôi biết sử dụng IDE nào tôi có thể viết mã bằng C / C ++ thuần túy và sau đó flash nó vào Atmega328P trên Arduino không? Hoặc, tôi nên có một AVR và một lập trình viên thay thế?

Tôi đã tìm kiếm trên internet và tôi thực sự bối rối bởi tất cả các thuật ngữ. Ai đó có thể giải thích cho tôi?


1
Vì vậy, để lập trình 328, tôi tin rằng bạn cần phải cài đặt atmel studio để biên dịch mã của mình và sau đó sử dụng lệnh dòng lệnh avrdude để đưa mã đã biên dịch của bạn vào arduino.
Plantsrule14

@ Plantsrule14 đó là một khả năng, nhưng không phải là duy nhất, vì vậy thật không đúng khi nói rằng điều đó là cần thiết. Nếu Arduino IDE được cài đặt, thì trình biên dịch avr-gcc cũng phụ thuộc vào nó.
Chris Stratton

@ Plantsrule14 Tôi đã cài đặt studio atmel. Tôi chỉ không thể tìm thấy bất kỳ tài nguyên nào có thể giúp tôi flash chương trình vào chip trên arduino bằng bộ tải khởi động (không có lập trình viên). Điều này thậm chí có thể?
Azrael93

Tôi tin rằng bạn cần một lập trình viên. : (
Plantsrule14

2
Bạn không cần bất kỳ IDE. Bạn có thể biên dịch và tải lên bằng cách sử dụng toolchain đi kèm với Arduino. Nhìn vào Arduino.mk chẳng hạn.
hobbs

Câu trả lời:


3

Vâng, có được một lập trình viên thay thế.

1) Bạn có thể flash bảng arduino của bạn với avrdude / avr-gcc . Cài đặt các công cụ này, tìm bảng dữ liệu của atmega328 (google nó), sử dụng bảng ghim bảng để kết nối với lập trình viên của bạn (stk500v2 / ISP) và voila!

2) Hãy nhớ rằng bằng cách "thủ công" flash atmaga của bạn trên bảng arduino, bạn đang gỡ bỏ bộ nạp khởi động cần thiết để tải các bản phác thảo của bạn từ ARDUINO IDE.

3) Sử dụng IDE C / C ++ yêu thích của bạn


1
bạn sẽ có thể tìm và khởi động lại bộ tải khởi động cho arduino xem tại đây arduino.cc/en/Hacking/Bootloader?from=Tutorial.Bootloader
Plantsrule14

Không! Bạn không cần một lập trình viên, hoặc gỡ bỏ bộ nạp khởi động. Bộ tải khởi động Arduino không phụ thuộc vào IDE hoặc các thư viện - bạn có thể tự do sử dụng nó với các chương trình C độc lập như với các bản phác thảo Arduino. Làm theo cách đó không chỉ rẻ hơn, mà cho phép bạn sử dụng cùng một bảng cho cả hai phong cách phát triển mà không thay đổi cấu hình.
Chris Stratton

Tác giả muốn tìm hiểu về bản thuần C. Anh ta không hỏi - các bạn, làm thế nào để chơi với arduino IDE hoặc đôi khi. nhưng làm thế nào để sử dụng lại atmega trên tàu anh ta đã có.
soerium

@ChrisStratton vì bạn không đồng ý với các câu trả lời khác Gửi câu trả lời xin vui lòng
Plantsrule14

2

Nếu bạn là người mới bắt đầu, tôi khuyên bạn nên viết C trong Arduino IDE. Các thư viện rất hữu ích và tôi nghĩ môi trường Arduino / Dây / Xử lý sẽ đáp ứng mọi nhu cầu của bạn.

Hãy xem Lightblue Bean ( http://punchENC.com/bean/ ), đây là một ví dụ điển hình về sức mạnh của nền tảng đó. Ngay cả các lập trình viên nhúng có kinh nghiệm cũng có thể sử dụng nó, vì thanh ghi cơ bản vẫn có thể truy cập được.

Bây giờ tôi đang lập trình trên Ti MSP430, và trong khi tôi có thể đánh giá cao các khả năng, tôi bỏ lỡ sự đơn giản của Arduino; dễ dàng hơn nhiều để bắt đầu với Arduino.

Truy cập http://arduino.cc/en/main/software để tải xuống bản 1.0.6. Phần mềm IDE, cắm Arduino của bạn, đi đến Công cụ-> Bảng để chọn Arduino của bạn, chọn cổng "tty" thích hợp trong Công cụ-> Serial_Port. Sau đó viết bằng C thuần túy và tải về. Có rất nhiều ví dụ đi kèm với IDE.


2

Một Arduino được lập trình trong C / C ++. Có một quan niệm sai lầm phổ biến rằng Arduino có ngôn ngữ riêng của mình. Xem liên kết này C ++ so với Ngôn ngữ Arduino? cho một cuộc thảo luận đầy đủ về Arduino là C / C ++ và sự đơn giản hóa mà Arduino cung cấp. Hơn nữa, bạn có thể xem mã lõi Arduino ở đây .

Từ trang web Arduino:

Tôi có thể lập trình bảng Arduino trong C không?
Trong thực tế, bạn đã có; ngôn ngữ Arduino chỉ là một tập hợp các hàm C / C ++ có thể được gọi từ mã của bạn. Bản phác thảo của bạn trải qua những thay đổi nhỏ (ví dụ: tạo nguyên mẫu hàm tự động) và sau đó được chuyển trực tiếp đến trình biên dịch C / C ++ (avr-g ++). Tất cả các cấu trúc C và C ++ tiêu chuẩn được avr-g ++ hỗ trợ sẽ hoạt động trong Arduino. Để biết thêm chi tiết, xem trang về quy trình xây dựng Arduino .

Arduino cung cấp một đường cong học tập dễ dàng cho người mới bắt đầu thông qua các chuyên gia. Vì vậy, chỉ cần tải xuống Arduino IDE mới nhất , cài đặt nó và tận hưởng.


Một quan niệm sai lầm phổ biến khác là C là tập con của C ++. Thư viện lõi Arduino được viết bằng C ++, vì vậy không thể lập trình bằng C bằng cách sử dụng nó.
Dmitry Grigoryev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.