Example #1
0
void menuCases(int *input){
  
  switch(currentMenu){
    
  case 0:
    
    switch(*input){
    
    case 1:
      currentMenu = 1;
      PrintTempTable();
      while(readKeypad()!=11){};
      PrintMenu();
      break;
      
    case 2:
      temporary = findLight();
      sprintf(buffer,"%d \0",temporary);
      Print("Sun at",33,6);
      Print(buffer,33,7);
      break;
      
    case 3:
      Clear_Display();
      Print("Set high value:", 1, 2);
      Print("Press # to confirm", 1, 14);
      maxLimit = maxMinLimit(2);
      Print("Set low value: ", 1, 4);
      lowLimit = maxMinLimit(4);
      PrintMenu();
      break;
    case 6:
      if(fastMode == 1){
        fastMode = 60;
        while(readKeypad() != 0) {}
        Print("FM (off)", 32, 13);
        break;
      }
      else{
        fastMode = 1;
        while(readKeypad() != 0) {}
        Print("FM (on) ", 32, 13);
        break;
      }
    }
    
  case 1:
    
    switch(*input){
    case 11:
      currentMenu = 0;
      PrintMenu();
    }
  }
}
Example #2
0
bool KEYS::getKey(uint8_t *key) {
  uint8_t tmpkey;
  
  tmpkey = readKeypad();
  *key = *key & 0x7F;
  
  return(isKeyDown(tmpkey));
}
Example #3
0
 int main(){
  SystemInit();
  setup();
  adcSetup();
  Init_Display();
  timerSetup();
  tempMeasure();    
  updateDegrees();
  setupInterupts(5);
  lightMeasure();
  pwmSetup();
  setupInterupts(1000);
  PrintMenu();
  *PWM_CDTYUPD = 1800;
  int input;
  while(nInterupts < 500){}
  while(1){
    if(nInterupts >= 500){
      tempMeasure();
      nInterupts = 0;
    }
    updateDegrees();
    Print(floatToChar, 33,1); //Skriv ut temperatur
    
    if(value > maxLimit){
      Print("ALARM", 32, 3);
      Print("TOO HOT ", 32,4);
    }
    else if(value < lowLimit){
      Print("  ALARM", 32, 3);
      Print("TOO COLD", 32,4);
    }
    else if(value >lowLimit || value<maxLimit){
      Print("        ", 32, 3);
      Print("        ", 32, 4);
    }
    if(tempCount >= fastMode){
      updateDegrees();
      delay(60);
      if(tempFlag == 1){
        tempCalc();
        tempCount = 0;
        tempFlag = 0;
      }
    }
    
    input = readKeypad();
    if(buttonPressed == 1){
      buttonPressed = 0;
      menuCases(&input);
    }
  }
}
Example #4
0
void writeKeypad(mode)
{
	unsigned char olduc = 0;
	unsigned char uc = 0;
	char rwKeypad[] = {'w'};
	
	uc = readKeypad();
	
	olduc = uc & 0x0F;

	switch(mode) {
		case 0: 
			uc = olduc | 0x00;
			break;
		case 1:
			uc = olduc | 0x10;
			break;
		case 2:
			uc = olduc | 0x30;
			break;
		default: ;
	}
	
	if (ioperm(0x60, 6, 1)) {
		perror("ioperm");
		exit(1);
	}

	checkInBufferFull();
	outb(0xB8, 0x64);

	checkInBufferFull();
	outb(0xEC, 0x60);

	checkInBufferFull();
	outb(0xAC, 0x60);

	checkInBufferFull();
	outb(uc, 0x60);
	
	if (ioperm(0x60, 6, 0)) {
		perror("ioperm");
		exit(1);
	}
   	RWconfig(200, mode, rwKeypad);
}
Example #5
0
int iFindKeyLEDMode()
{
	unsigned char uc = 0;

	uc = readKeypad();

	switch(uc & 0xF0) {
		case 0x00:
			return 0;
		case 0x10:
			return 1;
		case 0x30:
			return 2;
		default: ;
	}
	return -1;
}
Example #6
0
uint8_t KEYS::getKey(void) {
  return(readKeypad() & 0x7F);
}