Esempio n. 1
0
static void wait_ready(void)
{
    /*
    _delay_ms(1);
    return;
    */
    uint8_t flag;
    lcdPrepareRead();
    CMD_RS0();
    do
    {
        CMD_E_MARK();
        CMD_E_DELAY();
        flag = PIN(LCD_D7);
        CMD_E_RELEASE();
        CMD_E_DELAY();
        wdr();
    } while(flag);
    lcdPrepareWrite();
    /*
    uint16_t i;
    for(i=0; i<2000; i++)
        asm volatile ("nop");
    */
}
Esempio n. 2
0
int main(void)
{
OSCCAL=eeprom_read_byte(0x00);        // Настройка генератора.
PRR=0x0b;           // выключаем лишние устройства.
DDRB=0b00000111;    //  настраиваем порт в
PORTB=0b00000000;   // сбрасываем в ноль
DDRA= 0b10011000;    // настраиваем порт А
PORTA=0b00010000;   // выключаем приемопередатчик
DIDR0=0b00000110;   // отключаем цифровые входы от компаратора
// сторожевой таймер
WDTCSR=0x18;        // настраиваем сторожевой таймер
WDTCSR=0x29;        // сторожевой таймер сброс через 8 секунд.
// настройка переменных
flag=0;
set_sleep_mode(SLEEP_MODE_IDLE);
sleep_enable();
id_yd=0;
while (1)
      {  
		 ClsBit(PORTA,pwr_up); // выключаем приемник
		 flag=0;
		 delay_ms(20);
		 ACSR=0b00011011; // включаем компаратор.
		 delay_ms(10);
		 sei(); // разрешаем прерывания 
         while(!flag)  	sleep_cpu();  //ждем удара и усыпляем контролер 
		 // удар произошел передаем данные
		 // 
		 cli(); // запрещаем прерывания.
		 SetBit(PORTA,pwr_up);  // включаем приемник
		 delay_ms(10);       	// задержка 10 ms.
		 LoadConf();         	// загружаем конфигурацию.  
		 // передаем пакет.      
         PutChar(0xe7);
         PutChar(adr);  
         PutChar(id_yd);      
		 ce0; // активизируем передачу    
         delay_ms(9); // делаем выдержку по времени 1 ms.
		 wdr(); // сбрасываем сторожевой таймер.
      }
}