Мигать светодиодом. ARM или не-ARM?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

[uquote="Мурик",url="/forum/viewtopic.php?p=3366459#p3366459"]толку нет[/uquote]
с этим я уже ранее согласился, как впрочем и от простого мигания светодиодом тоже толку нет - это ж хэлловорлд, в данном случае предельно упрощенный. В исходнике не только одна инструкция есть еще директивы ассемблера (указатель на вершину стека, указатель на начало основной программы) - без них даже одна инструкция может не заработать.
[uquote="Мурик",url="/forum/viewtopic.php?p=3366459#p3366459"]Компилируют в IDE или с помощью makefile[/uquote]
тут тоже согласен, но знание командной строки не помешает (имхо) и автор пишет же "для сборки проекта буду использовать утилиту make", т.е. продолжение следует
[uquote="Мурик",url="/forum/viewtopic.php?p=3366459#p3366459"]В этой статье гораздо больше написано[/uquote]
ну тут, если сравнивать описание прошивки в Линукс "в этой статье":

Код: Выделить всё

sudo ./st-flash --reset write dump.bin 0x8000000
у автора ранее обсуждаемой статьи практически то же самое:

Код: Выделить всё

st-flash write ./main.bin 0x08000000
все очень просто (без тыканмй кнопочек в оконном приложении) лишь Линуксы разные и в первом случае добавлена комманда reset. Автор обещал расписать как в Убунте прошивать.
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение a5021 »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3342416#p3342416"]ну дают - у китайцев акция - Bluetooth модуль E73-2G4M04S за US $2.55.
Изображение
Внутри чип nRF52832.[/uquote]
А вот и светодиодом помигать для него. Ровно две строчки кода:

Код: Выделить всё

#include "nrf.h"
int main(void) {
  NRF_GPIO->PIN_CNF[25] = NRF_CLOCK->TASKS_LFCLKSTART = NRF_RTC0->TASKS_START = 1;
  while (1) NRF_GPIO->OUT = NRF_RTC0->COUNTER * 2048;
}
ассемблерный листинг для ценителей:

Код: Выделить всё

     6:         NRF_GPIO->PIN_CNF[25] = NRF_CLOCK->TASKS_LFCLKSTART = NRF_RTC0->TASKS_START = 1; 
