Example #1
0
void InitProx(void)
{
    InitAd();				// init AD converter module
    InitTMR1();				// init timer 1 for ir processing
}
Example #2
0
    int main(void)
    {
	DDRA=0;
	PORTA=0;
 
    DDRB=0xbc;
	PORTB |= 0xff;

    DDRC=0x1c;
 //   PORTC |=0xff;

    DDRD=0xba;
    PORTD=0xff;

//INIT TWI;
    TWBR=0x7f;//F TWI
    CtStart=65000;
	while(CtStart--)	_WDR();
//Init capture1
    TCCR1B=0x82;//0.5mkc,falling edge
    TIMSK=TIMSK | 0x4;//enable Int overlowT1





//  INIT SPI
    SPCR=0x72;//f/64
    SPSR=0;//f/64



    InitAd();


    MCUCR=0;


	TCCR0=5;// /1024

	ASSR=0;

	TCCR2=2;// T=0,5 mkc

	ASSR=0;





	NumberLink=1;

	CtUsart=NumberBlok;
	ResetError();
	URef=ReadEepromWord(8);
	if(URef>275)
	URef=256;
	if(URef<230)
	URef=256;

    _SEI();

					             
     while(1)
    {

     _WDR();
	 ChangeRegimTest();
	 ControlOut();
	CalcTM();
	LoadIndicator();
	SetRegimErrorLuk();
	SetErrorLuk();


	if(RomReceiveRS[5][3] & 4)
	ResetError();
	else if(RomReceiveRS[5][6] & 4)
	ResetError();
	else
		{
	RegTransmit[3][1] &=0xdf;
	RegTransmit[3][2] &=0xfe;
		}
	SetError();

	if(RomReceiveRS[6][3] & 0x80)
		{
	RegTransmit[1][2]=0;
	RegTransmit[2][2] &=0xfe;
		}
	else
	ControlLuk();







	 if(!CtErrorLink[0])
		{
//INIT TWI;
    TWBR=0;//F TWI
   TWAR=0;
   TWCR =0;
	TWSR=0xf8;

    TWBR=0x7f;//F TWI

    CtStart=65000;
	while(CtStart--)	_WDR();
	CtErrorLink[0]=CtErrorLink0;
	CtErrorLink[1]=CtErrorLink0;
	CtErrorLink[2]=CtErrorLink0;
		}
	 if(!CtErrorLink[1])
		{
//INIT TWI;
    TWBR=0;//F TWI
   TWAR=0;
   TWCR =0;
	TWSR=0xf8;

    TWBR=0x7f;//F TWI
    CtStart=65000;
	while(CtStart--)	_WDR();

	CtErrorLink[0]=CtErrorLink0;
	CtErrorLink[1]=CtErrorLink0;
	CtErrorLink[2]=CtErrorLink0;
		}
	 if(!CtErrorLink[2])
		{
//INIT TWI;
    TWBR=0;//F TWI
   TWAR=0;
   TWCR =0;
	TWSR=0xf8;

    TWBR=0x7f;//F TWI
    CtStart=65000;
	while(CtStart--)	_WDR();
	CtErrorLink[0]=CtErrorLink0;
	CtErrorLink[1]=CtErrorLink0;
	CtErrorLink[2]=CtErrorLink0;
		}
    ReadKn();

   if(NumberLink)
    --NumberLink;
    else
    NumberLink=2;






    LoadRegTransmit();

   ReceiveTransmitMaster();






    }
  
}
Example #3
0
    int main(void)
    {
	unsigned int R0;
	unsigned int R2;
	DDRA=0;
	PORTA=0;
 
    DDRB=0xa0;
	PORTB |= 0xff;

    DDRC=0xfc;
    PORTC |=0xff;

    DDRD=0x2a;
    PORTD=0xf7;

//INIT TWI;
    TWBR=0x7f;//F TWI
    CtStart=65000;
	while(CtStart--)	_WDR();
//Init capture1
    TCCR1B=0x82;//0.5mkc,falling edge
    TIMSK=TIMSK | 0x4;//enable Int overlowT1
//    TIMSK=TIMSK | 0x20;//enable Int capture1 prov

//INIT USART
	InitUsart();

//  INIT SPI
    SPCR=0x70;//f/64
    SPSR=0;//f/64

    InitIndStart();


    InitAd();
    TCCR1B=0xc2;//0.5mkc
    TIMSK=TIMSK | 0x4;//enable Int overlowT1




 
    ResetAvaria();
	LoadFromEeprom();
	RomReceive[3]=1;
	RomReceive[4]=0;
	RomReceive[6]=0;

	RegSPCH2=0;
	RegSPCH2Old=0;
	CtKn=5;
	RegimWork=0;
	U50=0;
	I50=200;
	UKvadro=0;
	U400Out=0;
	IA=0;
	IB=0;
	IC=0;
	CtUsart=NumberBlok;
	RegTransmitRS[1]=0;
	CtLuk=200;
    _SEI();
	CtBegin=50;
	RomReceiveRS[3][1]=0;//denablePusk
	RomReceiveRS[3][4]=0;//denablePusk
	RegTransmitRS[3]=0;	
	RegTransmitRS[1]=0;
	ClearErrorFar();
	CtIMax=80;
	CtUError=160;
	AvariaI=0;
	RegStop=0;								             
     while(1)
    {

     _WDR();
	 if(CtBegin)
	 	{
	if(RomReceive[3] & 2)
	NumberBlok=4;
	else
	NumberBlok=1;
		}

//	UMin=220;
//	UMax=600;
	if(RegimWork>=6)
		{
	if((UKvadro>=UMin) && (UKvadro<=UMax))
	CtUError=160;
		}
	else
	CtUError=80;
	if(RomReceiveRS[5][3] & 4)
		{
	ResetAvaria();
	ClearErrorFar();
		}
	if((RomReceiveRS[5][6] & 4)||(RomReceive[4] & 0x80))
		{
	ResetAvaria();
	ClearErrorFar();
		}
	if((Avaria)||(AvariaI))
	RegTransmitRS[1] |=1;
	else
	RegTransmitRS[1] &=0xfe;
	if(!(RegS & 0x60))
	RegTransmitRS[1] |=2;
	else
	RegTransmitRS[1] &=0xfd;
	if(RegS & 0x10)
	RegTransmitRS[1] |=4;
	else
	RegTransmitRS[1] &=0xfb;
	if((RegimWork)&&(!CtLuk))
	RegTransmitRS[1] |=8;//Open Luk
	else
	RegTransmitRS[1] &=0xf7;//Close Luk

	if((RomReceive[5] & 1)&&(RegS & 0x10))
	RegTransmitRS[1] |=0x10;
	else
	RegTransmitRS[1] &=0xef;
	if(RegS & 0x10)//nagr=on
	RegTransmitRS[1] |=0x20;
	else
	RegTransmitRS[1] &=0xdf;

	RegTransmitRS[2]=RomReceiveRS[3][0];//Avaria;//RegS;//RegimError;//NumberBlok;//45;//U50;

	RegTransmitRS[4]=U400In>>2;//RomReceive[2];//UNom
	RegTransmitRS[5]=Avaria;//46;//AdResult[1];
	RegTransmitRS[6]=TestTimeAd;//16;

	RegSPCH2=RomReceive[3]<<8;
	RegSPCH2 |=RomReceive[4];
	AccountU50();
	AccountI50();
	CalcI50();

	AccountUKvadro();
	AccountU400Out();
	AccountIA();
	AccountIB();
	AccountIC();
	AccountIMax();
	if(IMax<IMaxDop)
	CtIMax=80;


	ControlRegimError();
	if(RomReceive[3] & 1)
		{
	ControlRegimWork();
	ControlK();
		}
	else
		{
	ControlRegimWorkDU();
	ControlKDU();
		}
	SetAvaria();		




	 if(!CtErrorLink)
		{
//INIT TWI;
    TWBR=0;//F TWI
   TWAR=0;
   TWCR =0;
	TWSR=0xf8;

    TWBR=0x7f;//F TWI

	CtErrorLink=CtErrorLink0;
		}
  
	if(CtLinkTWI)
	--CtLinkTWI;
	else
	{
	CtLinkTWI=30;

	_WDR();
    LoadRegTransmit();//++RegTransmit
    ReceiveTransmitMaster();
	}
  ReadKn();






     DecSegm(U400In);
    SetCursor(0,0);
    IndPar();
	R0=400;
    while(R0--)         _WDR();	
    SPDR=0x20;
	R2=900;
    while(R2--)         _WDR();
     DecSegm(UKvadro);
    SetCursor(40,0);
    IndPar();
	R0=400;
    while(R0--)         _WDR();	
    SPDR=0x20;
	R2=900;
    while(R2--)         _WDR();
    DecSegm(IMax);
    SetCursor(80,0);
    IndPar();
	R0=400;
    while(R0--)         _WDR();	
    SPDR=0x20;
	R2=900;
    while(R2--)         _WDR();
     DecSegm(RegSPCH2);
    SetCursor(0,1);
    IndPar();
	R0=400;
    while(R0--)         _WDR();	
    SPDR=0x20;
	R2=900;
    while(R2--)         _WDR();
     DecSegm(RegStop);
    SetCursor(40,1);
    IndPar();
	R0=400;
    while(R0--)         _WDR();	
    SPDR=0x20;
	R2=900;
    while(R2--)         _WDR();
    DecSegm(Avaria);
    SetCursor(80,1);
    IndPar();
	R0=400;
    while(R0--)         _WDR();	
    SPDR=0x20;
	R2=900;
    while(R2--)         _WDR();
    Reg0=600;
    while(Reg0)
    --Reg0;

    }
  
}
Example #4
0
    int main(void)
    {
	DDRA=0;
	PORTA=0;
    DDRB=0xb2;
	PORTB |= 0xf3;// Control UAB

    DDRC=0x2a;
    PORTC |=0x2a;
    DDRD=0xc7;
    PORTD=0xff;/*Reset=on*/

//  INIT SPI
    SPSR=0;//f/64
	SPCR=0x72;
	SPCR |=0x80;//enable Int SPI

    InitAd();

    TCCR1A=0;//0x82;
    TCCR1B=0x2;//0.5mks


 //   TIMSK=TIMSK | 0x20;//enable Int capture1 

   TIMSK=TIMSK | 0x4;//enable Int overlowT1 

		
    /*Interrupt1*/
//    MCUCR=0x8;// Log1>0 Int1

 
//    GICR |=(1<<INT1);/*Enable INT1*/

 
   	/*Timer0*/
 	TCCR0=0x61;//0x61;//1;//1;
	OCR0=0xe0;
//    TIMSK |=1;/*Enable Int Overlow Timer0*/

   	/*Timer2*/
 	TCCR2=0x4;
    TIMSK |=(1<<TOIE2);/*Enable Int Overlow Timer2*/

	CtSetka=0;

    _SEI();

 	RegimWork=0;

	ResetError();
	CtStart=50;
	RevunOff=0;
//	ClearRomReceive();

  /*Work program*/     	 
    while(1)
    {
    _WDR();
	if(!CtIndAd)
		{
//	IndicatorAd(2);
	CtIndAd=30;
		}
	ReadKn();
	if(RegS & 0x10)
	ResetError();

	ChangeRegim();
 	ControlRevun();
	ControlMPP();
	ControlPogar();
 	ControlNorma();
	Indicator();
	IndicatorAll();

	SetRegimError();
	SetError();
//	DecSegm(RegS);
//	IndicatorSegment();	
	if(Error)
	PORTD |=0x40;//Error
	else
	PORTD &=0xbf;//Norma


	}

}