Загруженность контролера
Добавлено: 22 янв 2013, 22:36
Всегда интересовал вопрос. Имеет ли смысл минимизировать число перезаписей регистров контролера?
К примеру есть код, который держит реле пока нажата кнопка:
Регистр PORTA будет перезаписываться каждую итерацию цикла.
Может есть смысл делать так:
К примеру есть код, который держит реле пока нажата кнопка:
Код: Выделить всё
while(1)
{
if(bit_is_clear(PINA, 0)) //кнопка
{
PORTA |= _BV(PA1); //реле вкл
{
else
{
PORTA &= ~_BV(PA1); //реле выкл
}
}
Регистр PORTA будет перезаписываться каждую итерацию цикла.
Может есть смысл делать так:
Код: Выделить всё
unsigned char flags;
while(1)
{
if(bit_is_clear(PINA, 0) && bit_is_clear(flags, 0)) //кнопка
{
PORTA |= _BV(PA1); //реле вкл
flags |= _BV(0);
{
if(bit_is_set(PINA, 0) && bit_is_set(flags, 0))
{
PORTA &= ~_BV(PA1); //relay off
flags &= ~_BV(0);
}
}