0x00000598 4906      LDR           r1,[pc,#24]  ; @0x000005B4
0x0000059A 2001      MOVS          r0,#0x01
0x0000059C 6008      STR           r0,[r1,#0x00]
0x0000059E 0781      LSLS          r1,r0,#30
0x000005A0 6088      STR           r0,[r1,#0x08]
0x000005A2 4905      LDR           r1,[pc,#20]  ; @0x000005B8
0x000005A4 6008      STR           r0,[r1,#0x00]
     7:   while (1) NRF_GPIO->OUT = NRF_RTC0->COUNTER * 2048; 
0x000005A6 4905      LDR           r1,[pc,#20]  ; @0x000005BC
0x000005A8 4805      LDR           r0,[pc,#20]  ; @0x000005C0
0x000005AA 680A      LDR           r2,[r1,#0x00]
0x000005AC 02D2      LSLS          r2,r2,#11
0x000005AE 6002      STR           r2,[r0,#0x00]
0x000005B0 E7FB      B             0x000005AA
Мигание светодиода с частотой 1 Гц обеспечивают, по сути, последние четыре команды.
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

журнал для разработчиков "Новости Электроники" №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
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25369
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение КРАМ »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3367237#p3367237"]6. Статья «Удивительный датчик давления фитнес-трекера Gear Fit2 Pro»[/uquote]
Я грешным делом решил, что в области измерения КРОВЯНОГО давления достигнут прорыв. Однако нет, речь совсем о другом.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ART_ME
Друг Кота
Сообщения: 3011
Зарегистрирован: Вс окт 02, 2016 07:34:45

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ART_ME »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3367237#p3367237"]1. Статья «Решения STMicroelectronics для интеллектуальных счетчиков электроэнергии»
Беспроводной электросчетчик? У STMicroelectronics есть типовое решение на основе малопотребляющих микроконтроллеров STM, модуля проводной связи STCOMET, широкополосных передающих модулей и программно-аппаратных средств защиты информации. Плюс – видео от эксперта по современной электронике Алексея Ялаева![/uquote]
http://brain-dom.ru/
Твердотельное реле на симисторах своими руками
:music:
Реклама
Lublu_megy
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вт дек 12, 2017 16:52:57
Откуда: Вам широту и долготу скинуть?

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Lublu_megy »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3365804#p3365804"]На Хабре интересная статейка для тех кто хочет докопаться (имхо)
Программирование stm32f103 с самых основ
В статье я хотел бы описать шаги на пути к написанию прошивки для микроконтроллеров stm32 без использования специальных сред разработки типа keil, eclipse и тому подобных. Я опишу подготовку прошивки с самых основ, начиная с написания загрузчика на ассемблере, скрипта для линкера и заканчивая основной программы на C. В коде на C буду использовать заголовочные файлы из CMSIS.
https://habr.com/post/354670/?utm_sourc ... ign=354670
з.ы. в Виндовсе тоже можно собрать - создал простенький cmd файлик:

Код: Выделить всё

c:\SysGCC\arm-eabi\bin\arm-eabi-as -o bootstrap.o bootstrap.s
c:\SysGCC\arm-eabi\bin\arm-eabi-ld -o main.elf -T stm32f103.ld bootstrap.o
c:\SysGCC\arm-eabi\bin\arm-eabi-objcopy main.elf main.bin -O binary
pause
использовал toolchain ARM от SysProgs:
http://gnutoolchains.com/download/[/uquote]У меня идея. Раздербанить на ассемблерный код мигалку при помощи адресов (без cmsis и прочих библиотек)? "Продолжим" статью про Assembler + STM32F103C8T6 :)))

ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа

Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

было уже на Хабре про мигалку на ассемблере, правда STM32F4:
https://habr.com/post/274579/
последняя часть (тут ссылки на все части):
https://habr.com/post/276121/
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

мда... что-то пичалька в теме-то... из бодрой проповеди светлого будущего ARM скатилась в УГ мигания на ассемблере "у кого меньше"... где бравые рекламные лозунги, где реклма новых плат разработчика, где описание никому не нужных приборов ИОТ?! что за деградация?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

да не вопрос
Хорошая (имхо) линейка рядовых 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
и отладочная есть :))) :
Изображение
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

ну вот, другое дело.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

Компания 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
Lublu_megy
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вт дек 12, 2017 16:52:57
Откуда: Вам широту и долготу скинуть?

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Lublu_megy »

Всем привет! Реши, что надо скачать официальную 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".

Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
[/size][/center]

ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа

Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

Lublu_megy писал(а):Может у кого есть код на асме для ATTiny13A, чтобы помигать светодиодом на пине PB0
Для PB1. http://radiokot.ru/forum/viewtopic.php? ... 1#p3354381
Lublu_megy
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вт дек 12, 2017 16:52:57
Откуда: Вам широту и долготу скинуть?

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Lublu_megy »

[uquote="Мурик",url="/forum/viewtopic.php?p=3370579#p3370579"]
Lublu_megy писал(а):Может у кого есть код на асме для ATTiny13A, чтобы помигать светодиодом на пине PB0
Для PB1. http://radiokot.ru/forum/viewtopic.php? ... 1#p3354381[/uquote]Ничего не понятно! Чтобы помигать нужны вычисления? ЗАЧЕМ???

ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа

Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

Какие вычисления?
Lublu_megy
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вт дек 12, 2017 16:52:57
Откуда: Вам широту и долготу скинуть?

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Lublu_megy »

[uquote="Мурик",url="/forum/viewtopic.php?p=3370613#p3370613"]Какие вычисления?[/uquote]
Вот:

Код: Выделить всё

;
      .DSEG
      
      .CSEG
.ORG   0

      ldi      yl,low(RAMEND)
      out      SPL,yl
      sbiw   yl,16

      in      zl,PORTB
      ldi      r23,0x02
      eor      zl,r23
      out      portb,zl

      ldi      zl,low(1000)
      ldi      zh,high(1000)
      rcall   _Wms

L0001:

;****** END OF USER BASIC CODE ****************


;
_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.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа

Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

Это то что вы просили - код на асме мигающий светодиодом. Его можно скомпилировать с помощью avrasm32.exe.
То что вы выложили отличается от оригинала.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

еще в тему миганий светодиодом на tiny13 (на С)
с прерыванием по таймеру:
нужны "вычисления", допустим тактовая 1,2 МГц:
Если пределитель установлен на значение 1024, регистр таймера увеличивается на 1172 раза в секунду (1,2 МГц / 1024), 8-бит таймер (/255) переполняется 4,6 раза в секунду.
Спойлер

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>

volatile uint8_t counter = 0; // interrupt needs volatile variable

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...	
	}
}
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18657
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

интересно, oleg110592, вы вообще сами код пишите или занимаетесь только компиляцией чужих кодов? или написание вашего кода сводится только к Ctrl-C/Ctrl-V?
oleg110592 писал(а):// interrupt needs volatile variable
с чего вдруг?

Код: Выделить всё

ISR(TIM0_OVF_vect){
   static uint8_t counter = 5; // и не надо volatile 
   ...
}
про toggle pin для attiny13 я уже писал

ну и хоть я и не уверен на 100%, но должен сработать такой код мигания

Код: Выделить всё

#include <avr/io.h>

static uint8_t pins __attribute__((section('.noinit')));

int main(void){
   pins ^= 255;
   DDRB = pins;
   PORTB = pins;
}
если WDT включить напостоянку фьюзами

Добавлено after 3 hours 41 minute 1 second:
я тут подумал, подумал... для attiny13 можно помигать еще проще

Код: Выделить всё

#include <avr/io.h>

static uint8_t pins __attribute__((section('.noinit')));

int main(void){
   pins ^= 255;
   DDRB = pins;
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Lublu_megy
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Вт дек 12, 2017 16:52:57
Откуда: Вам широту и долготу скинуть?

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Lublu_megy »

Всем привет! Решил сделать недо-библиотеку, но при компиляции выдаётся ошибка, что 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

	#include <util/delay.h>
	#include <avr/io.h>
	
	#ifdef Arduino_UNO
		/* === Defines === */
			#define pin13 0x20
		/* === ======= === */
	#endif

#endif

ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа

Ответить

Вернуться в «МЯЯЯУ!»