Example #1
0
int main(void)
{
  wh1602b_init(); // инициализировать модуль, порты
  // настроить параметры управления дисплеем
  wh1602b_displayctl(DC_DISPLAY_ON); // дисплей включён
  // задать число строк
  wh1602b_funcset(FS_LINES_2); // 2 строки
  // очистить область
  wh1602b_clear();
  // записать символ градуса ассоциировав его с кодом 1
  wh1602b_genc(1, degree_char);
  wh1602b_home();
  // выбрать текущий датчик
  if (!ds18b20_selectSensor(devid)) {
    wh1602b_putsP(PSTR("Ошибка на линии!"));
    for (;;)
      ;
  }
  sspad d;
  if (!ds18b20_readScratchpad(&d)) {
    wh1602b_putsP(PSTR("Ошибка CRC!"));
    for (;;)
      ;
  }
  if (d.config != RES_11BIT) {
    d.config = RES_11BIT;
    ds18b20_writeScratchpad(&d);
    ds18b20_copyScratchpad();
    wh1602b_move(1,0);
    wh1602b_putsP(PSTR("Уст:11б. "));
  }
  else {
    wh1602b_move(1,0);
    wh1602b_putsP(PSTR("Исп:11б. "));
  }
  if (ds18b20_readPowerSupply())
    wh1602b_putsP(PSTR("Внешнее"));
  else
    wh1602b_putsP(PSTR("Паразит"));

  // войти в бесконечный цикл
  for (;;)
    loop();
}
Example #2
0
void conf_my_lcd()
{
	const uint8_t degree_char[8] = {
		0x0e, // 0 1 1 1 0
		0x0a, // 0 1 0 1 0
		0x0e, // 0 1 1 1 0
		0x00, // 0 0 0 0 0
		0x00, // 0 0 0 0 0
		0x00, // 0 0 0 0 0
		0x00, // 0 0 0 0 0
		0x00  // 0 0 0 0 0
	};
	wh1602b_init();
	wh1602b_displayctl(DC_DISPLAY_ON);
	wh1602b_funcset(FS_LINES_2);
	wh1602b_clear();
	wh1602b_genc(1, degree_char);
	wh1602b_home();
}