Я как-то так с STM32 и дружусь, а меня dosikus за это полил что я дескать не использую какие там еще дебагеры, и вообще проприетарных тулсов делающих неизвестно что и за кучу денег не понакупил. Только я make-файл сделал, с несколькими targets: make clean - стирает хлам, make firmware - билдит прошивку, make flash - шьет через STшный бут. Если прошивки нет - make flash ее сперва сбилдует. А .s файлов у меня нет - все на си. В случае cortex M3 после power up нет системных действий, которые бы реально ассемблер потребовали. Таблицу векторов можно оформить и заполнить на си, обработчик reset - тоже на си. Как максимум немного asm может захотеться для включения-выключения прерываний, но помигать светодиодом можно и без этого.
дык там ассеблерный проект, состоящий из одного s файла и одной инструкции. Ассемблерные стартапы находятся в стандартной поставке CMSIS. Тот же SysProgs выпускает плагин VisualGDB, который создает ARMовые проекты с сишным стартапом.
может "#define Arduino_UNO" в файлик config.h перенести:
Код:
#ifndef CONFIG_H #define CONFIG_H
#define F_CPU 16000000UL //CPU frequency for all 8-bit arduino #define Arduino_UNO ...
Неее, тогда работоспособность библиотеки потеряется. Там работает так: Если задефайнино Arduino_UNO, то дефайним адреса портов. Если сразу задефайнить всё, то тогда потеряется переносимость библиотеки - она будет работать только с Arduino_Uno (точнее только с платами на atmega328P),а я хочу, чтобы работало со всеми 8-битными платами.
_________________
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
Если не зватает микроконтроллерных портов (например для подключения кучки мигающих светодиодов ) давно используют спец микросхемы расширетелей портов. Китайцы, например, используют PCF8574 для индикаторов 1602. Понадобилось тоже "расширить" порты для STM32 - добавить индикатор. I2C ноги заняты, но SPI свободен, SPI спец микросжемы-расширетели тоже есть, но вспомнил про 74HC595, есть кучка в наличии - как расширитель имхо пойдет. На всякий надо проверить (пока плата изготавливается) - паять макет лень, а Протеус в прошлой реинкарнации этой темы напрямую таким индикатором управлял. Попробуем Протеусом через регистр индикатором поуправлять. Протеус 8.7 SP3 "научился" сам создавать Keil проекты для STM32 (без запуска среды Keil) - "видит" кейловский ARM компилятор, создает make файл, правда почти все прячет в дебрях файловой системы Виндовс, но найти можно. Для проверки пойдет. Создаем проект для STM32F103C4. Используем аппаратный SPI, настраивается довольно просто. SPI тут 16-и битный - на шару подключаем второй 74HC595, можно еще 8 светодиодов или типа реле подключить. Для индикатора хватит 6 ног, оставшиеся от регистра 2 ноги используем для светодиодов - один из них, например, это включение подсветки индикатора. проверочный говнокодик: Спойлер
Arduino представляет две новых платы IoT — MKR WiFi 1010 (ESP32) и MKR NB 1500 (NB-IoT + eMTC) Спойлер MKR WIFI 1010 — это усовершенствованная плата MKR1000, оснащенная модулем U-Blox ESP32. Характеристики: Спойлер* MCU — Microchip SAMD21 Cortex-M0 + MCU @ 48 МГц с 32 Кб SRAM, флэш-память 256 Кб * Беспроводное подключение — 2,4 ГГц 802.11 b/g/n WiFi и Bluetooth 4.2 LE через U-blox модуль NINA-W10 Series на базе процессора ESP32. * I/O -- 8х цифровых вводов-выводов -- 12x PWM контактов -- 1x UART, 1x SPI, 1x I2C -- 7x аналоговых входа на контакт -- 1x аналоговый вывод на контакт -- 8х внешних прерываниq -- Рабочее напряжение — 3,3 В -- Постоянный ток на контакт ввода/вывода — 7 мА * USB — порт micro USB для питания и программирования * Безопасность — устройство CryptoAuthentication ECC508 * Разное — RTC, светодиоды питания и заряда * Источник питания -- 5 В только через разъем USB или VIN -- Li-Po, 3.7 В, 700 мАч минимум * Размеры — 61,5 мм x 25 мм Вторая плата является первой официальной платой Arduino, поддерживающей стандарты сотовой IoT стандарта NB-IoT или eMTC. Характеристики: Спойлер* MCU — Microchip SAMD21 Cortex-M0 + MCU @ 48 МГц с 32 Кб SRAM, флэш-память 256 Кб * Беспроводное подключение — NB-Iot и LTE Cat M1 (eMTC) через модуль U-blox SARA-R410M, разъем Nano SIM-карты * I / O -- 22x цифровых ввода-вывода, включая 12x PWM контактов -- 1x UART, 1x SPI, 1x I2C -- 7x аналоговых входа на контакт -- 1x аналоговых выхода на контакт -- 8х внешних прерываний -- 1x I2S -- Рабочее напряжение — 3,3 В -- Постоянный ток на контакт ввода/вывода — 7 мА * USB — порт micro USB для питания и программирования * Разное — RTC, светодиоды питания и заряда * Источник питания -- 5В только через разъем USB или VIN -- Li-Po, 3.7В, 700 мАч минимум * Размеры — 61,5 мм x 25 мм
Я правильно понял, что присутствующие на этой странице мигают светодиодом исключительно ради того, чтобы он мигал? То есть если он, светодиод этот, вдруг замигает, то вы будете счастливы? А если не замигает, то соответственно впадете в депрессию? Или на самом деле все гораздо круче - у кого замигал, тот папка, а у кого нет, тот чайник, лох, дно, чмо и т.д. и т.п. ? Оранжевые штаны местного рОзлива?
Давайте и я что ли помигаю. Естественно на плюсах под STM32, при помощи таймера и DMA, причем оформлю это все в виде универсального класса, который можно запрятать где-то очень глубоко и чтобы им воспользоваться нужно лишь передать нужный пин, таймер и канал DMA.
Reflector, это не весь код. Нужно было проект выложить со всеми зависимостями.
Что еще нужно было сделать? Весь код есть только у меня и парочки моих товарищей, остальные могут оценить сам подход, хотя скомпилировать такой код все равно мало кто смог бы, для этого нужен gcc 7. Но я могу, опять же для примера, показать в упрощенном виде что находится внутри класса DMA: Спойлер
Код:
template<uint32_t ch> class DmaChannel { public: static constexpr auto dma() { return (DMA_TypeDef*)dmaBase; } static constexpr auto channel() { return (DMA_Channel_TypeDef*)ch; }
то в релизе разницы никакой, в дебаге шаблонная функция тяжелее на 4 байта, это собственно и есть та цена, которую мы платим за простоту и универсальность.
Не удержался, в пиковой теме увидел - человеку надо типа термостат на PIC и DS18B20. Мигаем светодиодом с пользой. Потом может на ARM сделаю. Создал проект XC8 прямо в Протеусе. Велосипед не изобретал - 1-вире скопипастил из своего древнего пиковского проекта: Спойлер
Сейчас этот форум просматривают: S.K., МЕХАНИКД и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения