Bắt đầu với C nhúng với ATmega32 (dòng ATmega AVR)


9

Tôi có một bảng ATmega32 được đặt xung quanh và tôi nghĩ rằng nó sẽ là hoàn hảo để bắt đầu với vi điều khiển. Tôi đã từng làm một số bập bẹ trong nhúng C (đó là khi tôi có bảng này) nhưng dòng chảy đã bị dừng do một số điều. Bây giờ tôi có hai câu hỏi:

  1. Tài nguyên miễn phí tốt nhất để bắt đầu với C cho loạt avr là gì. Tôi biết về AVR-GCC nhưng đang tìm kiếm một số hướng dẫn hoặc sách miễn phí để bắt đầu.

  2. Tôi nên trực tiếp nhảy đến C hoặc đi qua ASM trước? Tôi thấy có nhiều sách asm xung quanh. Vậy đâu là lựa chọn tốt hơn?

Trong khi tìm kiếm trên Internet, tôi đã tìm thấy bộ tải khởi động Arduino cho ATmega32 tại đây http://retrointerfaces.com/?p=30 nhưng vấn đề là tôi do dự khi thực hiện một số sửa đổi với các bit cầu chì và tất cả. Có an toàn để làm như vậy?

Câu trả lời:



6

Tài liệu avr-libc là một nguồn thông tin tuyệt vời cho C trên các AVR. Đây là một cái khác .

Cá nhân, tôi thích làm việc trong C. Việc sử dụng avr-libc mang lại cho bạn tính di động mã tốt trong gia đình AVR. Tuy nhiên, nếu bạn đang làm bất cứ điều gì quan trọng về thời gian, bạn có thể phải dùng đến ASM.

Nếu bạn có một lập trình viên AVR song song hoặc "điện áp cao" thì bạn luôn có thể lập trình lại các bit cầu chì. Nếu bạn đang sử dụng nối tiếp (Lập trình trong hệ thống, ISP) thì hãy cẩn thận không vô hiệu hóa các bit SPIEN hoặc RESETENABLE vì những điều này sẽ khiến bạn không thể lập trình lại.

Có một lá chắn lập trình Arduino HV có sẵn.


4

Tôi sẽ bắt đầu với C. Bạn có thể cần một đoạn ASM không thường xuyên nhưng đối với hầu hết các ứng dụng sẽ liên quan đến nó. Ngoại lệ sẽ là một bộ nạp khởi động nếu bạn quyết định tự lăn.

Dave Mellis đưa một hướng dẫn về AVR lên wiki MIT HLT. Ông thảo luận về việc thiết lập các công cụ cho ATmega328 nhưng có vẻ như đủ để giúp bạn với các thiết bị khác nhau. Xem

http://hlt.media.mit.edu/wiki/index.php/AVR_Programming

Các thư viện và ví dụ tại trang web Atmel có vẻ tốt. Tôi đã sử dụng một số đoạn trích từ ghi chú ứng dụng của họ. Thư viện I2C (TWI) mà tôi sử dụng trong mã RTC của mình đến từ trang web Atmel.


3

Tôi sẽ đi với Arduino trước. Rất nhiều sách, hướng dẫn và mã ví dụ. Và một cộng đồng tuyệt vời và tốt đẹp. Sau đó, nếu bạn đã quen thuộc với Arduino, hãy thử C với AVR-GCC.

Tôi không thể đề nghị ASM những ngày này. Có thể có một số góc mà bạn có thể phải sử dụng ASM nhưng hầu hết mọi thứ có thể được giải quyết bằng đơn giản C. Với ASM bạn có thể tìm hiểu một số chi tiết về cách vi điều khiển hoạt động, nhưng nếu bạn muốn mọi thứ diễn ra nhanh hơn, tôi sẽ làm theo C hoặc C ++.


vấn đề là rất khó để có được một arduino nơi tôi sống. Tôi đang lên kế hoạch để tạo một cái cho riêng mình nhưng điều đó cũng không hiệu quả (đọc không có thời gian).
Rick_2047

Nếu bạn có khả năng lập trình chip, thì bạn có thể tải firmware Arduino trên nó, sau đó sử dụng liên kết nối tiếp + bộ nạp khởi động cho công việc tiếp theo.
gallamine

0

Bạn có thể bắt đầu từ lập trình C cho vi điều khiển của Joe Pardue. Sử dụng AVRStudio5 và bám sát http://avrfreaks.net , bạn có thể nhận được rất nhiều người tuyệt vời và hữu ích ở đây.

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.