CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение misterkuk »

ARV писал(а): потому что просто не может быть девяток, если бы вы сделали так:
Вот я просто взял и скопировал вашу проверку. Всеравно девятки вылазят. Вынес в цикл, всёравно вылазят. А насчет что пятерка будет выскакивать- вы правы. Исправлю
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

misterkuk писал(а):Всеравно девятки вылазят.
ну блин, вы даёте! как же это может быть, если в случае девяток на ЖКИ в моём коде ВООБЩЕ НИЧЕГО НЕ ВЫВОДИТСЯ?! if не срабатывает - ВЫВОДА НЕТ ВООБЩЕ!!!

предлагаю вам выкласть тут ваш проект в протеусе вместе с исходниками и прошивкой, я попробую сам, ибо НЕ ВЕРЮ :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение misterkuk »

ARV писал(а): предлагаю вам выкласть тут ваш проект в протеусе вместе с исходниками и прошивкой, я попробую сам, ибо НЕ ВЕРЮ :)))
Буду только благодарен за помощь:) Я убрал с кода работу с еепромом и заплминанием датчиков чтоб не ломали голову. Всёравно на результат это не повлияло:)
Вложения
termometr.rar
(147.77 КБ) 158 скачиваний
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

И через какое время они должны вылезать ? Жду уже несколько минут - показания не менются :dont_know:

Добавлено after 8 minutes 30 seconds:
Надоело ждать :)
7 минут, полёт нормальный
СпойлерИзображение
2017-01-29_15-04-36.png
(129.48 КБ) 259 скачиваний
:dont_know:
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение misterkuk »

Аlex писал(а):И через какое время они должны вылезать ?
Жду уже несколько минут - показания не менются :dont_know:
хммм. Та сразу почти скачут показания. У меня есть устройство собранное в железе и там тоже скачут показания. Правда там нет проверки. Попробую на макетке щас собрать всё. Так а почему так? Может версия протеуса другая?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

блин, я потратил на вас столько времени! а у вас НЕ МОЙ КОД, БЛИН! :twisted:

вы хоть видите разницу между тем, что написал я и тем, что делаете вы?!
я:
ARV писал(а):temp =  ds18b20_temperature( &RomCode[2][0]);
if((temp > -60) && (temp < 150))  sprintf( LcdBuff,"pechka %.1f", temp);
вы:
temp=ds18b20_temperature( &RomCode[2][0] );

if((temp > -60) && (temp < 150))
{
lcd_gotoxy(0,2);
sprintf( LcdBuff,"pechka %.1f", ds18b20_temperature( &RomCode[2][0] ) );
delay_us(50);
lcd_puts(LcdBuff);
}
зачем вы в sprintf СНОВА вызываете непроверенную функцию получения температуры?! :twisted:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

У меня 7.10. Но я не думаю, что проблема в протезе. Как вариант - Вы что-то напутали и подкидываете протеусу не тот hex.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

Аlex писал(а):7 минут, полёт нормальный
надо кликать кнопками, подключающими датчики - тогда возникают сбои.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

Да, при кликах сразу вылезает.
ARV писал(а):зачем вы в sprintf СНОВА вызываете непроверенную функцию получения температуры?!
А почему непроверенную ? sprintf стоит в блоке условия :

Код: Выделить всё

         if((temp > -60) && (temp < 150))
         {
         ...........
         sprintf( LcdBuff,"motor %.1f", ds18b20_temperature( &RomCode[1][0] ) ); 
         ...........
         ...........
         }
:dont_know:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

Аlex писал(а):А почему непроверенную ?
да потому что если функция вернула неверное значение, она в блок if попадать не должна. а вот если верное, то не факт, что внутри блока она вернет снова верное - отсюда и вывод девяток. согласитесь, что в моем варианте кода девятки НИКОГДА не будут выводиться.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

Блин... во я слепой... Я не заметил функцию температуры внутри sprintf :facepalm:
Да, это - косяк !
Я, если честно, никак не мог подумать, что туда, вместо уже преобразованного значения (temp) , для кого-то логичнее будет засовывать функцию преобразования :)))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

Аlex писал(а):во я слепой...
не вы один - я тоже потратил немало времени на поиск косяка... когда говорят "я применил ваш код" - как-то веришь людям... и ищешь в других местах :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: CodeVision AVR в вопросах и ответах

Сообщение kotriks »

Помогите пожалуйста подогнать под кодвижн

Код: Выделить всё

AnsiString XOR_Crypt(AnsiString in, AnsiString pass)
{
AnsiString out;
for (int x=1;x<in.Length()+1;x++)
        {
        out += (char)(in[x] ^ pass[x%pass.Length()+1]);
        }
return out;
}
Это с с++ builder, спасибо!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

AnsiString - это класс для работы со строками, в классическом Си классов не существует. Юзайте массивы и string.h
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение misterkuk »

ARV писал(а): я тоже потратил немало времени на поиск косяка... когда говорят "я применил ваш код" - как-то веришь людям... и ищешь в других местах :)))
Я действительно применил ваш код, только не ко всем датчикам, а только к полледнему. Так что я вас не обманул. а то что функция в if, так написано почти во всех статьях по работе с ds18b20
Последний раз редактировалось misterkuk Вс янв 29, 2017 18:21:23, всего редактировалось 1 раз.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

misterkuk писал(а):а то что функция в if, так написано почти во всех статьях по работе с ds18b20
Почти во всех ? Хм...
Думаю, статей по DS'кам, десятки в интернете. Покажите хотя-бы несколько штук, в которых такие ляпы.

Да и, в конце концов, нужно хоть понимать что пишешь, а не тупо методом тыка вставлять куски кода.
Извините, но в вашем коде абсолютно нет никакой логики.
Вы сначала читаете температуру в переменную temp, сравниваете значение переменной в условии, а для вывода на экран используете ещё одно преобразования. Для чего ? Зачем тогда в условии переменную вставляете ? Делали бы уж тогда, до кучи, так :

Код: Выделить всё

if((ds18b20_temperature( &RomCode[0][0] ) > -60) && (ds18b20_temperature( &RomCode[0][0] ) < 150))
 {
  ....
Если для вас нет смысла в дальнейшем использовании переменной temp.
И никаких временных переменных не нужно :)
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: CodeVision AVR в вопросах и ответах

Сообщение kotriks »

Аlex писал(а):AnsiString - это класс для работы со строками, в классическом Си классов не существует. Юзайте массивы и string.h
Знал бы как не просил бы помощи.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Аlex »

А что для вас есть "помощь" ? Мой ответ ей не является ?
Ну тогда так - https://yandex.ru/search/?lr=2&msid=148 ... 1%81%D0%B8 Курим...
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение misterkuk »

Аlex писал(а): Думаю, статей по DS'кам, десятки в интернете. Покажите хотя-бы несколько штук, в которых такие ляпы.
Вот как рас во вкладке в браузесе http://mega-avr.ucoz.ru/publ/ds18b20_co ... 5/1-1-0-15

Код: Выделить всё

if((ds18b20_temperature( &RomCode[0][0] ) > -60) && (ds18b20_temperature( &RomCode[0][0] ) < 150))
 {
  ....
А здесь 2 раза будет считываться температура с датчика или 1 раз? Кстате погонял прогу на макетке и девятки не выскакивают. значит протеус виной. А замечания все и всех я обязательно учту. Спасибо за помощь.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

misterkuk писал(а):А здесь 2 раза будет считываться температура с датчика или 1 раз?
это серьёзно или это у вас такая шутка юмора?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»