Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование регистров Attiny 13
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 22:53:38

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Программирование регистров Attiny 13
СообщениеДобавлено: Пн фев 04, 2019 20:22:59 
Первый раз сказал Мяу!

Зарегистрирован: Ср янв 23, 2019 20:18:44
Сообщений: 24
Рейтинг сообщения: 0
Приветствую.
Сейчас заметил что если в регистры писать прямые значения то код занимает меньше места.

Переписал таким образом:
Код:
 // WDTCR  = _BV(WDTIE);
 // WDTCR |= (1<<WDP3 )|(0<<WDP2 )|(0<<WDP1)|(1<<WDP0); // prescale timer to 8s so we can measure current 
 // WDTCR |= (1<<WDTIE);                                // Enable watchdog timer interrupts

 
  WDTCR = 0x61; // так меньше код

//----------

 //DDRB = 0xFF; // порт B на выход
 //DDRB &= ~_BV(zMISO); // на ввод
 //DDRB &= ~_BV(zTEMP); // на ввод
 //DDRB &= ~_BV(zBATT); // на ввод

  DDRB = 0xE6; // так меньше код

//----------

 //ADCSRA  =  _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0); // Prescaler to 128 --> F_CPU / 128
 //ADCSRA |= _BV(ADSC); 

 ADCSRA = 0xC7; // так меньше код


//----------
 //TIMSK0 &= ~(1<<TOIE0);

 TIMSK0=0x00;  // так меньше код


Уже освободилось порядка 30 байт.


Раньше думал, компилятор оптимизирует код и разницы быть не должно. А оно вон как…
Контроллер прошил, все работает. Нет ли тут подводных камней?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование регистров Attiny 13
СообщениеДобавлено: Пн фев 04, 2019 22:37:43 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7854
Рейтинг сообщения: 0
на АСМе ещё можеш сократить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование регистров Attiny 13
СообщениеДобавлено: Вт фев 05, 2019 06:48:24 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
X-HUNTER писал(а):
Раньше думал, компилятор оптимизирует код и разницы быть не должно. А оно вон как…
компилятор оптимизирует код, но регистры МК (в частности, ваши DDR и т.п.) описаны, как volatile-переменные, а volatile - это значит неоптимизируемые.
X-HUNTER писал(а):
WDTCR = 0x61; // так меньше код
меньше, но, скажем так - не комильфо запись. более правильно записать как-то так:
Код:
WDTCR = _BV(WDTIE) | _BV(WDP3 ) | _BV(WDP0);
а совсем идеально - использовать модуль avr/wdt.h и применять готовые функции и макросы, например, так:
Код:
#include <avr/wdt.h>

wdt_enable(WDTO_30MS);
возможно, мой пример не подходит под ваши цели, но он показывает направление движения в правильную сторону

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

Мой уютный бложик... заходите!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Программирование регистров Attiny 13
СообщениеДобавлено: Вт фев 05, 2019 08:06:17 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 3
Код:
//TIMSK0 &= ~(1<<TOIE0);

 TIMSK0=0x00;  // так меньше код

но операции не идентичные. Первая строка сбрасывает бит TOIE0, оставляя остальные биты без изменения, а вторая строка обнуляет весь регистр.

_________________
Docendo discimus


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y