Начните со встроенного C с ATmega32 (серия ATmega AVR)

9

У меня лежит плата ATmega32, и я считаю, что было бы идеально начать с микроконтроллеров. Однажды я немного болтал во встроенном С (тогда я получил эту плату), но поток был остановлен из-за некоторых вещей. Теперь у меня есть два вопроса:

  1. Какой лучший бесплатный ресурс, чтобы начать с C для серии AVR. Я знаю о AVR-GCC, но искал некоторые учебники или бесплатные книги, чтобы начать меня.

  2. Должен ли я сразу перейти к C или сначала пройти ASM? Я вижу, что вокруг много книг. Так что же лучше?

При поиске в Интернете я нашел загрузчик Arduino для ATmega32 здесь http://retrointerfacing.com/?p=30, но проблема в том, что я не решаюсь немного поработать с битами предохранителей и всем остальным. Насколько это безопасно?

Rick_2047
источник

Ответы:

5

Присоединяйтесь к AVR Freaks . Вы найдете много ресурсов и помощи, если вы застряли.

Леон Хеллер
источник
6

Документация avr-libc является отличным источником информации для C на AVR. Вот еще один .

Лично я предпочитаю работать в C. Использование avr-libc дает вам хорошую переносимость кода в семействе AVR. Однако, если вы делаете что-то критически важное, вам, возможно, придется прибегнуть к ASM.

Если у вас есть параллельный или «высоковольтный» программатор AVR, вы всегда можете перепрограммировать биты предохранителей. Если вы используете последовательный интерфейс (In-System-Programming, ISP), будьте осторожны, чтобы не отключить биты SPIEN или RESETENABLE, поскольку они не позволят вам перепрограммировать.

Там в программировании щит Arduino HV доступен.

Тоби джеффи
источник
4

Я бы начал с C. Вам может понадобиться случайный фрагмент ASM, но для большинства приложений, которые будут об этом. Исключением будет загрузчик, если вы решите свернуть свой собственный.

Дэйв Меллис выложил учебник по AVR в вики MIT HLT. Он обсуждает настройку инструментов для ATmega328, но он кажется достаточно общим, чтобы помочь вам с различными устройствами. Видеть

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

Библиотеки и примеры на сайте Atmel кажутся хорошими. Я использовал несколько фрагментов из их заметок. Библиотека I2C (TWI), которую я использую в своем коде RTC, взята с сайта Atmel.

jluciani
источник
3

Я бы пошел с Arduino первым. Много книг, учебных пособий и примеров кода. И отличное и приятное сообщество. Тогда, если вы знакомы с Arduino, попробуйте C с AVR-GCC.

Я не могу рекомендовать ASM в эти дни. Возможно, есть некоторые моменты, когда вам, возможно, придется использовать ASM, но большинство вещей можно решить с помощью простого C. С ASM вы можете узнать некоторые подробности о том, как работает микроконтроллер, но если вы хотите, чтобы все происходило быстрее, я бы придерживался C или C ++.

tinkerlog
источник
Проблема в том, что получить Arduino, где я живу, очень сложно. Я планирую сделать один для себя, но это тоже не сработает (читай, нет времени).
Rick_2047
если у вас есть возможность запрограммировать чип, вы можете загрузить на него прошивку Arduino, а затем использовать последовательную связь + загрузчик для последующей работы.
Галламин
0

Вы можете начать с программирования на C для микроконтроллеров Джо Пардью. Используйте AVRStudio5 и придерживайтесь http://avrfreaks.net , вы можете найти много классных и полезных парней здесь.

Бишал Паудель
источник