Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Вычисление (Не заходит по IF)
Вычисление
tolyan249 Дата: Пн, 08.09.2014, 18:54  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 183
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

dim temp2 as word
dim temp3 as word

Не заходит по условию

'если температура меньше чем предедущая то записываем в памать эту температуру
If temp2<=temp3  Then
temp3=temp2
EWrite 3,
[TemperC]EWrite 5,
[sign]EndIf

Записываю в память самую низкую темературу и самую высокую которые были до того как запросили данные, после показа обнуляю данные
 
Проверил с положительными числами работает нормально, с отрицательными не работает условие.  Что -1 меньше чем 0, проверяю в протеусе не заходит.  Странно. Может чего то пропустил или не понял чего то. Обясните что не так.
 
Спасибо.

Прикрепления: 9944422.jpg (169.9 Kb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Пн, 08.09.2014, 19:26
ЯНДЕКС Дата: 08.09.2014
anatol Дата: Пн, 08.09.2014, 19:41  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

А букварь читать? Чем отличается переменная Word от Sword, а также word от Word?
brown Дата: Пн, 08.09.2014, 19:48  |                                                                                                                Сообщение # 3
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Тип переменной выбран с  положительным значением.
Из помощи версии 3.5.6.5:
Dim Cat as Bit ' Create a single bit variable (0 or 1)
Dim Dog as Byte ' Create an 8-bit unsigned variable (0 to 255)
Dim Rat as Word ' Create a 16-bit unsigned variable (0 to 65535)
Dim Lrg_Rat as Dword ' Create a 32-bit unsigned variable (0 to 4294967295)
Dim sDog as SByte ' Create an 8-bit signed variable (-128 to +127)
Dim sRat as SWord ' Create a 16-bit signed variable (-32768 to +32767)
Dim sLrg_Rat as SDword ' Create a 32-bit signed variable (-2147483648 to
' +2147483647)
Dim Pointy_Rat as Float ' Create a 32-bit floating point variable


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
tolyan249 Дата: Вт, 09.09.2014, 05:16  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 183
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Спасибо огромное за помощь, что указали на ошибки, просто где то читал что Word может принимать значения от  -32768  до  +32767.

У меня нет такого в протоне SWord  Sbyte  SDWord выдает ошибку.
 
Вот с хелпа самого протона:
Space for each variable is automatically allocated in the microcontroller's RAM area. The for-
mat for creating a variable is as follows: - 
 
 Dim Label as Size 
 
Label is any identifier, (excluding keywords). Size is Bit, Byte, Word, Dword or Float. Some
examples of creating variables are: - 
 
 Dim Dog as Byte   ' Create an 8-bit unsigned variable (0 to 255) 
 Dim Cat as Bit     ' Create a single bit variable (0 or 1) 
 Dim Rat as Word   ' Create a 16-bit unsigned variable (0 to 65535)  
 Dim Large_Rat as Dword  ' Create a 32-bit signed variable (-2147483648 to  ' +2147483647) 
 Dim Pointy_Rat as Float ' Create a 32-bit floating point variable
 
The number of variables available depends on the amount of RAM on a particular device and
the size of the variables within the BASIC program. The compiler may reserve approximately 26
RAM locations for its own use. It may also create additional temporary (System) variables for
use when calculating complex equations, or more complex command structures. Especially if
floating point calculations are carried out. 



если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вт, 09.09.2014, 05:28
anatol Дата: Вт, 09.09.2014, 19:40  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

tolyan249, или посвежее версию найди, или Dword в вашей в помощь.
tolyan249 Дата: Чт, 11.09.2014, 05:16  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 183
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Спасибо буду думать.

если знаешь,помоги.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Вычисление (Не заходит по IF)
  • Страница 1 из 1
  • 1
Поиск: