В ответ на: Си для МК и не только, вопросы и ответы 14.08.2013 22:34
Репутация: 1  
вы можете при помощи локальных static-переменных в вашей функции отслеживать текущее состояние процесса и возобновлять его с нужного места. можете более подробней расказать ? хотя лично мне такой подход очень не нравится, код получается достаточно тугой для восприятия. что вы можете еще предложить ? что вы можете сказать о этом методе http://computerlib.narod.ru/html/setjmp.htm ?
Experience is the name everyone give to his mistakes.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8222
ARV(Администратор)
Администратор
Постов: 2386
В ответ на: Си для МК и не только, вопросы и ответы 15.08.2013 11:14
Репутация: 176  
более подробно попробую на примере кода:
Code:
// функция решения квадратного уравнения поэтапно, возвращает 1, если решено, 0 - если решение
вычисления еще не закончены, -1 при ошибке
int square_equation(int a, int b, int c, int *x1, int *x2){
static int etap=0; // здесь запоминается этап вычислений
switch(etap){
case 0: // проверка допустимости коэффициентов a,b,c
if(/* сама проверка опущена */)
return -1; // недопустимые параметры
else {etap++; return 0;} // закончили этап и вышли
break;
case 1: // вычисляем дискриминант, вычисления опущены
etap++;
return 0;
case 2: // вычисляем первый корень, вычисления опущены
etap++;
return 0;
case 3: // вычисление второго корня и завершение процесса
etap = 0;
return 1;
}
}
int main(void){
int x1, x2, result;
do{
result = square_equation(23,35,44,&x1, &x2);
// а тут можно еще что-то делать В ПРОМЕЖУТКАХ вычисления корней уравнения
} while (result == 0);
if(result == -1)
printf("Ошибка!");
else
printf("x1=%d , x2=%2",x1,x2);
}
что касается указанного вами метода, то могу сказать следующее: не пользуйтесь им!
я уверен, что вы не сможете привести убедительных аргументов, почему вам НЕОБХОДИМО поступать именно так, а значит, кроме ужасного геморроя использование этого способа вам не даст. обычно все проблемы решаются просто аккуартным алгоритмом, реализованным обычным структурным программированием.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8224
FreshMan(Пользователь)
Специалист
Постов: 177
В ответ на: Си для МК и не только, вопросы и ответы 19.08.2013 12:08
Репутация: 1  
правда ли то, что в AVR ОЗП 8 разрядная а флеш 16 ?
Experience is the name everyone give to his mistakes.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8225
ARV(Администратор)
Администратор
Постов: 2386
В ответ на: Си для МК и не только, вопросы и ответы 19.08.2013 12:28
Репутация: 176  
FreshMan писал(а): правда ли то, что в AVR ОЗП 8 разрядная а флеш 16 ?что вы имеете ввиду под разрядностью - ячейки или адресную шину? адресная шина и для ОЗУ и для флеш явно не 8-битная, а ячейки - 8-битные.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8226
FreshMan(Пользователь)
Специалист
Постов: 177
В ответ на: Си для МК и не только, вопросы и ответы 19.08.2013 16:44
Репутация: 1  
что вы имеете ввиду под разрядностью - ячейки или адресную шину? ячейки
Experience is the name everyone give to his mistakes.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8227
FreshMan(Пользователь)
Специалист
Постов: 177
В ответ на: Си для МК и не только, вопросы и ответы 20.08.2013 10:16
Репутация: 1  
почему GOTO является признаком дурного тона ? ведь асм состоит из сплошных goto
Experience is the name everyone give to his mistakes.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8228
ARV(Администратор)
Администратор
Постов: 2386
В ответ на: Си для МК и не только, вопросы и ответы 20.08.2013 11:26
Репутация: 176  
ассемблер - низкоуровневый язык. а языки высокого уровня для того и придуманы, чтобы изменить стиль программирования, сделав его более простым и логичным. именно с этой целью придуман принцип структурного или модульного программирования, а затем - объектно-ориентированного. так вот при этих новых принципов построения программы злоупотребление оператором goto нарушает принятый подход, привнося определенный хаос. давным давно доказано, что любой алгоритм может быть реализован средствами структурно-ориентированного программирования без использования оператора goto. поэтому этот оператор и не одобряется.
это не закон, не табу, это как бы самоограничение программиста. мы едим вилками и ложками, хотя в принципе руками тоже можно, но считая себя культурными людьми мы делаем над собой усилие и отказываемся от некоторых вполне допустимых действий... только ради "приличия". так и при написании программ.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8229
FreshMan(Пользователь)
Специалист
Постов: 177
В ответ на: Си для МК и не только, вопросы и ответы 20.08.2013 13:06
Репутация: 1  
ARV писал(а): придуман принцип структурного или модульного программирования, а затем - объектно-ориентированного.
ПОЖАЛУЙСТА, раскажите о данных принципах более подробно, что каждий из них представляет, в чем преимущества и какой когда использовать при программировании AVR ARV писал(а): мы едим вилками и ложками, хотя в принципе руками тоже можно у нас говорят: "птицу, рыбу и молодицу берут руками"
Experience is the name everyone give to his mistakes.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8230
ARV(Администратор)
Администратор
Постов: 2386
В ответ на: Си для МК и не только, вопросы и ответы 20.08.2013 16:27
Репутация: 176  
вообще говоря, на эту тему понаписано очень и очень много хороших статей и даже книг, если я начну пересказывать их - у меня ни сил не хватит, ни умения. вы лучше почитайте об этом то, что найдете в сети - там есть, я знаю.
Не стыдно не знать, стыдно не учиться
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.
#8231
FreshMan(Пользователь)
Специалист
Постов: 177
В ответ на: Си для МК и не только, вопросы и ответы 20.08.2013 18:47
Репутация: 1  
ARV писал(а): вообще говоря, на эту тему понаписано очень и очень много хороших статей и даже книг каких именно ? дайте пожалуйста ссылки на прочитанные и одобренные вами ресурсы т.к. мне на данном этапе не представляется возможным отличить плохое от хорошего.
Experience is the name everyone give to his mistakes.
Для добавления сообщений Вы должны зарегистрироваться или авторизоваться.