Arduino tips&tricks

Post Reply
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Arduino tips&tricks

Post by UR5FFR »

Так как память микроконтроллера не безгранична то всегда полезно смотреть кто и сколько ее потребляет. В ардуине это можно сделать вот так. Билдим проект в среде нажатием Ctrl+R, потом идем в temp и ищем там каталог с именем типа "arduino_build_603642". Внутри находим файл с расширением elf, его имя совпадает с именем проекта.
Делаем батник dump.bat состоящий из одной строчки

Code: Select all

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-nm" -Crtd --size-sort %1%
Запускаем батник
>dump.bat my_proj.elf >> dump.txt
На выходе получаем текстовый файл с дампом объектов по уменьшению занимаемой памяти.
Типа такого:

Code: Select all

00000068 B tx_buffer
00000068 B rx_buffer
00000034 B Serial
00000016 V vtable for HardwareSerial
00000004 B timer0_overflow_count
00000004 B timer0_millis
00000002 b loop::last_print
00000001 b timer0_fract
Подробнее про утилиту avr-nm можно прочитать тут

Решение было найдено тут
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Arduino tips&tricks

Post by UR5FFR »

Онлайн-калькулятор для расчета параметров программирования таймеров
http://www.8bit-era.cz/arduino-timer-in ... lator.html

Speedup the analogRead() function
http://yaab-arduino.blogspot.com/2015/0 ... input.html
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Arduino tips&tricks

Post by UR5FFR »

UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Arduino tips&tricks

Post by UR5FFR »

Power saving techniques for microprocessors
http://gammon.com.au/power

Работа с пониженной тактовой частотой
https://arduino.stackexchange.com/quest ... with-the-a

http://forum.arduino.cc/index.php?topic=271364.0
Для корректного отрабатывания таймингов и работы ком-порта при пониженной частоте добавляем плату с требуемой частотой в
C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt
в setup() первой строчкой прописываем
clock_prescale_set(clock_div_*)
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Arduino tips&tricks

Post by UR5FFR »

Иногда надо посмотреть сгенерированный компилятором ассемблерный код
Создаем батник disasm.bat из одной строчки

Code: Select all

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-objdump" -SC %1%
Запускаем батник
>disasm.bat my_proj.elf >> dump.txt
На выходе получаем текстовый файл
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Arduino tips&tricks

Post by UR5FFR »

Если кто-то попробует форматированно выводить плавающую запятую с помощью printf то получит на выходе вопросительные знаки. Потому что в библиотеке под атмеги это обрезано напрочь
Post Reply