Работа с переменными

foxman322
Offline
Зарегистрирован: 06.06.2018

есть переменная state

Когда значение переменной = task1, то на экран выводится текст "что-то",когда значение переменной = task2, то на экран выводится другой текст" кто-то".

kasper007
Offline
Зарегистрирован: 23.05.2016

фантастика!!!

ToRcH2565
Offline
Зарегистрирован: 16.05.2015

Мы за вас рады. Но хвастаются своими проектами в другом разделе, тут задают вопросы =)

foxman322
Offline
Зарегистрирован: 06.06.2018

foxman322 пишет:

есть переменная state

Когда значение переменной = task1, то на экран выводится текст "что-то",когда значение переменной = task2, то на экран выводится другой текст" кто-то".

ПОМОГИТЕ!

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

foxman322 пишет:

foxman322 пишет:

есть переменная state

Когда значение переменной = task1, то на экран выводится текст "что-то",когда значение переменной = task2, то на экран выводится другой текст" кто-то".

ПОМОГИТЕ!

Поробуйте в цикле назначить от task0 до task255

Очень интересно что выведет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

foxman322 пишет:

foxman322 пишет:

есть переменная state

Когда значение переменной = task1, то на экран выводится текст "что-то",когда значение переменной = task2, то на экран выводится другой текст" кто-то".

ПОМОГИТЕ!

В чём помочь-то? Ну, еслит переменная, н, выдаёт там что-то. А помочь-то чем?

5N62V
Offline
Зарегистрирован: 25.02.2016

Нет у вас ни стыда , ни совести!  Человек помощи просит, а вы ёрничаете! 

ven-til
Offline
Зарегистрирован: 13.02.2018

Расшифровка силами ХШ:

ДАНО:

foxman322 пишет:

есть переменная state

НУЖНО СДЕЛАТЬ:

foxman322 пишет:

Когда значение переменной = task1, то на экран выводится текст "что-то",когда значение переменной = task2, то на экран выводится другой текст" кто-то".

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015
if(state == task1)
{
   printOnDisplay("что-то");
}
else
if(state == task2)
{
  printOnDisplay("кто-то");
}

Па-да-ба-да-пам! (журнал "Ералаш").

b707
Онлайн
Зарегистрирован: 26.05.2017

ven-til пишет:

Расшифровка силами ХШ:

НУЖНО СДЕЛАТЬ:

Когда значение переменной = task1, то на экран выводится текст "что-то",когда значение переменной = task2, то на экран выводится другой текст" кто-то".

Нужен искусственный интеллект, не иначе, тупая железяка не в жисть "кто-то" от "что-то" не отличит :)

b707
Онлайн
Зарегистрирован: 26.05.2017

DIYMan пишет:

if(state == task1)
{
   printOnDisplay("что-то");
}
else
if(state == task2)
{
  printOnDisplay("кто-то");
}

Па-да-ба-да-пам! (журнал "Ералаш").

демпингуем? :)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

b707 пишет:

DIYMan пишет:

if(state == task1)
{
   printOnDisplay("что-то");
}
else
if(state == task2)
{
  printOnDisplay("кто-то");
}

Па-да-ба-да-пам! (журнал "Ералаш").

демпингуем? :)

А то :) Могу и покороче, если брать оплату за строчку кода, то вообще на шару, считаю, будет:

printOnDisplay(state == task1 ? "что-то" : state == task2 ? "кто-то" : "хз, что тут происходит");

:))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Предлагаю, на время сессии новорегов игнорировать напрачь.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DIYMan пишет:
Могу и покороче, если брать оплату за строчку кода....

Если брать за строчку кода, то как раз подлинее надо бы!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

DetSimen пишет:

Предлагаю, на время сессии новорегов игнорировать напрачь.

Дед, я ж не деревянный, псевдокодом пишу ;) Для того, шоб скомпилировалось - там надо тело функции написать, объявить переменные и т.д. и т.п. Псевдокод - он такой, сцука: алгоритмику - демонстрирует наглядно, а работать, падла - не хочет :)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

DIYMan пишет:
Могу и покороче, если брать оплату за строчку кода....

