| 
 
 
 
 | Broka | Дата: Пт, 01.07.2011, 22:15  |                                                                                                                Сообщение # 1 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 252
 
 
 Замечания: ± На сайте с 30.09.2009
 
 
 Статус: 
 Offline
 
 | Решил попробовать сделать терморегулятор, взял примеры , написал программу! В протеусе работает.. Только вот не пойму, при включении (симуляции) при выводе максимальной и минимальной температуры.
 Минимальная температура показывает правильно, а вот максимальная считывается из EEPROM не правильно, - 33*С, в чём дело то? Хотя в EEPROM записываю те значения которые мне нужны. Странно..........
 
 '-------------------------- Опции компилятора --------------------------------
 
 Declare SHOW_SYSTEM_VARIABLES = OFF ' При симуляции в Proteus не показывать внутренние переменные
 Declare FSR_CONTEXT_SAVE = OFF ' Не заботиться о сохранении содержимого регистра FSR
 Declare Reminders = OFF ' Выключить напоминания компилятора
 Declare Warnings = OFF ' Выключить предупреждения компилятора
 Declare Optimiser_Level 1 ' Включить оптимизацию программы
 
 ;-------------------------- Общие настройки------------------------------------
 
 Device = 16F628A ' Используемый микроконтроллер
 Xtal = 4 ' Частота осциллятора 4 МГц
 
 '-------------------------- Конфигурация программирования --------------------
 
 Config BODEN_OFF, BOREN_OFF, CP_OFF, DATA_CP_OFF, PWRTE_ON, WDT_OFF, LVP_OFF, MCLRE_ON, XT_OSC
 
 '-------------------------- Настройки подключения ЖКИ ------------------------
 TRISA = %11111111
 TRISB = %00000000
 PORTB.1 = 0
 Declare LCD_Type ALPHA ' Тип ЖКИ - буквенно -цифровой
 Declare LCD_DTPin PORTB.4 ' Порт данных ЖКИ
 Declare LCD_ENPin PORTB.3 ' Управление линией E
 Declare LCD_RSPin PORTB.2 ' Управление линией RS
 Declare LCD_Interface 4 ' Разрядность шины данных
 Declare LCD_CommandUs 2000 ' Задержка перед посылкой команды
 Declare LCD_DataUs 50 ' Задержка перед посылкой данных
 Declare LCD_Lines 2 ' Количество строк ЖКИ
 
 '-------------------------- Настройки портов ---------------------------------
 
 PortB_Pullups = OFF ' Выключить подтягивающие резисторы на PORTB
 Declare All_Digital = On ' Установить все порты цифровыми входами/выходами
 
 '-------------------------- Определение переменных и символов------------------
 Symbol Mode = PORTA.0
 Symbol Plus = PORTA.1
 Symbol Minus = PORTA.2
 Symbol Zapis = PORTA.3
 Symbol DQ = PORTA.4
 Dim H As Float
 Dim L As Float
 'Dim R As Byte
 Dim R_Temp As Word 	' Переменная для получения значения температуры
 ' отдельными двумя байтами
 Dim Temp As Float 	' Переменная для преобразования значения
 ' температуры в данные с плавающей запятой
 Dim TempIND As Float 	' Переменная для вывода на индикацию значени
 ' температуры
 Dim C As Bit 	' Переменная для хранения бита сигнализации
 ' окончания преобразования
 H = 38
 L = 37.50
 DelayMS 50
 EWrite 2,[H]
 EWrite 3,[L]
 DelayMS 50
 '-------------------------- Начало -------------------------------------------
 H = ERead 2
 L = ERead 3
 Print At 1 ,1,$A9,$43,$54,$20,$4D,$41,$4B,$43,$20,$3D,$20,Dec1 H (Вот здесь показывает неправильное значение )
 Print At 2 ,1,$A9,$43,$54,$20,$4D,$A5,$48,$20,$3D,$20,$20,Dec1 L
 DelayMS 3000
 Cls
 Ну ,а дальше пошла сама программа терморегулятора.
 Может неправильно указал переменные H и L? Но они и должны быть Float, а то как я сделаю например 37.2?
 
 Наладчик КИП и А
 
 Сообщение отредактировал 
 
 Broka - Пт, 01.07.2011, 22:30
 
  |  
 |  |  |  | 
| 
 
 
 
 | ivan_fd | Дата: Пт, 01.07.2011, 22:43  |                                                                                                                Сообщение # 2 |  
 |   
 
 
 
 
  Группа:
  Модераторы
 
  Ранг: 
 
 Специалист
 
  
 Сообщений: 
 
 
 891
 
 
 Замечания: ± На сайте с 12.01.2009
 
 
 Статус: 
 Offline
 
 | Ну так если Вы пишите в еепром переменную типа Float, то H пишите с адреса 2, а L нужно писать с адреса 6. Потому что тип float занимает в памяти 4 байта.
 |  
 |  |  |  | 
| 
 
 
 
 | Broka | Дата: Сб, 02.07.2011, 18:05  |                                                                                                                Сообщение # 3 |  
 |   
 
 
 
 
  Группа:
  Проверенные
 
  Ранг: 
 
 Помогаю всем
 
  
 Сообщений: 
 
 
 252
 
 
 Замечания: ± На сайте с 30.09.2009
 
 
 Статус: 
 Offline
 
 | ivan_fd, Спасибо большое, точно, так оно и есть! Старость не радость , совсем забыл.........
 
 Наладчик КИП и А
 |  
 |  |  |  |