GithubHelp home page GithubHelp logo

avr_project's Introduction

Шаблон проекта AVR на C для VSCODE под Windows

Пример программы, приведенной в шаблоне, выполняет простую функцию - мигание светодиодом, подключенным к выводу PB5 с использованием прерывания таймера. Также оставлен код (функция func() в файле functions.c) для мигания светодиодом без использования таймера.

Подготовка окружения

Для компиляции программ на языке C для микроконтроллеров AVR используется AVR GCC toolchain.

  1. Тулчейн AVR GCC для Windows можно скачать, например, здесь (GitHub).
  2. Тулчейн необходимо распаковать в директорию c:\avr-gcc.
  3. Добавить директорию c:\avr-gcc\bin в переменную среды path.
  4. Склонировать себе этот репозиторий.

Исходники проекта хранятся в папке src. Заголовочные файлы в inc. Скомпилированные файлы будут лежать в папке build.

Сборка проекта и прошивка микроконтроллера

Для сборки проекта необходимо во встроенном терминале VSCODE (Ctrl+Shift+`) выполнить команду

make

В результате в папке buld будут созданы следующие файлы: сама прошивка .hex, EEPROM .epp, ассемблерный листинг .lss.

Для прошивки микроконтррллера испольуется следующая команда:

make prog

Note

Перед выполнением данной команды необходимо указать правильный порт программатора Avrdude, к которому подключена плата arduino. См. опцию PORT в файле Makefile.

Note

При добавлении новых исходных файлов в Makefile в переменную C_SOURCES добавить используемые *.c файлы.

Другие цели сборки:

  • make read_eeprom - считает содержимое EEPROM памяти микроконтроллера;
  • make write_eeprom - запишет память EEPROM микроконтроллера;
  • make size - покажет размер прошивки;
  • make analyze - анализ структуры пришивки;
  • make clean - очистка.

Настройка проекта

Задать имя проекта

При необходимости можно изменить имя проекта. Для этого исправить имя main на требуемое.

  1. В файле .vscode\c_cpp_properties.json отредактировать строчку:
"name": "main",
  1. В файле Makefile отредактировать строчку:
TARGET = main
  1. Переименовать главный файл проекта src\main.c.

Указать используемый микроконтроллер

  1. В файле .vscode\c_cpp_properties.json отредактировать строчку, указав используемый микроконтроллер:
"__AVR_ATmega328P__"
  1. В файле Makefile отредактировать строчки, указав используемый микроконтроллер:
# название контроллера для компилятора
MCU = atmega328p
...

# параметры для AVRDUDE
DUDE_MCU = m328p
...

# DEFINы
DEFINES = \
-D__AVR_ATmega328P__ \

Задать частоту кварцевого резонатора

  1. В файле .vscode\c_cpp_properties.json отредактировать строчку, указав частоту в герцах:
"F_CPU 16000000UL",
  1. В файле Makefile отредактировать строчку, указав частоту в герцах:
-DF_CPU=16000000UL

Указать пути до компилятора и заголовочных файлов

  1. В файле .vscode\c_cpp_properties.json проверить правильность пути до компилятора:
"includePath": [
				...
                "c:/avr-gcc/avr/include/"
...

"compilerPath": "c:/avr-gcc/bin/avr-gcc.exe",
  1. В файле Makefile проверить правильность пути до компилятора:
# путь к каталогу с GCC
AVRCCDIR = c:/avr-gcc/bin/
...

# пути к заголовочным файлам
C_INCLUDES =  \
-Ic:/avr-gcc/avr/include \

avr_project's People

Contributors

nf-zvv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.