с этим я уже ранее согласился, как впрочем и от простого мигания светодиодом тоже толку нет - это ж хэлловорлд, в данном случае предельно упрощенный. В исходнике не только одна инструкция есть еще директивы ассемблера (указатель на вершину стека, указатель на начало основной программы) - без них даже одна инструкция может не заработать.
тут тоже согласен, но знание командной строки не помешает (имхо) и автор пишет же "для сборки проекта буду использовать утилиту make", т.е. продолжение следует
ну тут, если сравнивать описание прошивки в Линукс "в этой статье":
Код:
sudo ./st-flash --reset write dump.bin 0x8000000
у автора ранее обсуждаемой статьи практически то же самое:
Код:
st-flash write ./main.bin 0x08000000
все очень просто (без тыканмй кнопочек в оконном приложении) лишь Линуксы разные и в первом случае добавлена комманда reset. Автор обещал расписать как в Убунте прошивать.
журнал для разработчиков "Новости Электроники" №3'18
Третий номер «Новостей электроники» - информация об измерениях и их передаче по беспроводной сети. Датчики: протечки, давления, влажности. Беспроводные микроконтроллеры. Типовой проект беспроводного электросчетчика от ST. И – стандартные 32-разрядные промышленные МК от Infineon, но – с поддержкой EtherCAT. Содержание номера: 1. Статья «Решения STMicroelectronics для интеллектуальных счетчиков электроэнергии» Беспроводной электросчетчик? У STMicroelectronics есть типовое решение на основе малопотребляющих микроконтроллеров STM, модуля проводной связи STCOMET, широкополосных передающих модулей и программно-аппаратных средств защиты информации. Плюс – видео от эксперта по современной электронике Алексея Ялаева! 2. Статья «Какое решение TI Bluetooth выбрать?» Два решения для сети Bluetooth от Texas Instruments. Двухрежимный трансивер CC256x и BLE-контроллер СС26хх. Каковы критерии выбора? 3. Статья «Практическое знакомство с CC2640R2F» Новый беспроводной контроллер СС2640R2F- первое сертифицированное решение для BLE 5.0. То есть – повышенная скорость передачи и увеличенная дальность. О других его секретах читайте в статье. 4. Статья «TI говорит беспроводное «нет» протечкам и замерзанию» Новая опорная разработка Texas Instruments – датчик протечек и замерзания на базе беспроводного контроллера CC1310 и интегрального датчика температуры и влажности HDC2010. Работает от одной батареи 11 лет и предупреждает хозяев дома об аварии. 5. Статья «Измерение влажности – как повысить точность?» Texas Instruments выпускает датчики влажности HDC. Они позволяют выполнять измерения с погрешностью ±2% в широком диапазоне температур. Как применять их, чтобы не загубить заявленную точность измерения? 6. Статья «Удивительный датчик давления фитнес-трекера Gear Fit2 Pro» Фитнес-трекеры превратились из гаджета для развлечения в точные портативные приборы, показаниям которых можно доверять. Не в последнюю очередь – благодаря новым точным и компактным интегральным датчикам. Датчик давления LPS33HW от STMicroelectronics – один из ярких примеров. 7. Статья «Микроконтроллеры Infineon: 32 разряда для любых промышленных применений» Микроконтроллеры XMC1000 и XMC4000 от Infineon – качественные стандартные 32-разрядные изделия для индустриального рынка с достаточно развитой периферией. https://www.compel.ru/lib/ne/2018/3
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
1. Статья «Решения STMicroelectronics для интеллектуальных счетчиков электроэнергии» Беспроводной электросчетчик? У STMicroelectronics есть типовое решение на основе малопотребляющих микроконтроллеров STM, модуля проводной связи STCOMET, широкополосных передающих модулей и программно-аппаратных средств защиты информации. Плюс – видео от эксперта по современной электронике Алексея Ялаева!
На Хабре интересная статейка для тех кто хочет докопаться (имхо) Программирование stm32f103 с самых основ
Цитата:
В статье я хотел бы описать шаги на пути к написанию прошивки для микроконтроллеров stm32 без использования специальных сред разработки типа keil, eclipse и тому подобных. Я опишу подготовку прошивки с самых основ, начиная с написания загрузчика на ассемблере, скрипта для линкера и заканчивая основной программы на C. В коде на C буду использовать заголовочные файлы из CMSIS.
У меня идея. Раздербанить на ассемблерный код мигалку при помощи адресов (без cmsis и прочих библиотек)? "Продолжим" статью про Assembler + STM32F103C8T6
_________________
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
мда... что-то пичалька в теме-то... из бодрой проповеди светлого будущего ARM скатилась в УГ мигания на ассемблере "у кого меньше"... где бравые рекламные лозунги, где реклма новых плат разработчика, где описание никому не нужных приборов ИОТ?! что за деградация?!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
да не вопрос Хорошая (имхо) линейка рядовых 48МГц микроконтроллеров от Renesas (14 бит АЦП! 12 бит ЦАП) S3A1 MCU Group offers ample room for expansion and the optimal combination of low power and high performance, with an Arm® Cortex®-M4 CPU core running up to 48 MHz, 1 MB of flash memory, and 192 KB of SRAM. It includes an additional 12-bit D/A Converter as well as multiple 32-Bit General PWM timers and serial communications interfaces.
Например самый простенький R7FS3A17C3A01CFM, характеристики: СпойлерFamily Synergy MCU Series S3 Series Group S3A1 CPU M4 Max. Freq (MHz) 48 Code Flash (KB) 1024 Data Flash (KB) 8 SRAM (KB) 192 Pin Count 64 I/O Count 52 Operating Voltage Range (V) 1.6 - 5.5 Package Type LQFP Operating Temperature Range (degC) -40 to 105 General PWM Timer 32-Bit Enhanced High Resolution (ch) 0 General PWM Timer 32-Bit Enhanced (ch) 0 General PWM Timer 32-Bit (ch) 4 General PWM Timer 16-Bit (ch) 6 Asynchronous General purpose Timer 2 Watchdog Timer 1 Independent Watchdog Timer 1 DMA Controller (ch) 4 Data Transfer Controller 1 RTC 1 14-Bit A/D Converter (unit) 1 14-Bit A/D Converter (ch) 18 12-Bit A/D Converter (unit) 0 12-Bit D/A Converter (ch) 1 8-Bit D/A Converter (ch) 2 High-Speed Analog Comparator (ch) 0 Low-Power Analog Comparator (ch) 2 PGA (ch) 0 OPAMP (ch) 3 Temperature Sensor (ch) 1 Ethernet MAC Controller (port) 0 USBFS YES CAN (ch) 1 SD/MMC Host Interface (ch) 0 Serial Communication Interface (ch) 6 IrDA 0 SPI (ch) 2 I2C (ch) 2 Serial Sound Interface (ch) 0 Graphics LCD Controller YES Segment LCD Controller 4 com x 17 seg and 4 com/seg Capacitive Touch Sensing Unit (ch) 24 Safety YES Security and Encryption YES Security and Encryption (Remarks) 128-bit Unique ID TRNG AES(128/256) GHASH
Компания Lilygo сделала еще одну плату ESP32 частью семейства TTGO — плата TTGO T5 на базе чипа ESP32 от компании Espressif System, который обеспечивает подключение пользовательских устройств к интернет-сети по Wi-Fi и Bluetooth и с возможностью выбора ePaper дисплеев размером от 1,54 до 2,3 дюйма, а также встроенным динамиком. Спецификации платы TTGO T5: Спойлер* SoC — Espressif ESP32 двухъядерный процессор Tensilica LX6 с WiFi 802.11 b/g/n и Bluetooth 4.1 LE * Хранилище — слот для карт Micro SD * Дисплей (один из перечисленных) -- 1,54" 200 x 200 черно-белый дисплей ePaper; полное время обновления — 2 секунды -- 2,13" 250 x 122 черно-белый дисплей ePaper; полное время обновления — 2 секунды -- 2,7" 264 x 176 черно-белый дисплей ePaper; полное время обновления — 6 секунд -- 2,9" 296 x 128 черно-белый дисплей ePaper; полное время обновления — 2 секунды -- Угол обзора -> 170 ° -- Потребляемая мощность — Refresh: 26,4 мВт (тип.); режим ожидания: <0,017 мВт -- Подключается через интерфейс SPI * Аудио — мини-динамик * Расширение — 24-контактный разъем с GPIO, UART, динамиком +/-, VP / VN, VBAT, 3,3 В, GND * Разное — 3 кнопки пользователя, кнопка сброса, выключатель питания * Напряжение питания — 5 В через порт micro USB; разъем аккумулятора документация, исходники: https://github.com/LilyGO/TTGO-T5-ePaper1.54
Всем привет! Реши, что надо скачать официальную Atmel Studio 7 (на**р Arduino IDE!1! )... скачал установщик... ставил 1 час на SSD и вот, заветное создание блинка для Arduino Mega... Занимает простенький блинк для Меги 282 байта (~0.1%), но для ATTiny13A он занимает все 68 байт (~6.6%)! ДА ЭТО ЖЕ ВОЗМУТИТЕЛЬНО!!! Ну всё, пора в ассемблер, но тут меня настигло "Да чё это за ...?! Я ... не понимаю!". Гугление вообще меня расстроило. Может у кого есть код на асме для ATTiny13A, чтобы помигать светодиодом на пине PB0 раз в секунду? Желательно с объяснениями!!!
Чуть не забыл! Код на СИ для ATTiny13A снизу в спойлере:Спойлер
Код:
#define F_CPU 16000000UL
#include <avr/io.h> #include <util/delay.h>
int main(void) { DDRB |= 00000001; while (1) { PORTB ^= 00000001; _delay_ms(1000); } }
Компиляция:
Код:
------ Build started: Project: ATTiny13A, Configuration: Debug AVR ------ Build started. Project "ATTiny13A.cproj" (default targets): Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "CoreBuild" in file "C:\Program Files\Atmel\Studio\7.0\Vs\Compiler.targets" from project "C:\Users\{Скрыто}\Documents\Atmel Studio\7.0\ATTiny13A\ATTiny13A\ATTiny13A.cproj" (target "Build" depends on it): Task "RunCompilerTask" Shell Utils Path C:\Program Files\Atmel\Studio\7.0\shellUtils C:\Program Files\Atmel\Studio\7.0\shellUtils\make.exe all --jobs 2 --output-sync make: Nothing to be done for 'all'. Done executing task "RunCompilerTask". Task "RunOutputFileVerifyTask" Program Memory Usage : 68 bytes 6.6 % Full Data Memory Usage : 0 bytes 0.0 % Full Done executing task "RunOutputFileVerifyTask". Done building target "CoreBuild" in project "ATTiny13A.cproj". Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != ''). Target "Build" in file "C:\Program Files\Atmel\Studio\7.0\Vs\Avr.common.targets" from project "C:\Users\{Скрыто}\Documents\Atmel Studio\7.0\ATTiny13A\ATTiny13A\ATTiny13A.cproj" (entry point): Done building target "Build" in project "ATTiny13A.cproj". Done building project "ATTiny13A.cproj".
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
Ничего не понятно! Чтобы помигать нужны вычисления? ЗАЧЕМ???
_________________
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
; _Wms: ldi r20,0x14 _Wms1: ldi r21,0x11 _Wms2: dec r21 brne _Wms2 dec r20 brne _Wms1 dec zl brne _Wms ret _Wms: ldi r20,0x14 _Wms1: ldi r21,0x11 _Wms2: dec r21 brne _Wms2 dec r20 brne _Wms1 dec zl brne _Wms ret
_________________
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
еще в тему миганий светодиодом на tiny13 (на С) с прерыванием по таймеру: нужны "вычисления", допустим тактовая 1,2 МГц: Если пределитель установлен на значение 1024, регистр таймера увеличивается на 1172 раза в секунду (1,2 МГц / 1024), 8-бит таймер (/255) переполняется 4,6 раза в секунду.
ISR(TIM0_OVF_vect) { if (++counter > 5) { // interrupt occurs 4.6 times per second // Toggle Port B pin 3 output state PORTB ^= 1 << PB3; // Toggle Port PB3 counter = 0; //reset the counter } }
int main() { // Set up Port B pin 3 mode to output by setting the proper bit // in the DataDirectionRegisterB DDRB = 1 << DDB3;
// set prescale timer to 1/1024th TCCR0B |= (1 << CS02) | (1 << CS00); // set CS02 and CS00 bit in TCCR0B
// enable timer overflow interrupt TIMSK0 |= 1 << TOIE0; // left shift 1 to TOIE0 and OR with TIMSK // = set TOIE0 bit sei(); //start timer while(1); }
Еще, с ватчдогом: Спойлер
Код:
#include <avr/interrupt.h> #include <avr/sleep.h>
ISR(WDT_vect) { // Toggle Port B pin 3 output state PORTB ^= 1 << PB3; }
void main() { // Set up Port B as Input DDRB = 0; // usually not necessary but it will save current // Set Port B pin 3 mode back to output DDRB = 1 << DDB3;
//set timer to 1 sec WDTCR |= (0 << WDP3) | (1 << WDP2) | (1 << WDP1) | (0 << WDP0); // set timer to 0.5s // WDTCR |= (1<<WDP2) | (1<<WDP0); // set timer to 4 sec // WDTCR |= (1<<WDP3);
// Set watchdog timer in interrupt mode WDTCR |= (1 << WDTIE); WDTCR |= (0 << WDE); sei(); // Enable global interrupts
set_sleep_mode(SLEEP_MODE_PWR_DOWN); while (1) { sleep_mode(); // go to sleep and wait for interrupt... } }
интересно, oleg110592, вы вообще сами код пишите или занимаетесь только компиляцией чужих кодов? или написание вашего кода сводится только к Ctrl-C/Ctrl-V?
oleg110592 писал(а):
// interrupt needs volatile variable
с чего вдруг?
Код:
ISR(TIM0_OVF_vect){ static uint8_t counter = 5; // и не надо volatile ... }
про toggle pin для attiny13 я уже писал
ну и хоть я и не уверен на 100%, но должен сработать такой код мигания
Всем привет! Решил сделать недо-библиотеку, но при компиляции выдаётся ошибка, что pin13 не декларированный (хотя он прописан) и на этом компиляция завершается. Вроде сделал всё правильно, но если не работает, значит я накасячил. Тыкните пожалуйста в косяк. Ошибка в полном виде: Error'pin13' undeclared (first use in this function). (Указывает на DDRB в int main)
main.c:Спойлер
Код:
#include "config.h"
#define Arduino_UNO
int main(void) { /* Replace with your application code */ DDRB |= pin13; while (1) { PORTB ^= pin13; _delay_ms(1000); } }
config.h:Спойлер
Код:
#ifndef CONFIG_H #define CONFIG_H
#define F_CPU 16000000UL //CPU frequency for all 8-bit arduino
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения