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

 
 
> Оптимизация программы - бортовой компьютер на PIC16F73
Hellka
сообщение Dec 21 2006, 13:37
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 2-10-06
Пользователь №: 20 895



делаю бортовой компьютер на пике
снимаю ацп значения с датчиков, соответственно в регистре adres остаются какие-то значения, мне нужно сопоставить эти значения с реальными показателями датчиков. делаю это следующим образом:
делаю АЦП преобразование, а дальше - сравнение:
Код
;***************************************************************************
;********************Вывод значений с датчиков******************************
;***************************************************************************
    
vivod_znachenii:
    
vivod_davlenie:

    movlw    .210                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .7
    movwf    dav_vivod

    movlw    .192                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .6
    movwf    dav_vivod

    movlw    .189                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .5
    movwf    dav_vivod

    movlw    .183                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .4
    movwf    dav_vivod

    movlw    .174                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .3
    movwf    dav_vivod

    movlw    .163                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .2
    movwf    dav_vivod

    movlw    .156                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .1
    movwf    dav_vivod

    movlw    .152                
    subwf    davl,0
    btfss    STATUS,0        
    movlw    .0
    movwf    dav_vivod



movf        dav_viviod,0
    movwf        data
    movlw        DATABLE
    movwf        rsselest
        call        lcd_write

датчиков у меня 4 и код оч громоздкий, каким образом можно оптимизировать код? препод что-то говорил про таблицу, а не пойму, пробовал с помощью PCL - не выходит
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AnyWay
сообщение Dec 26 2006, 14:02
Сообщение #2





Группа: Новичок
Сообщений: 10
Регистрация: 8-06-06
Пользователь №: 17 885



Можно конечно без таблицы обойтись, тогда преобразование займет 26 строк вместо 38:

vivod_davlenie
CALL TABL
movwf data
movlw DATABLE
movwf rsselest
call lcd_write
........................


TABL
MOVF DAVL,W
ADDLW D'255'-D'210'
BTFSC STATUS,C
RETLW H'7';----ДИАПАЗОН 255 - 210

ADDLW D'210'-D'192'
BTFSC STATUS,C
RETLW H'7';----ДИАПАЗОН 210 - 192

ADDLW D'192'-D'189'
BTFSC STATUS,C
RETLW H'6';----ДИАПАЗОН 192 - 189

ADDLW D'189'-D'183'
BTFSC STATUS,C
RETLW H'5';----ДИАПАЗОН 189 - 183

ADDLW D'183'-D'174'
BTFSC STATUS,C
RETLW H'4';----ДИАПАЗОН 183 - 174

ADDLW D'174'-D'163'
BTFSC STATUS,C
RETLW H'3';----ДИАПАЗОН 174 - 163

ADDLW D'163'-D'156'
BTFSC STATUS,C
RETLW H'2';----ДИАПАЗОН 163 - 156

ADDLW D'156'-D'152'
BTFSC STATUS,C
RETLW H'1';----ДИАПАЗОН 156 - 152

RETLW H'0';----ДИАПАЗОН 152 - 0
Go to the top of the page
 
+Quote Post



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

 


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


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