Все работает, только много места занимает. Суть смысл в том, что есть сенсор, которым нужно включать/выключать светодиод и устанавливать яркость светодиода. По задумке короткие касания включают и выключают. Удерживание переводит в режим димирования и происходит он пока удерживается сенсор. Отпущенный сенсор прекращает димирование, а через некоторое время выключает режим настройки. Желательно чтобы яркость менялась от max до min и обратно (это не влезло) ну и в 2-3 раза медленнее. Еще нужно по выходу из настройки писать в EEPROM что настроили и при включении грузить. Не влазит все это. Прошу помочь. Спасибо.
Код
unsigned char pwm, pwm2, flag, flag2, on_off, revers;
if (GET_SENSOR_STATE(0) !=0)
{
if(flag==0) {flag2=~flag2; flag=1; pwm=0;}//
if(pwm>80) {on_off=255; pwm2=0;}
}
else
{
flag=0;
if((flag2==0)&(on_off==0)) DDRB &= ~(1u << PORTB2);//
else {flag2=255;}
if(pwm2>120) on_off=0;
}
if(flag2==255) DDRB |= (1u << PORTB2);
if(on_off==255)PORTD &= ~(1u << PORTD6);
else PORTD |= (1u << PORTD6);
#pragma vector=TIMER0_COMPA_vect
__interrupt static void timer0_isr( void )
{
if (GET_SENSOR_STATE(0) !=0)
{
++pwm;
if(on_off == 255)
{
/* if((revers==0)&(OCR0A != 255)) ++OCR0A;
else
{
revers = 255;
if(OCR0A !=0) --OCR0A;
else revers = 0;
}*/
++OCR0A;
}
}
else ++pwm2;
}