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)); }
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 (); }
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 }