Example #1
0
void  vTaskDS1820DisplayTemps( void *pvParameters){

  //char lcd_string[20];
  static int count = 0;
  float fTempHLT = 0, fTempMash = 0;
  lcd_printf(1,1, 12, "TEMPERATURES");
  for (;;)
    {
      xSemaphoreTake(xAppletRunningSemaphore, portMAX_DELAY); //take the semaphore so that the key handler wont
      //return to the menu system until its returned
      fTempHLT = ds1820_get_temp(HLT);
      fTempMash = ds1820_get_temp(MASH);
      //fTempCabinet = ds1820_get_temp(CABINET);

      count++;

      lcd_fill(1,50, 200, 190, Dark_Green);

      lcd_printf(1, 5, 10, "HLT = %u.%u", (unsigned int)floor(fTempHLT), (unsigned int)((fTempHLT-floor(fTempHLT))*pow(10, 3)));
      lcd_printf(1, 6, 10, "MASH = %u.%u", (unsigned int)floor(fTempMash), (unsigned int)((fTempMash-floor(fTempMash))*pow(10, 3)));
      lcd_printf(1, 7, 10, "LitresinBoiler = %u.%u", (unsigned int)floor(fGetLitresCurrentlyInBoiler()), (unsigned int)((fGetLitresCurrentlyInBoiler()-floor(fGetLitresCurrentlyInBoiler()))*pow(10, 3)));
      lcd_printf(1, 8, 10, "IsEnoughWater = %s", (GetBoilerState().level == HIGH) ? "True" : "False");
      // lcd_printf(1, 7, 10, "Cabinet = %u.%u", (unsigned int)floor(fTempCabinet), (unsigned int)((fTempCabinet-floor(fTempCabinet))*pow(10, 3)));

      xSemaphoreGive(xAppletRunningSemaphore); //give back the semaphore as its safe to return now.
      vTaskDelay(500);

    }
}
Example #2
0
void  vTaskDS1820DisplayTemps( void *pvParameters) {

    //char lcd_string[20];
    static int count = 0;
    lcd_printf(1,1, 12, "TEMPERATURES");
    for (;;)
    {
        xSemaphoreTake(xAppletRunningSemaphore, portMAX_DELAY); //take the semaphore so that the key handler wont
        //return to the menu system until its returned
        count++;
        //portENTER_CRITICAL();
        lcd_fill(1,50, 200, 190, Black);


        lcd_printf(1, 5, 10, "HLT = %.2f", ds1820_get_temp(HLT));
        lcd_printf(1, 6, 10, "Mash = %.2f", ds1820_get_temp(MASH));
        lcd_printf(1, 7, 10, "Cabinet = %.2f", ds1820_get_temp(CABINET));
        lcd_printf(1, 8, 10, "Ambient = %.2f", ds1820_get_temp(AMBIENT));
        lcd_printf(1, 9, 10, "HLT_SSR = %.2f", ds1820_get_temp(HLT_SSR));
        lcd_printf(1, 10, 10, "BOIL_SSR = %.2f", ds1820_get_temp(BOIL_SSR));

        //printf("Display High water = %u\r\n",uxTaskGetStackHighWaterMark(NULL));
        //portEXIT_CRITICAL();

        xSemaphoreGive(xAppletRunningSemaphore); //give back the semaphore as its safe to return now.
        vTaskDelay(500);

    }
}
Example #3
0
void main (void)     // Start des Hauptprogramms
{
    unsigned char c1;

    // Initialisierung der ser. Schnittstelle des CC03ers
    seri_init();

    // Endlosschleife
    while(1)
    {

        // Hauptmenü aufrufen
        haupt_menue();

        // Eingabe und Auswertung
        c1 = getchar();

        switch (c1)
        {
            case '1':   ow_reset_demo();
                        break;

            case '2':   ow_rd_rom_id();
                        break;

            case '3':   ds1820_get_temp();
                        break;

            case '4':   ds1820_scr_pa_wr_demo();
                        break;

            case '5':   bus_demo();
                        break;

            case '9':   delay_test();
                        break;

        }

    }

}
Example #4
0
void ds1820_refresh_all(){
	
	for(int i = 0; i < 3; i++){
		
		//Read temperatures from sensors whose conversion is ready
		if((temp[i] != DS1820_TEMP_NONE) && (ds1820_convert_ready(DS1820_PIN1 + i))){
			temp[i] = ds1820_get_temp(DS1820_PIN1 + i);
			
			//Check for first values
			if(temp_min[i] == DS1820_TEMP_NONE){
				temp_min[i] = temp[i];
			}
			if(temp_max[i] == DS1820_TEMP_NONE){
				temp_max[i] = temp[i];
			}
			
			//Update min/max values
			if(temp[i] < temp_min[i]){
				temp_min[i] = temp[i];
			}else
			if(temp[i] > temp_max[i]){
				temp_max[i] = temp[i];
			}
		}
		
		//Start conversion for the next call
		if(ds1820_convert(DS1820_PIN1 + i)){
			temp[i] = DS1820_TEMP_NONE; //Indication for ready check that there is no sensor
			//temp_min[DS1820_PIN1 + i] = DS1820_TEMP_NONE;	//Reset min/max values
			//temp_max[DS1820_PIN1 + i] = DS1820_TEMP_NONE;
		}else
		if(temp[i] == DS1820_TEMP_NONE){
			temp[i] = DS1820_TEMP_INIT;	//Indication for ready check that there is a sensor
		}
		
	}

}
Example #5
0
void vCheckTask(void *pvParameters)
{
  char buf[50];
  char pcBrewElapsedTime[50], pcStepElapsedTime[50];
  char pcBrewElapsedHours[50], pcBrewElapsedMinutes[50], pcBrewElapsedSeconds[50], pcBrewStep[50];
  char pcBrewStepElapsedHours[50], pcBrewStepElapsedMinutes[50], pcBrewStepElapsedSeconds[50], pcMashTemp[50], pcHLTTemp[50];
  char pcChillerPumpState[50], pcBoilState[50], pcHeapRemaining[50], pcBrewState[50], pcBoilDuty[50], pcLitresDelivered[50];
  int ii = 0;
  char upper_limit = 255, lower_limit = 255;
  unsigned int touch, hops, ds1820, timer, litres, check, low_level = 90, heap, print, serial, serialcontrol;
  unsigned int display_applet, stats_applet, res_applet, graph_applet, brew_task;
  static char cBuf[80];
  for (;;){

      touch = uxTaskGetStackHighWaterMark(xTouchTaskHandle);

      ds1820 =  uxTaskGetStackHighWaterMark(xDS1820TaskHandle);
      timer = uxTaskGetStackHighWaterMark(xTimerSetupHandle);
      litres = uxTaskGetStackHighWaterMark(xLitresToBoilHandle);
      print = uxTaskGetStackHighWaterMark(xPrintTaskHandle);
      hops = uxTaskGetStackHighWaterMark(xHopsTaskHandle);
      check = uxTaskGetStackHighWaterMark(NULL);
      serial = uxTaskGetStackHighWaterMark(xSerialHandlerTaskHandle);
      serialcontrol = uxTaskGetStackHighWaterMark(xSerialControlTaskHandle);
      heap = xPortGetFreeHeapSize();
      display_applet =  uiGetBrewAppletDisplayHWM();
      res_applet =  uiGetBrewResAppletHWM();
      stats_applet =  uiGetBrewStatsAppletHWM();
      graph_applet =  uiGetBrewGraphAppletHWM();
      brew_task =  uiGetBrewTaskHWM();



      sprintf(pcBrewElapsedHours, "4D51E338F02649DFA173631622024A90:%02u\r\n\0", ucGetBrewHoursElapsed());
      vConsolePrint(pcBrewElapsedHours);
      vTaskDelay(80);
      sprintf(pcBrewElapsedMinutes, "99A2038A62BF47E7BFB1922A43C0825C:%02u\r\n\0", ucGetBrewMinutesElapsed());
      vConsolePrint(pcBrewElapsedMinutes);
      vTaskDelay(80);
      sprintf(pcBrewElapsedSeconds, "E9C4FDDEDEBC41D7AC3A3F4C636759A2:%02u\r\n\0", ucGetBrewSecondsElapsed());
      vConsolePrint(pcBrewElapsedSeconds);
      vTaskDelay(80);
      sprintf(pcBrewStep, "1308CA31CAEE4A9A8AC5B353F5ACB594:%02u\r\n\0", ucGetBrewStep());
      vConsolePrint(pcBrewStep);
      vTaskDelay(80);
      sprintf(pcBrewStepElapsedSeconds, "02BA9C74C1384C069ECB648C3CEFFCBA:%02u\r\n\0", ucGetBrewStepSecondsElapsed());
      vConsolePrint(pcBrewStepElapsedSeconds);
      vTaskDelay(80);
      sprintf(pcBrewStepElapsedMinutes, "35C22A915227449C8F2A740F2C26B344:%02u\r\n\0", ucGetBrewStepMinutesElapsed());
      vConsolePrint(pcBrewStepElapsedMinutes);
      vTaskDelay(80);
      sprintf(pcMashTemp, "E21DFC36AFB24226A323D7931B6A1F30:%02u\r\n\0", (unsigned int)floor(ds1820_get_temp(MASH)));
      vConsolePrint(pcMashTemp);
      vTaskDelay(50);
      sprintf(pcHLTTemp, "81A73894E64546868F39EE1758D459AD:%02u\r\n\0", (unsigned int)floor(ds1820_get_temp(HLT)));
      vConsolePrint(pcHLTTemp);
      vTaskDelay(50);
      sprintf(pcChillerPumpState, "461F715060F5468883F6F8500CEAA4BC:%02u\r\n\0", ucGetChillerPumpState());
      vConsolePrint(pcChillerPumpState);
      vTaskDelay(80);
      sprintf(pcBoilState, "60140A1EB194439B8C9A198355FD93AA:%02u\r\n\0", ucGetBoilState());
      vConsolePrint(pcBoilState);
      vTaskDelay(80);
      sprintf(pcBrewState, "FB46F7E5DF914AF1816035EC02DEE0DC:%02u\r\n\0", ucGetBrewState());
      vConsolePrint(pcBrewState);
      vTaskDelay(80);
      sprintf(pcBoilDuty, "F066509116CA43F7B6845C8E2EBA69FA:%02u\r\n\0", uiGetBoilDuty());
      vConsolePrint(pcBoilDuty);
      vTaskDelay(80);
      sprintf(pcLitresDelivered, "3AEE6966D7664AA4BE05BBBBF48E2836:%02u\r\n\0", uiGetActualLitresDelivered());
            vConsolePrint(pcLitresDelivered);
            vTaskDelay(80);




      lower_limit = cI2cGetInput(CRANE_LOWER_LIMIT_PORT, CRANE_LOWER_LIMIT_PIN);
      upper_limit = cI2cGetInput(CRANE_UPPER_LIMIT_PORT, CRANE_UPPER_LIMIT_PIN);

      sprintf(buf, "BD52AA172CAE4F58A11EC35872EFEB99:%d \r \n", ii++%1024);
      sprintf(pcHeapRemaining, "*Heap:%u*low=%d,up=%d\r\n\0", heap, lower_limit, upper_limit);
      vConsolePrint(pcHeapRemaining);
      vTaskDelay(80);
      vConsolePrint(buf);

       if (touch < low_level ||
           timer < low_level ||
           litres < low_level||
           print < low_level ||
           hops < low_level ||
           check < low_level||
           display_applet < low_level ||
           res_applet < low_level ||
           stats_applet < low_level ||
           graph_applet < low_level ||
           brew_task < low_level)


        {
          //vTaskSuspendAll();
          vConsolePrint("=============================\r\n");
          sprintf(cBuf,"check task: idle ticks = %d\r\n", ulIdleCycleCount);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "touchwm = %d\r\n", touch);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "DS1820wm = %d\r\n", ds1820);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "TimerSetupwm = %d\r\n", timer);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "litreswm = %d\r\n", litres);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "hopswm = %d\r\n", hops);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "check = %d\r\n", check);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "serial = %d\r\n", serial);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "serialcontrol = %d\r\n", serialcontrol);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "brewtask = %d\r\n", brew_task);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "stats = %d\r\n", stats_applet);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "res = %d\r\n", res_applet);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "graph = %d\r\n", graph_applet);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "brew_display = %d\r\n", display_applet);
          vConsolePrint(cBuf);
          vTaskDelay(80);
          sprintf(cBuf, "print = %d\r\n", print);
          vConsolePrint(cBuf);
          vConsolePrint("=============================\r\n");
          //xTaskResumeAll();
          vTaskDelay(800);

        }
      vTaskDelay(800);
      taskYIELD();
  }
}