Показать сообщение отдельно
Старый 19.11.2012, 10:14   #2742
BlkDem
Старший Пользователь
 
Аватар для BlkDem
 
Регистрация: 21.10.2009
Возраст: 47
Город: Киселевск
Регион: 42
Машина: Kia Sorento 2.5TD AT TOD LSD
Сообщений: 524
BlkDem is just really niceBlkDem is just really niceBlkDem is just really niceBlkDem is just really nice
По умолчанию

Цитата:
Сообщение от AVK74 Посмотреть сообщение
Два три дня повтыкать в мануалы ...Несложно...
Ну да, ну да. Ну да ладно.

PHP код:
#include <avr/wdt.h> 

int pwr_off_delay 40;
int pwr_cnt=0;
int acc_delay 5;
boolean led_trigger false;
boolean online false;

void _led_off()
{
  
PORTC &= B11011111;  
}

void _led_on()
{
  
PORTC |= B00100000;  
}

void _blink(int vallong sp)
{
  for (
int i=0i<vali++)
  {
    
_led_on();
    
delay(sp);
    
_led_off();
    
delay(sp);
  }
}

void _pwr_on()
{
  if (
online) return;
  
PORTD |= B00000100;
  
online true;
  
delay(1000);
  
wdt_reset();
  
delay(1000);
  
_pwr_btn();
  
_led_on();
}

void _pwr_off()
{
  
PORTD &= B11111011;
  
_led_off();
}

void _pwr_btn()
{
  
PORTB |= B00001000;
  
delay(500);
  
PORTB &= B11110111;
}

void _pwr()
{
  
pwr_cnt++;
  
led_trigger != led_trigger;
  if (
led_trigger_led_on(); else _led_off();
  if (
pwr_cnt>=pwr_off_delay)
  {
    
_pwr_off();
    
online false;
  }
}

void setup() {                
  
DDRC |= B00100000;  
  
DDRB |= B00001000;
  
DDRD |= B00000100;
  
PORTC |= B00000000;
  
_blink(3500);
  
_blink(3100);
  
delay(1500);
  
wdt_enable(WDTO_2S);
}

boolean _chk_acc_off()
{
  if (!(
PINC & (<< PC2)))
  {
    for (
int i=0i<acc_delayi++)
    {
      
delay(1000);
      
wdt_reset();
    }
    if (!(
PINC & (<< PC2)))
    {
      return 
true;
    }
    else return 
false;
  }
  else return 
false;  
}

boolean _chk_acc()
{
  if (
PINC & (<< PC2))
  {
    for (
int i=0i<acc_delayi++)
    {
      
delay(1000);
      
wdt_reset();
    }
    if (
PINC & (<< PC2))
    {
      return 
true;
    }
    else return 
false;
  }
  else return 
false;
}

void loop() 
{
  
wdt_reset();
  if (!
online)
  {
    if (
_chk_acc()) 
    {  
      
_pwr_on();
    }
  } 
  else
  {
    if (
_chk_acc_off())
    {
          
_pwr_btn();
          for (
int i=0i<pwr_off_delayi++)
          {
            
delay(1000);
            
wdt_reset();
            
led_trigger = !led_trigger;
            if (
led_trigger_led_on(); else _led_off();
          }
         
_pwr_off();
         
online false;          
        }
  }

Код собирался Arduino IDE 022
__________________
Планшет на Android -> USB-DAC (PCM2704 - SPDIF) -> Clarion HX-D2 -> Helix H500 Esprit -> Dynaudio MD100 + Миды из комплекта Pioneer TS-C131 PRS, доработанные Михаилом Nitro + Hertz F20 + Alpine PDX-1.600 + Auditor RIP 380.
BlkDem вне форума