示例#1
0
文件: main.c 项目: E314c/DesExProject
char code_check(char *code_in)
//input: arrays containing code entered;
//output: outputs 1 if code correct, else 0
//sys reqs: define PASS_LENGTH (should be in definitions.h), define pass_read();

//This is written as a separate function so main doesn't see the stored pass code
{
	char pass[PASS_LENGTH];
 
	pass_read(pass); //read the passcode from EEPROM memory
 
	return(check_arrays(pass,code_in));
}
示例#2
0
static void test ()
{
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
  vector unsigned long vul = {1,0};
  vector double vd = {1.0,0.0};
#else
  vector unsigned long vul = {0,1};
  vector double vd = {0.0,1.0};
#endif

  vec_stl (vul, 0, (vector unsigned long *)svul);
  vec_stl (vd,  0, (vector double *)svd);

  check_arrays ();
}
示例#3
0
void door_routine(void)
//This function opens the door and exits when the door is locked
{
	//variables for this function
	char pass[PASS_LENGTH],pass_2[PASS_LENGTH];
	int x,y,exit=0,loop; //x,y,temp are used to check return values from passcode_func. exit is used to hold infinite loop till door closed
	
	//initialisation
	for(loop=0;loop<PASS_LENGTH;++loop)
	{
		pass[loop]=PASS_NULL;
		pass_2[loop]=PASS_NULL; 
	}
	
	//first, open the door
	open_door();
	Write("OPEN");

	while(exit!=1) //function will only exit when door closed
	{
		if(key_flag==1)
		{
			if(key_pressed==KEY_CHANGE)
			{
				while(scan()==1); //debounce
				key_flag=0;
				Write("Chan"); 		//indicate that they've entered pass change mode
				delay_10ms(150); 	//delay before blanking screen
				Write("    ");
				
				//passcode change mode
				x=passcode_entering(pass,30);
				if(x==KEY_ENTER) //only continue if passcode_func exited due to enter being pressed
				{
					Write("    ");
					y=passcode_entering(pass_2,30);
					if(y==KEY_ENTER)
					{
						if(check_arrays(pass,pass_2))
						{
							pass_write(pass);
							Write("done"); 		//say 'done to indicate password changed.
						}
						else
						{
							Write("Err ");
						}
						delay_10ms(150); //1.5 second delay   >>Could change this to "wait for enter pressed."
					}
				}
				
				//clear values stored
				for(loop=0;loop<PASS_LENGTH;++loop)
				{
					pass[loop]=PASS_NULL;
					pass_2[loop]=PASS_NULL;
				}
				Write("OPEN");
			
			}
			
			if(key_pressed==KEY_ENTER)
			{
				while(scan()==1); //debounce
				key_flag=0;
				
				//now close the door
				close_door();
				Write("Shut");
				exit=1; //door has been closed, function can now exit.
			}
			
			if(key_pressed!=KEY_ENTER&&key_pressed!=KEY_CHANGE) //just to handle/clear random numeric key presses whilst door is open
			{
				while(scan()==1); //debounce
				key_flag=0;
			}
		}
	}//end of while loop
}