Загруженность контролера

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
idima
Сообщения: 2

Сообщение idima » 22 янв 2013, 22:36

Всегда интересовал вопрос. Имеет ли смысл минимизировать число перезаписей регистров контролера?
К примеру есть код, который держит реле пока нажата кнопка:

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

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);
    }
}

Аватара пользователя
BSVi
Адепт
Сообщения: 3576
Откуда: Киев

Сообщение BSVi » 22 янв 2013, 22:58

Смысла не имеет. Даже на потребление это повлияет отрицательно, так как кода выполнять больше нужно.

idima
Сообщения: 2

Сообщение idima » 22 янв 2013, 23:03

Спасибо

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

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