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

 
 
> Оптимизация программы - бортовой компьютер на 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
Ответов
urry1
сообщение Dec 25 2006, 12:24
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 54
Регистрация: 14-12-06
Пользователь №: 23 498



Что же ты делаешь ?
Ты последовательно портишь dav_vivod . У тебя проверка закончится последними строчками, что бы там ни было на входе.
Go to the top of the page
 
+Quote Post
urry1
сообщение Dec 25 2006, 13:31
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 54
Регистрация: 14-12-06
Пользователь №: 23 498



16f73 я не занимался, пишу на с.. но вот что выдал компилятор, когда я ввел массив..
15 000E 0782 ADDWF PCL, F
16 000F 3407 RETLW 0x7
17 0010 3406 RETLW 0x6
18 0011 3405 RETLW 0x5
19 0012 3404 RETLW 0x4
20 0013 3403 RETLW 0x3
21 0014 3402 RETLW 0x2
22 0015 3401 RETLW 0x1
23 0016 3400 RETLW 0
24 0017 0782 ADDWF PCL, F
25 0018 34D2 RETLW 0xd2
26 0019 34C0 RETLW 0xc0
27 001A 34BD RETLW 0xbd
28 001B 34B7 RETLW 0xb7
29 001C 34AE RETLW 0xae
30 001D 34A3 RETLW 0xa3
31 001E 349C RETLW 0x9c
32 001F 3498 RETLW 0x98
// это твои 2 массива

1837 072C 3000 MOVLW 0
1838 072D 008A MOVWF PCLATH
1839 072E 082C MOVF z, W
1840 072F 2017 CALL 0x17
1841 0730 118A BCF PCLATH, 0x3
// вот выборка из массива с первым адресом 17
1842 0731 00AD MOVWF 0x2d
1843 0732 082B MOVF temp, W
1844 0733 022D SUBWF 0x2d, W
1845 0734 1803 BTFSC STATUS, 0
// дальше сравнение, неинтересно...
1846 0735 2F38 GOTO 0x738
1847 0736 082B MOVF temp, W
1848 0737 2F3D GOTO 0x73d
// выборка из 2 массива
1849 0738 3000 MOVLW 0
1850 0739 008A MOVWF PCLATH
1851 073A 082C MOVF z, W
1852 073B 200E CALL 0xe
1853 073C 118A BCF PCLATH, 0x3
1854 073D 00AA MOVWF i
// дальше проверка,все 8 чисел выбраны или нет
1855 073E 0AAC INCF z, F
1856 073F 3008 MOVLW 0x8
1857 0740 022C SUBWF z, W
1858 0741 1803 BTFSC STATUS, 0

У тебя проблемы с алгоритмом, то что видно навскидку...

Вгрызаться в даташит 73 и смотреть, почему именно так идет выборка из таблицы,
нет особого желания... Пиши на С, преподу дашь дизассемблированный исходник. smile.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 6th September 2025 - 16:08
Рейтинг@Mail.ru


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