Пн фев 04, 2019 20:22:59
// 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; // так меньше код
Пн фев 04, 2019 22:37:43
Вт фев 05, 2019 06:48:24
компилятор оптимизирует код, но регистры МК (в частности, ваши DDR и т.п.) описаны, как volatile-переменные, а volatile - это значит неоптимизируемые.X-HUNTER писал(а):Раньше думал, компилятор оптимизирует код и разницы быть не должно. А оно вон как…
меньше, но, скажем так - не комильфо запись. более правильно записать как-то так:X-HUNTER писал(а): WDTCR = 0x61; // так меньше код
WDTCR = _BV(WDTIE) | _BV(WDP3 ) | _BV(WDP0);
#include <avr/wdt.h>
wdt_enable(WDTO_30MS);
Вт фев 05, 2019 08:06:17
//TIMSK0 &= ~(1<<TOIE0);
TIMSK0=0x00; // так меньше код