Если брать за строчку кода, то как раз подлинее надо бы!

Щас нарисуем, не вопрос:

#define _DEBUG
#define SERIAL_SPEED 9600

var task1;
var task2;
var state;

void initTask1()
{
	#ifdef _DEBUG
		Serial.println("Init task1...");
	#endif		
	strcat(task1, "t");
	strcat(task1, "a");
	strcat(task1, "s");
	strcat(task1, "k");
	strcat(task1, "1");
	
	#ifdef _DEBUG
		Serial.println("task1 inited.");
	#endif		
}

void initTask2()
{
	#ifdef _DEBUG
		Serial.println("Init task2...");
	#endif	
	
	strcat(task1, "t");
	strcat(task1, "a");
	strcat(task1, "s");
	strcat(task1, "k");
	strcat(task1, "2");
	
	#ifdef _DEBUG
		Serial.println("task2 inited.");
	#endif		
}

void printChar(var char)
{
	#ifdef _DEBUG
		Serial.print("Print char on display: ");
		Serial.println(char);
	#endif		
	
	display.print(char);
}

void printOnDisplay(var charString)
{
	#ifdef _DEBUG
		Serial.print("Print on display: ");
		Serial.println(charString);
	#endif		
	
	for(var i=0;i<charString.length;i++)
	{
		printChar(charString.charAt(i));
		display.advanceCursorPosX();
		
		if(display.getCursorXPos() == OFFSCREEN)
		{
			display.advanceCursorPosY();
			display.setCursorXPos(0);
		}
	}
}

void setup()
{
	#ifdef _DEBUG
		Serial.begin(SERIAL_SPEED);
	#endif
	
	initTask1();
	initTask2();
	
	#ifdef _DEBUG
		Serial.println("Ready.");
	#endif	
}

void loop()
{
	#ifdef _DEBUG
		Serial.println("loop() iteration begin...");
	#endif		
	
	if(state == task1)
	{
		printOnDisplay("что-то");
	}
	else
	if(state == task2)
	{
		printOnDisplay("кто-то");
	}
	
	#ifdef _DEBUG
		Serial.println("loop() iteration end.");
	#endif			
}

Ну вот - на сто строк кода наработал :) :) :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Уже лучше! :)

foxman322
Offline
Зарегистрирован: 06.06.2018

Спасибо большое))

foxman322
Offline
Зарегистрирован: 06.06.2018

Спасибо большое)

vvadim
Offline
Зарегистрирован: 23.05.2012

два ответа  - значит благодарности в два раза больше))))

foxman322
Offline
Зарегистрирован: 06.06.2018

А как записать значение переменной state?

 

 

 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Записать куда?

Если на листок бумаги, то существует, минимум, несколько вариантов:

1. Карандашом.

2. Ручкой.

3. Лазерным принтером.

...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

1. Карандашом.

2. Ручкой.

3. Лазерным принтером.

...

Не наши методы! Во как надо!

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ЕвгенийП пишет:

andriano пишет:

1. Карандашом.

2. Ручкой.

3. Лазерным принтером.

...

Не наши методы! Во как надо!

Приношу искренние извинения. Забыл добавить:

4. Фломастером.

foxman322
Offline
Зарегистрирован: 06.06.2018
По идеи если я буду менять в 3 строчки , на name1 или name2, то на экране будет выводится соответсвующий name'у текст. Но что то не работает.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const char state = 'name3';
int name1;
int name2;
int name3;


void setup()
{
lcd.begin(16, 2);
lcd.print("R=");
}

void loop()
{
lcd.setCursor(4,0);
if (state == name1)
{
lcd.print("tratata");	
}
else
if(state == name2)
{
lcd.print("trututu");
}
else
if (state == name3)
{
lcd.print("tataratarta");
}
}

 

foxman322
Offline
Зарегистрирован: 06.06.2018

хм

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

4. Фломастером.

А, так то, что это должен быть управляемый ардуино плоттер, предполагалось по умолчанию, изначально?

Виноват, не допёр :)))

foxman322
Offline
Зарегистрирован: 06.06.2018

да, сам виноват, что не сказал:)