Вот Ваши кнопки, проверил в Протеусе додает и отнимает.
Аналогично сделаете с таймером.
#include <Bounce.h>;
#define BUTTON_TEMP 7 //кнопка установки температуры
#define BUTTON_TIME 6 //кнопка установки ВРЕМЕНИ
#define UP 5 //кнопка увеличения значения
#define DOWN 4 //кнопка уменьшения значения
bool kn_c=0;
bool flag_kn_c =0;
bool kn_tim = 0;
int led = 13;
int temperatura = 50;
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2);
Bounce kn_timer = Bounce(BUTTON_TIME,5);
Bounce kn_UP = Bounce(UP,5);
Bounce kn_DOWN = Bounce(DOWN,5);
void setup() {
// put your setup code here, to run once:
pinMode(led, OUTPUT);
pinMode(BUTTON_TEMP, INPUT_PULLUP);
pinMode(BUTTON_TIME, INPUT_PULLUP);
pinMode(UP, INPUT_PULLUP);
pinMode(DOWN, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
kn_tempert.update();
kn_timer.update();
kn_UP.update();
kn_DOWN.update();
if(!kn_tempert.read() && flag_kn_c==0){
flag_kn_c=1;
}
if(kn_tempert.read() && flag_kn_c==1){
if (kn_c==0) kn_c=1;
else kn_c = 0;
flag_kn_c=0;
}
Serial.println(temperatura);
if (kn_c)
{
if ( !kn_UP.read() )
{
temperatura++;
delay(300);
}
if (!kn_DOWN.read() )
{
temperatura--;
delay(300);
}
}
}
Не могли бы вы скинуть на мою почту bobrov.anatoliy@gmail.com свой номер телефона и сотового оператора, я хотел бы Вас отблагодарить, а то неудобно вновь к Вам обращаться будет.
А вот алгоритм который предлагает Puhlyaviy, Если я его првильно понял.
Он также как и мой имеет право на существование. Так что выбирайте
//Temp777.ino
#include <Bounce.h>;
#define BUTTON_TEMP 7 //кнопка установки температуры
//#define BUTTON_TIME 6 //кнопка установки ВРЕМЕНИ
#define UP 5 //кнопка увеличения значения
#define DOWN 4 //кнопка уменьшения значения
int kn_c=0;
bool flag_kn_c =0;
bool kn_tim = 0;
int led_C = 13; //светодиод температуры
int led_T = 8; //Светодиод таймера
int temperatura = 50;
int timer = 80;
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2);
//Bounce kn_timer = Bounce(BUTTON_TIME,5);
Bounce kn_UP = Bounce(UP,5);
Bounce kn_DOWN = Bounce(DOWN,5);
void setup() {
// put your setup code here, to run once:
pinMode(led_C, OUTPUT);
pinMode(led_T, OUTPUT);
pinMode(BUTTON_TEMP, INPUT_PULLUP);
// pinMode(BUTTON_TIME, INPUT_PULLUP);
pinMode(UP, INPUT_PULLUP);
pinMode(DOWN, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
kn_tempert.update();
//kn_timer.update();
kn_UP.update();
kn_DOWN.update();
if(!kn_tempert.read() && flag_kn_c==0){
flag_kn_c=1;
}
if(kn_tempert.read() && flag_kn_c==1){
if (kn_c >= 5) kn_c = 0;
kn_c++;
flag_kn_c = 0;
}
Serial.println(temperatura);
switch (kn_c) {
case 1:
digitalWrite(led_C, HIGH);//Обозначаем что вошли в регулировку температуры
if ( !kn_UP.read() )
{
temperatura++;
delay(300);
}
if (!kn_DOWN.read() )
{
temperatura--;
delay(300);
}
break;
case 2:
digitalWrite(led_C, LOW);
digitalWrite(led_T, HIGH); //Обозначаем что вошли в регулировку таймера
if ( !kn_UP.read() )
{
timer++;
delay(300);
}
if (!kn_DOWN.read() )
{
timer--;
delay(300);
}
break;
case 3:
digitalWrite(led_C, HIGH); //оба горят Обозначаем что вошли в режим записи
digitalWrite(led_T, HIGH);
// Здесь проверяем изменили температуру и таймер если да пишем в память
kn_c = 4;
break;
case 4:
digitalWrite(led_C, LOW); //оба не горят Обозначаем что вышли из режима настройки
digitalWrite(led_T, LOW);
break;
}
}
Если вы ко мне то это лишнее, форум для того и существует чтобы обмениваться знаниями.
По поводу Вашего проэкта на мой взгляд алгоритм следующий:
1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности, )
2-редактируем UP-DOWN
3-делаем клик по кнопке 2й раз, проверяем были ли изменения если да то пишем в память, выключаем светодиод.
Еще раз спасибо! работает как часы, по Вами предложенному алгоритму, спасибо еще раз, сейчас дописываю по времени и надеюсь, к вечеру установлю в сауну, естественно приглашу париться!!
вот код:
// Версия 1.6 02.08.15 работает термометр и две кнопки - включения и подсветки
// настраиваем кнопки установки температуры, вводим утановленную температуру
// проверяем условие включения нагревателей работает!!!
// проект управления печкой сауны, Arduino Nano, 7сегментный трехразрядный дисплей,
// драйвер дисплея MAX7219, шесть кнопок управления, датчик температуры Dallas
#include <LedControl.h>//Подключаем библиотеку для работы с дисплеем
#include <OneWire.h>// Подключаем библиотеку для работы с шиной OneWire
#include <Bounce.h>;//подключаем библиотеку Bounce
#include <EEPROM2.h>// Подключаем библиотеку для работы с ARDUINO EEPROM
#include <DallasTemperature.h>//Подключаем библиотеку для работы с термометром
OneWire oneWire(3);// Термометр будет подключен на Pin3
LedControl lc=LedControl(12,11,10,1);// присваиваем адрес дисплею
#define ONE_WIRE_BUS 3
// разбираемся с кнопками:
//дефайним значения пинов с кнопкой и со светодиодом
#define BUTTON1 9 // кнопка выключения
#define OFF 18 //выход выключателя
#define BUTTON 8 //кнопка подсветки
#define LED 19 //выход подсветки
#define BUTTON_TEMP 7 //кнопка установки температуры
#define BUTTON_TIME 6 //кнопка установки ВРЕМЕНИ
#define UP 5 //кнопка увеличения значения
#define DOWN 4 //кнопка уменьшения значения
#define OUTHET1 16 //выход нагревателя 1
#define OUTHET2 17 //выход нагревателя 2
//==================================================================================================
//обозначаем кнопки меню
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce bouncer = Bounce(BUTTON,2);
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce bouncor = Bounce(BUTTON1,2);
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2);
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_timer = Bounce(BUTTON_TIME,5);
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_UP = Bounce(UP,5);
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_DOWN = Bounce(DOWN,5);
//===================================================================================================
//задаем начальное состояние светодиода "выключен"
int ledValue = LOW;
//задаем начальное состояние прибора
int OFFValue = LOW;
//Обьявляем состояние выходов нагревателей
boolean outhet1Status=LOW;
boolean outhet2Status=LOW;
//Объявим переменные для задания задержки
long previousMillis1 = 0;
long interval1 = 1000; // интервал опроса датчиков температуры
bool flag_kn_c=0;// создаем булевую переменную состояния кнопки
bool kn_tim = 0;// переменная для кнопки time
bool kn_c=0;// создаем булевую переменную
int temperatura_set = 50; // переменная для заданного значения температуры
int led = 13; //индикатор нажатия кнопки установки температуры
//=================================================================****
DallasTemperature sensors(&oneWire);
//Создаем переменные для работы с термометром
DeviceAddress tempDeviceAddress; //переменная для хранения адреса датчика
float temp1=0; //переменная для хранения температуры
int T1; // переменная текущей температуры
int ones; //переменная для печати
int tens; //переменная для печати
int hundreds; //переменная для печати
//================================================================*****
void setup() {
//определяем режимы работы пинов
pinMode(BUTTON,INPUT);
pinMode(led,OUTPUT);
pinMode(BUTTON1,INPUT);
pinMode(OFF,OUTPUT);
pinMode(OUTHET1,OUTPUT);
digitalWrite(OUTHET1,LOW);
pinMode(OUTHET2,OUTPUT);
digitalWrite(OUTHET2,LOW);
pinMode(BUTTON_TEMP,INPUT_PULLUP);
pinMode(BUTTON_TIME,INPUT_PULLUP);
pinMode(UP,INPUT_PULLUP);
pinMode(DOWN,INPUT_PULLUP);
//Считаем из постоянной памяти заданную температуру
//Заданная температура будет храниться по адресу 1
temperatura_set=EEPROM_read_byte(1);
//зададим исходные параметры для дисплея
lc.clearDisplay(0);// clear screen
lc.shutdown(0,false);// turn off power saving, enables display
lc.setIntensity(0,7);// sets brightness (0~15 possible values)
lc.setScanLimit(1, 3);
//Инициализируем термодатчик и установим разрешающую способность 12 бит
sensors.begin();
sensors.getAddress(tempDeviceAddress, 0);
sensors.setResolution(12);
lc.clearDisplay(0); //очищаем экран
Serial.begin(9600);
}
//=====================================================================*************
void loop(void){
{
//Включаем прибор
//если сменилось состояние кнопки On/Off
if ( bouncor.update() )
{
//если считано значение 1
if ( bouncor.read() == HIGH) {
//если свет был выключен, будем его включать
if ( OFFValue == LOW ) {
OFFValue = HIGH;
//если свет был включен, будем выключать
}
else {
OFFValue = LOW;
}
//записываем значение вкл/выкл на пин со светодиодом
digitalWrite(OFF,OFFValue);
}
}
//=========================================================
// включаем подсветку
{
//если сменилось состояние кнопки Light
if ( bouncer.update() ) {
//если считано значение 1
if ( bouncer.read() == HIGH) {
//если свет был выключен, будем его включать
if ( ledValue == LOW ) {
ledValue = HIGH;
//если свет был включен, будем выключать
} else {
ledValue = LOW;
}
//записываем значение вкл/выкл на пин со светодиодом
digitalWrite(LED,ledValue);
}
}
}
//==========================================================***********************
//Задаем температуру, выбрав ее кнопкой TEMP
{
kn_tempert.update(); //проверяем состояние кнопок
kn_timer.update();
kn_UP.update();
kn_DOWN.update();
if(!kn_tempert.read() && flag_kn_c==0){
flag_kn_c=1; //Если кнопка температуры нажата заносим
//значение состояния кнопки в переменную flag
}
if(kn_tempert.read() && flag_kn_c==1){
if (kn_c==0) kn_c=1;
else kn_c = 0;
flag_kn_c=0;
}
}
if (kn_c)
{
if ( !kn_UP.read() )
{
temperatura_set++;
delay(300);
EEPROM_write(1, temperatura_set); //записываем значение температуры в память по адресу 0
// Serial.println(temperatura_set);
// T1 = temperatura_set*10; //в этом блоке печатаем установленную температуру
// hundreds = T1/100; //определяем сотни
// tens=(T1-hundreds*100)/10; //определяем десятки
// ones=T1-(hundreds*100+tens*10); //определяем единицы
// lc.setDigit(0,0,hundreds,false); //печатаем сотни
// lc.setDigit(0,1,tens,true); //печатаем десятки с запятой
// lc.setDigit(0,2,ones,false); //печатаем единицы
// delay (2000); //делаем задержку 3 сек
// lc.clearDisplay(0); //очищаем экран
}
if (!kn_DOWN.read() )
{
temperatura_set--;
delay(300);
EEPROM_write(1, temperatura_set); //записываем значение температуры в память по адресу 0
}
T1 = temperatura_set*10; //в этом блоке печатаем установленную температуру
hundreds = T1/100; //определяем сотни
tens=(T1-hundreds*100)/10; //определяем десятки
ones=T1-(hundreds*100+tens*10); //определяем единицы
lc.setDigit(0,0,hundreds,false); //печатаем сотни
lc.setDigit(0,1,tens,true); //печатаем десятки с запятой
lc.setDigit(0,2,ones,false); //печатаем единицы
delay (500); //делаем задержку
// lc.clearDisplay(0); //очищаем экран
Serial.println(temperatura_set);
}
}
//=====================================================================************
//Модуль опроса датчиков и получения сведений о температуре
//Вызывается 1 раз в секунду
unsigned long currentMillis1 = millis();
if(currentMillis1 - previousMillis1 > interval1) {
previousMillis1 = currentMillis1;
//Запуск процедуры измерения температуры
sensors.setWaitForConversion(false);
sensors.requestTemperatures();
sensors.setWaitForConversion(true);
//Считывание значения температуры
sensors.getAddress(tempDeviceAddress, 0);
temp1=sensors.getTempC(tempDeviceAddress);
T1= temp1*10;//И печатаем его
hundreds = T1/100;
tens=(T1-hundreds*100)/10;
ones=T1-(hundreds*100+tens*10);
lc.setDigit(0,0,hundreds,false);
lc.setDigit(0,1,tens,true);
lc.setDigit(0,2,ones,false);
}
EEPROM_read(1, temperatura_set);//считываем значение температуры
//Serial.println(temperatura_set);
//Проверка условия включения/выключения нагревателей:
if (temp1<temperatura_set&&outhet1Status==LOW){outhet1Status=HIGH; digitalWrite(OUTHET1,HIGH);}
if (temp1>temperatura_set&&outhet1Status==HIGH){outhet1Status=LOW; digitalWrite(OUTHET1,LOW);}
if (temp1<temperatura_set&&outhet2Status==LOW){outhet2Status=HIGH; digitalWrite(OUTHET2,HIGH);}
if (temp1>temperatura_set&&outhet2Status==HIGH){outhet2Status=LOW; digitalWrite(OUTHET2,LOW);}
}
//Конец кода
Есть небольшие косякив виде моргания индикатора при изменении температуры, но это я постараюсь подчистить
самое главное кнопки работают как надо, даже сейчас смотрю на код, некоторые моменты еще не понял, но общее понимание есть, еще раз спасибо!!!!
А вот алгоритм который предлагает Puhlyaviy, Если я его првильно понял.
Он также как и мой имеет право на существование. Так что выбирайте
//Temp777.ino
#include <Bounce.h>;
#define BUTTON_TEMP 7 //кнопка установки температуры
//#define BUTTON_TIME 6 //кнопка установки ВРЕМЕНИ
#define UP 5 //кнопка увеличения значения
#define DOWN 4 //кнопка уменьшения значения
int kn_c=0;
bool flag_kn_c =0;
bool kn_tim = 0;
int led_C = 13; //светодиод температуры
int led_T = 8; //Светодиод таймера
int temperatura = 50;
int timer = 80;
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2);
//Bounce kn_timer = Bounce(BUTTON_TIME,5);
Bounce kn_UP = Bounce(UP,5);
Bounce kn_DOWN = Bounce(DOWN,5);
void setup() {
// put your setup code here, to run once:
pinMode(led_C, OUTPUT);
pinMode(led_T, OUTPUT);
pinMode(BUTTON_TEMP, INPUT_PULLUP);
// pinMode(BUTTON_TIME, INPUT_PULLUP);
pinMode(UP, INPUT_PULLUP);
pinMode(DOWN, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
kn_tempert.update();
//kn_timer.update();
kn_UP.update();
kn_DOWN.update();
if(!kn_tempert.read() && flag_kn_c==0){
flag_kn_c=1;
}
if(kn_tempert.read() && flag_kn_c==1){
if (kn_c >= 5) kn_c = 0;
kn_c++;
flag_kn_c = 0;
}
Serial.println(temperatura);
switch (kn_c) {
case 1:
digitalWrite(led_C, HIGH);//Обозначаем что вошли в регулировку температуры
if ( !kn_UP.read() )
{
temperatura++;
delay(300);
}
if (!kn_DOWN.read() )
{
temperatura--;
delay(300);
}
break;
case 2:
digitalWrite(led_C, LOW);
digitalWrite(led_T, HIGH); //Обозначаем что вошли в регулировку таймера
if ( !kn_UP.read() )
{
timer++;
delay(300);
}
if (!kn_DOWN.read() )
{
timer--;
delay(300);
}
break;
case 3:
digitalWrite(led_C, HIGH); //оба горят Обозначаем что вошли в режим записи
digitalWrite(led_T, HIGH);
// Здесь проверяем изменили температуру и таймер если да пишем в память
kn_c = 4;
break;
case 4:
digitalWrite(led_C, LOW); //оба не горят Обозначаем что вышли из режима настройки
digitalWrite(led_T, LOW);
break;
}
}
Класс! Второй алгоритм еще интереснее, и главное, понятнее для меня, (как чайнику) но больше всего меня удивило, что вы умудрились отделить зерна от плевел в этом наборе фраз, которыми сыпет пухлявый, то ли у него манера изьясняться такая, как у моего первого учителя по информатике, то ли он траву забористую курит, по любому Огромное спасибо Вам и Пухлявому, ОН РАБОТАЕТ!!!!!!!!!! УРА!
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
Принято, испавляю, а то я переключился на время окрыленный успехом, спасибо за замечание!
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
Правда, когда прогнал программу в AtmelStudio показало чрезмерную нагрузку на память, делаю переменную
Класс! Второй алгоритм еще интереснее, и главное, понятнее для меня, (как чайнику) но больше всего меня удивило, что вы умудрились отделить зерна от плевел в этом наборе фраз, которыми сыпет пухлявый, то ли у него манера изьясняться такая, как у моего первого учителя по информатике, то ли он траву забористую курит, по любому Огромное спасибо Вам и Пухлявому, ОН РАБОТАЕТ!!!!!!!!!! УРА!
мдаааа.... серьезная заявка на победу... тоесть дети прекрасно понимают мои обьяснения... а у вас типа проблемы...тоесть вы по уровню развития ниже детей 10-15 летнего возраста?
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
вот теперь скажи, чему он научился? взял готовый код и что дальше? завтра будет другая проблема, а думать он так и не умеет!!!
что то не пойму. 4 кнопки. нажимаешь время и управляешь им, нажимаешь температура управляешь. они на дисплее по разному выглядят)))
у температуры добавь значок температура, у времени все 4 цифры заняты цифрами)))
что то не пойму. 4 кнопки. нажимаешь время и управляешь им, нажимаешь температура управляешь. они на дисплее по разному выглядят)))
у температуры добавь значок температура, у времени все 4 цифры заняты цифрами)))
Там 3 цифры и 3 кнопки :)
Как выглядит значек температуры на 7 сегментном индикаторе?
поменять нафиг дисплей!!! ну что за изврат
только без С в конце. хотя если дисплей переделать то можно и впихнуть
ТС, не занимайся фигней, вот
http://ru.aliexpress.com/item/20pcs-lot-4-digital-display-with-adjustable-brightness-LED-module-clock-Point-Accessories-Blocks-for-arduino/2024073518.html
паять даже не придется
поменять нафиг дисплей!!! ну что за изврат
только без С в конце. хотя если дисплей переделать то можно и впихнуть
ТС, не занимайся фигней, вот
http://ru.aliexpress.com/item/20pcs-lot-4-digital-display-with-adjustable-brightness-LED-module-clock-Point-Accessories-Blocks-for-arduino/2024073518.html
паять даже не придется
Надо мужественно преодолевать тяготы и лишения и т.д.
Ну не ищем мы легких путей, не ищем.
Вот Ваши кнопки, проверил в Протеусе додает и отнимает.
Аналогично сделаете с таймером.
Вот Ваши кнопки, проверил в Протеусе додает и отнимает.
Аналогично сделаете с таймером.
Какой добрый пионер... какая разница что у ТС всего 3 кнопки, а не 4 и не 5... главное же помог, а не то что некоторые. ..
Большое спасибо! Буду дальше разбираться.
Не могли бы вы скинуть на мою почту bobrov.anatoliy@gmail.com свой номер телефона и сотового оператора, я хотел бы Вас отблагодарить, а то неудобно вновь к Вам обращаться будет.
Суважением, Анатолий
пухлявый тебя отблагодарить хотят?
пухлявый тебя отблагодарить хотят?
Да шоб я знал с кем от беседует. Прл меня он там где то гадости писал. :) может голову напекло? !
Если вы ко мне то это лишнее, форум для того и существует чтобы обмениваться знаниями.
По поводу Вашего проэкта на мой взгляд алгоритм следующий:
1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности, )
2-редактируем UP-DOWN
3-делаем клик по кнопке 2й раз, проверяем были ли изменения если да то пишем в память, выключаем светодиод.
Если вы ко мне то это лишнее, форум для того и существует чтобы обмениваться знаниями.
По поводу Вашего проэкта на мой взгляд алгоритм следующий:
1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности, )
2-редактируем UP-DOWN
3-делаем клик по кнопке 2й раз, проверяем были ли изменения если да то пишем в память, выключаем светодиод.
Для тех кому лень вообще понимать суть
http://arduino.ru/forum/programmirovanie/pechka-dlya-sauny-s-upravleniem...
А вот алгоритм который предлагает Puhlyaviy, Если я его првильно понял.
Он также как и мой имеет право на существование. Так что выбирайте
Если вы ко мне то это лишнее, форум для того и существует чтобы обмениваться знаниями.
По поводу Вашего проэкта на мой взгляд алгоритм следующий:
1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности, )
2-редактируем UP-DOWN
3-делаем клик по кнопке 2й раз, проверяем были ли изменения если да то пишем в память, выключаем светодиод.
Еще раз спасибо! работает как часы, по Вами предложенному алгоритму, спасибо еще раз, сейчас дописываю по времени и надеюсь, к вечеру установлю в сауну, естественно приглашу париться!!
вот код:
Есть небольшие косякив виде моргания индикатора при изменении температуры, но это я постараюсь подчистить
самое главное кнопки работают как надо, даже сейчас смотрю на код, некоторые моменты еще не понял, но общее понимание есть, еще раз спасибо!!!!
а это схема в протеусе, если надо:
https://drive.google.com/file/d/0B8XhOtZ_ILJfSEM5UXZsU0NMN0U/view?usp=sh...
https://drive.google.com/file/d/0B8XhOtZ_ILJfQ0x3MjVRLVp3d00/view?usp=sh...
А вот алгоритм который предлагает Puhlyaviy, Если я его првильно понял.
Он также как и мой имеет право на существование. Так что выбирайте
Класс! Второй алгоритм еще интереснее, и главное, понятнее для меня, (как чайнику) но больше всего меня удивило, что вы умудрились отделить зерна от плевел в этом наборе фраз, которыми сыпет пухлявый, то ли у него манера изьясняться такая, как у моего первого учителя по информатике, то ли он траву забористую курит, по любому Огромное спасибо Вам и Пухлявому, ОН РАБОТАЕТ!!!!!!!!!! УРА!
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
Принято, испавляю, а то я переключился на время окрыленный успехом, спасибо за замечание!
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
Правда, когда прогнал программу в AtmelStudio показало чрезмерную нагрузку на память, делаю переменную
Класс! Второй алгоритм еще интереснее, и главное, понятнее для меня, (как чайнику) но больше всего меня удивило, что вы умудрились отделить зерна от плевел в этом наборе фраз, которыми сыпет пухлявый, то ли у него манера изьясняться такая, как у моего первого учителя по информатике, то ли он траву забористую курит, по любому Огромное спасибо Вам и Пухлявому, ОН РАБОТАЕТ!!!!!!!!!! УРА!
мдаааа.... серьезная заявка на победу... тоесть дети прекрасно понимают мои обьяснения... а у вас типа проблемы...тоесть вы по уровню развития ниже детей 10-15 летнего возраста?
Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.
вот теперь скажи, чему он научился? взял готовый код и что дальше? завтра будет другая проблема, а думать он так и не умеет!!!
Про человека который написа 230 строчек кода, который работает, говорить что он не умет думать - по меньшей мере неправильно!!!
Про человека который написа 230 строчек кода, который работает, говорить что он не умет думать - по меньшей мере неправильно!!!
там вон в соседней ветке есть человек написавший 800 строчек кода!!! и что? он не понимает как это работает и почему...
типа миллион обезьян с пишушими машинками выдадут Войну и Мир...
там вон в соседней ветке есть человек написавший 800 строчек кода!!! и что? он не понимает как это работает и почему...
вы
код
как считаете?
- что есть строка?
: один
оператор/переменная
?
*пойду разверну свой код - хочу знать, насколько я умный.
Привет всем,
Мне немнога интересно есть ли продвиги в етой теме?
Привет всем,
Мне немнога интересно есть ли продвиги в етой теме?
есть - ты спросил, есть ли подвиги...
Просто интересно
Сам вроде такова задумал . Только на 16х2 LCD.