Генератор кода библиотеки axlib


• О проекте
• Обратная связь
• Полезные ссылки
• Полезные программы
• Друзья сайта


Последние комментарии

Алексей: Генератор кода библиотеки axlib
Ну, а в чем пробл...

Андрей: 3D Модели для DipTrace
ОК, понял. За PB...




           

Библиотека для AVR





AXLIB Генератор





Помощь сайту


   
				

Генератор кода библиотеки axlib

	
	
	

Дата: 25 Апреля 2016. Автор: Алексей

	
	
Эволюция axlib продолжается.
Начиная с самого начала я хотел максимально интегрировать данную библиотеку в AtmelStudio 6.x, но к сожалению мне этого сделать не удалось. По началу было неудобно под каждый проект править конфигурационный файл main_init.h. После его переноса в корень проекта, стало немного поудобнее, но с увеличением количества поддерживаемых девайсов, а как не странно они будут пополнятся, конфигурационный файл раздулся и стал походить на свалку мусора. Из-за этого начались проблемы. Добавился новый девайс, файл подправил, а в этот момент написал кто-то с жалобой или предложением. Письмо изучил, внес изменения. Пока занимался с каким-нибудь устройством забыл поправить main_init.h, а так как он в каждом проекте свой, то в архив библиотеки выкладывал без предыдущих изменений. В итоге мне это надоело и я причесал данный файл по типам и устройствам. Вроде все пошло на поправку, но опять же появились косяки. Окончательно разозлившись я решил убить двух зайцев одновременно. Первый заяц - это интеграция во всю ту же AtmelStudio 6.x, а второй - это генератор кода с окошечным интерфейсом. За основу были взяты лучшие стороны CVAVR и STM32CubeMX. Что из этого получилось. Ниже картинка главного окна программы.

Axlib Генератор

Заяц номер один. Данная программа, а зовут ее Axlib Генератор, создает все необходимые файлы проекта для AtmelStudio 6.x. То есть после создания проекта, его можно открыть в студии, собрать и залить в МК. Всю рутинную работу по подтягиванию необходимых файлов и написания кода на себя берет программа. Эдакий визард кодвижена.

Заяц номер два. Все те настройки, которые нужно было в ручную вводить в конфигурационный файл, теперь не нужны. Программа сама создаст этот файл и внесет туда только те изменения, которые необходимы для данного проекта с данными функциями. То есть если выбрать работу с ЖК дисплеем, то программа загрузить файлы для ЖК дисплея и внесет настройки в конфигурационный файл.
Какие плюсы.
Во первых теперь можно переносить проект с машины на машину и не задумываясь есть ли библиотека в корне студии или нет, все файлы в корне проекта.
Второй плюс, конфигурационный файл будет содержать настройки только тех функций и устройств, которые были выбраны и ничего больше. Отсюда пропал бардак.
Ну и естественно минус. После генерации проекта поправить его уже будет нельзя. Если нужно будет что-то добавить, то это нужно будет делать либо в ручную, добавляя необходимые файлы и пополняя конфигурационный файл, либо создавать проект заново. А теперь хватит лирики, давайте же что-нибудь запрограммируем.
Упс. А как программировать без программы))) Вот архивчик для установки. Качаем и устанавливаем.

Axlib Генератор v1.0

Axlib Генератор v1.0.1

Если программа не хочет запускаться, то необходимо установить Microsoft .NET Framework 4. Скачать его можно на официальном сайте Microsoft по этой ссылке.

Ну и конечно же видео.

Генератор Кода с библиотекой axlib часть 1



Генератор Кода с библиотекой axlib часть 2



Генератор Кода с библиотекой axlib часть 3



Генератор Кода с библиотекой axlib часть 4



Генератор Кода с библиотекой axlib часть 5

Программа для UART



Генератор Кода с библиотекой axlib часть 6

Шпаргалка для подключение дополнений к функции sprintf();

в AVR/GNU Linker поставить галку в самом низу
в AVR/GNU Linker добавить libprintf_flt.a







Евгений    11.05.16 18:06

Здравствуй, молодец, популяризируешь занятия с микроконтроллерами! Хотел узнать на чем писал программу Axlib Генератор v1.0 ?

Алексей    11.05.16 19:26

VisualStudio 12 C# Microsoft .NET Framework 4

Степа    17.05.16 19:38

Ачепятка :) во вкладке MAX7229, на рисунке СтандАртное

Алексей    17.05.16 20:06

Это картинка. Не буду менять))) Эдакое ХауНоу)))

Алексей    17.05.16 20:13

Не, не красиво. Подправил.

Степан    01.06.16 11:14

Пытаюсь через генератор создать проект с MAX7219, но студия выдает ошибку ------ Build started: Project: main, Configuration: Debug AVR ------ Build started. Project "main.cproj" (default targets): Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.targets" from project "D:\max7219\max7219\main\main.cproj" (target "Build" depends on it): Task "RunCompilerTask" ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

Алексей    01.06.16 12:29

Какая студия?

Степан    01.06.16 14:34

6.0 У меня при открытии проекта, в правом списке нет папки библиотеки, может я что то не подключил? Как я понял генератор сам все делает

Алексей    01.06.16 14:41

Могу лишь предложить скачать у меня студию 6.2 и обновить ее до версии 1331. Должно все заработать. Скачать можно в разделе Полезные программы. Она в самом низу.

Дмитрий    08.06.16 10:21

Привет Алексей пожелания^ Сделать обработку внешних прерываний по INT и русифицировать LCD

Алексей    08.06.16 13:36

Я уже думал над этим. Хочу объединить с энкодером.

Дмитрий    12.06.16 20:07

сделал поправку для DS3231 считывание температуры как положительного так и отрицательного значения //------------------------------------------------------------------------- // Функция возвращает измеренную температуру // // Принимает аргумент указатель на первый элемент знаковый массив. // // После вызовы данной функции в массиве будет лежать прочитанное температура. // В первом целое знаковое чесло температуры, во втором дробное число температуры. // //------------------------------------------------------------------------- void ds3231_read_temp(SBYTE *str) { BYTE temp = 1; SBYTE temp1; // Ожидание сброса BSY while(temp) { temp = ds3231_read_reg(DS3231_STATUS); temp &= (1 << DS3231_BSY); } // Чтение регистра CONTROL и установка бита CONV temp = ds3231_read_reg(DS3231_CONTROL); temp |= (1 << DS3231_CONV); ds3231_write_reg(DS3231_CONTROL, temp); // Чтение температуры temp1=ds3231_read_reg(DS3231_T_MSB); temp=ds3231_read_reg(DS3231_T_LSB); if (IS_CLR_B(temp1,7)) { *str = temp1; str++; temp>>=6; *str = temp*25; } else { if (temp==0) { *str=-128+(CLR_B(temp1,7)); } else { *str=(-128+(CLR_B(temp1,7)))+1; } str++; temp>>=6; if (temp==0) { *str = 0; } else { *str = 100-(temp*25); } } }

Алексей    13.06.16 10:33

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

Игорь    24.06.16 22:22

Здравствуйте уважаемый разработчик. Совместим ли код, генерируемый программой с winavr?

Алексей    25.06.16 17:35

Да, так как компилятор у студии и у WinAVR один и тот же AVR GCC. Одно лишь дополнение, нужен Atmel Toolchain для работы библиотек. А не проще установит студию и не искать для себя приключений?

Kebato    28.09.16 11:44

Благодарю. Дай Бог Вам здоровья!

Роман    20.11.16 22:48

Добрый вечер увидел программу был доволен но не долго . Пытался вывести информацию на LCD 16x2 но увы библиотека под 74hc595 , а у меня hd44780 . А ведь эти два вида контроллеров распространенные . Было б здорово добавить еще и такую библиотеку .

Алексей    20.11.16 23:40

74hc595 это не контроллер, а простой сдвиговый регистр. Для того чтоб выводить на дисплей с контроллером hd44780, нужно выбрать вкладку ЖК 1602 и подключаться к дисплею по 4-х битной шине. Для удобства внизу вкладки присутствует картинка со схемой подключения.

Роман    21.11.16 01:03

Странно у меня ничего не работает в таком случае

Алексей    21.11.16 02:02

Посмотрите видео вторую часть. Возможно что-то неправильно сделали.

Роман    21.11.16 18:53

Делал как в видео 1в1 но результата 0

Алексей    21.11.16 20:20

В чем выражается ноль. Не выводит на дисплей. Ножку W/R к GND прижали? Схема регулировки контраста правильная? Чудес не бывает.

Cаша    30.11.16 22:29

Доброй ночи пытался повторить часть 6 , так при компиляции есть ошибка BYTE str[20] = (0); ругается компилятор на это , в чем проблема ?

Алексей    30.11.16 23:40

А перед этой строчкой что написано?

Алексей    30.11.16 23:41

Да ежкин кот! А слона-то и не заметил. Кто же так обнуляет массив. О нужно записать в фигурные скобки.

Cаша    01.12.16 12:55

Просто было б не плохо еще к урокам выкладывать исходник под видео .

Саша    02.12.16 22:40

BYTE str[20] = {0}; Вот так заработало спасибо за подсказку

Игорь    20.01.17 15:49

Подскажите.Что надо сделать чтобы два датчика 18b20 работали на разных пинах одного порта c Вашей библиотекой 1W.

Алексей    20.01.17 16:47

Две шины сделать?

Игорь    21.01.17 10:00

Да.

Алексей    21.01.17 13:44

Нет. Так не получится. Библиотека поддерживает одну шину. Для опроса более одного датчика, необходимо опрашивать по их rom-кодам. В библиотеке есть функции для чтения rom-кода и запроса температуры с rom-кодом

Игорь    21.01.17 14:31

Представь простейшую ситуацию. У котла надо измерять температуру подачи и обратки ну и дымовых газов по SPI.
Кнопки в принципе не нужны и как поступить. Особенно при замене датчика.Компьютер подключать к МК?

Алексей    21.01.17 15:52

А куда эта температура идет? Или он ее измеряет для себя)))

Игорь    21.01.17 16:49

Пока ни куда.Просто посмотреть как горят различные виды топлива.Сигнализировать о превышении температуры. Можно сказать для себя.

Алексей    21.01.17 16:59

Ну, а в чем проблема повесить на одну ножку кнопку. Нажал и держишь более 3 сек, МК считал ром код. Короткое нажатие система пошла работать. Датчик котрый 10 раз не ответил, значит сдох. Стерли его ром код из базы автоматом. Таким образом можно ещё и температуру воздуха в котельне измерить.




Чтобы вставить ссылку используйте форму вида[url]http://www.адрес.ru[/url][text]текст ссылки[/text]
Чтобы вставить код используйте форму вида[code]код[/code]

Имя:   





  








Вверх


Рейтинг@Mail.ru Яндекс.Метрика