реклама на сайте
подробности

 
 
21 страниц V  « < 19 20 21  
Reply to this topicStart new topic
> Изменение текста программы при смене компилятора и чипа
RW6MKA
сообщение Jan 31 2012, 17:38
Сообщение #301


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Всем доброго времени. Вот файл очень простого проектаПрикрепленный файл  Stirka.rar ( 52.64 килобайт ) Кол-во скачиваний: 54
, может кто глянет,что здесь не так.
Прикрепленное изображение
Кнопкой setup устанавливается интервал( в сек) работы, кнопкой run запускается рабочий цикл. Во время работы происходит включение реле вращения вправо на 6сек, потом пауза 2сек, вращение влево 6сек, пауза 2сек и так до окончания времени. В железе часто по истечению времени индикатор обнуляется, а последнее включенное реле остаётся включеным и схема не реагирует на кнопки, почему?Или индикация самопроизвольно начинает меняться по порядку от 1 до 0, но при этом схема реагирует на нажатие кнопки run. Что за глюки?
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Feb 3 2012, 14:53
Сообщение #302


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Ну что то никто не хочет подсказать в чём косяк(((
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Feb 3 2012, 15:28
Сообщение #303


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(RW6MKA @ Feb 3 2012, 18:53) *
Ну что то никто не хочет подсказать в чём косяк(((

Без программы вам никто ничего не скажет. А по схеме у вас неправильно стоят диоды, они должны быть паралельно реле. В вашем варианте включения они не подавляют индуктивный выброс на реле.
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Feb 4 2012, 14:29
Сообщение #304


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Цитата(MaslovVG @ Feb 3 2012, 19:28) *
Без программы вам никто ничего не скажет.

Так она в файле stirka!?
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Sep 2 2012, 19:42
Сообщение #305


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Всем доброго времени. Возникла проблемка, бьюсь головой об стол -не помогает. crying.gif Почему эта функция ничего не возвращает?(uint16_t m - объявленая глобальная переменная). Данные функции Analog() суммируются и всё, n не считается и ничего не возвращается wacko.gif
Код
uint8_t SumAnalog(void) {
        uint8_t n;
        
        n = 8;
        m = 0;
        while(n--) m += Analog();
        n = (m>>8);
        
        return(n);
}
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 2 2012, 20:02
Сообщение #306


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(RW6MKA @ Sep 2 2012, 22:42) *
Почему эта функция ничего не возвращает?Данные функции Analog() суммируются и всё, n не считается и ничего не возвращается

Как вы узнаёте, что не возвращается ничего? Может результат нигде не используется и компилятор выкидывает возврат. Приведите пример вызова функции и использования результата.

Цитата(RW6MKA @ Sep 2 2012, 22:42) *
n = 8;
m = 0;
while(n--) m += Analog();
n = (m>>8);
[/code]


Может
Код
n = (m>>3);

так надо сдвигать или вам на 8 бит сдвиг нужен?
Go to the top of the page
 
+Quote Post
artkam
сообщение Sep 2 2012, 23:10
Сообщение #307


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 14-09-10
Из: Уфа
Пользователь №: 59 479



Цитата(RW6MKA @ Sep 3 2012, 00:42) *
Код
uint8_t SumAnalog(void) {
        uint8_t n;
        
        n = 8;
        m = 0;
        while(n--) m += Analog();
        n = (m>>8);
        
        return(n);
}


Есть нехорошее подозрение, что надо участок кода подправить на что-то вроде:
Код
          while(n != 0){
              m += Analog();
              n--;
          }
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Sep 3 2012, 04:27
Сообщение #308


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Цитата(_Артём_ @ Sep 3 2012, 00:02) *
Как вы узнаёте, что не возвращается ничего? Может результат нигде не используется и компилятор выкидывает возврат. Приведите пример вызова функции и использования результата.



Может
Код
n = (m>>3);

так надо сдвигать или вам на 8 бит сдвиг нужен?

В теле другой функции
Код
AC_Time = SumAnalog();
так вот эта глобальная переменная все время == 0.
А с делением на 8 эт я по запарке написал не так, в основном коде все верно (m>>3).



Цитата(artkam @ Sep 3 2012, 03:10) *
Есть нехорошее подозрение, что надо участок кода подправить на что-то вроде:
Код
          while(n != 0){
              m += Analog();
              n--;
          }

Не пойму, в чем смысл замены. Вроде то же, но оно работает!!! Можете объяснить?

Сообщение отредактировал RW6MKA - Sep 3 2012, 05:13
Go to the top of the page
 
+Quote Post

21 страниц V  « < 19 20 21
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 14:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0149 секунд с 7
ELECTRONIX ©2004-2016