Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 21.12.2006, 14:32  
Hellka
Частый гость
 
Регистрация: 02.10.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Hellka на пути к лучшему
По умолчанию Оптимизация программы - бортовой компьютер на PIC16F73

делаю бортовой компьютер на пике
снимаю ацп значения с датчиков, соответственно в регистре 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 - не выходит
Реклама:
Hellka вне форума  
Непрочитано 22.12.2006, 00:39  
ALEX__A
Почётный гражданин KAZUS.RU
 
Регистрация: 30.10.2006
Сообщений: 1,755
Сказал спасибо: 0
Сказали Спасибо 80 раз(а) в 56 сообщении(ях)
ALEX__A на пути к лучшему
По умолчанию Re: Оптимизация программы - бортовой компьютер на PIC16F73

Сообщение от Hellka
делаю бортовой компьютер на пике
снимаю ацп значения с датчиков, соответственно в регистре 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 - не выходит
Несколько не ясен Ваш вопрос.

Итак, у Вас есть четыре датчика, с помощью АЦП Вы их опросили, в результате в памяти, например, в четырех ячейках, находится код пропорциональный уровню напряжения с датчиков. Расскажите, что требуется от Вас дальше?

С уважением, Алексей.
ALEX__A вне форума  
Непрочитано 22.12.2006, 07:47  
Hellka
Частый гость
 
Регистрация: 02.10.2006
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Hellka на пути к лучшему
По умолчанию

а делее я должен сопоставить значения в регистре с реальным значением датчиков, т.е. в регистре допустим число 153 это соответствует давлению масла 5, т.е. реальное давление 5 я уже вывожу на экран.именно вот эти значения нужно сопоставить. пробовал PCL никак не получается, поэтому и делаю так,получается очень громоздко
Hellka вне форума  
Непрочитано 22.12.2006, 13:14  
lisergin_
Частый гость
 
Регистрация: 22.12.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
lisergin_ на пути к лучшему
По умолчанию

Можно попробовать так, только не забудте проверит на "ошибки невнимательности"
Код:
adc_table	addwf	PCL,	f
	retlw	.152
	retlw	.156
	retlw	.163
	retlw	.174
	retlw	.183


maslo_conv		;сюда пришли со значением в переменной sens_maslo
	movlw	max_num	;макс. кол-во значений датчика (константа)
	movwf	cyc1	;инициируем цикл от макс. до 0
tc_begin		;начало цикла преобразования
	movf	cyc1,	w
	call	adc_table	;очередной проход табличного преобразования
	subwf	sens_maslo, w	;сравниваем значение из таблицы со значением из АЦП
	btfsc	STATUS,	Z
	goto	end_conv	;значения совпали, в переменной cyc1 - искомое
	decfsz	cyc1	;совпадения нет, продолжаем проверку
	goto	tc_begin
end_conv
Для обработки ситуации, когда насчитанное АЦП и заданное в таблице вообще не совпали, можно ввести флажек в цикл преобразования, думаю, это несложно.

Удачи!
__________________
Ничто так не говорит об отсутствии доказательств, как слова: бесспорно, очевидно, общеизвестно...
lisergin_ вне форума  
Непрочитано 06.09.2010, 10:23  
manitor
Прохожий
 
Регистрация: 06.09.2010
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
manitor на пути к лучшему
По умолчанию Re: Оптимизация программы - бортовой компьютер на PIC16F73

Чтобыоптимизировать компьютер не требуется много времени и сил. Я пользовался этой бесплатной программой. Очень удобно и быстро.
manitor вне форума  
Непрочитано 06.09.2010, 12:59  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Оптимизация программы - бортовой компьютер на PIC16F73

Сообщение от manitor Посмотреть сообщение
Чтобыоптимизировать компьютер не требуется много времени и сил. Я пользовался этой бесплатной программой. Очень удобно и быстро.
Easyrider83 вне форума  
Непрочитано 06.09.2010, 17:04  
i-mir
Временная регистрация
 
Регистрация: 08.07.2010
Сообщений: 67
Сказал спасибо: 0
Сказали Спасибо 19 раз(а) в 5 сообщении(ях)
i-mir на пути к лучшему
По умолчанию Re: Оптимизация программы - бортовой компьютер на PIC16F73

Да, насчет "оптимизации компьютера" - спасибо автору, улыбнуло.

Подобные задачи, на мой взгляд, проще решать через аналитическую зависимость, проще говоря формулу. Загоните эту таблицу в тот же Ексел, постройте линию тренда и вычисляйте формулу. Для удобства подгоните арифметику под работу с "модулем 2" - и работайте с чистыми сдвигами.

Например, по простому, если брать таблицу из первого поста, то там нужно отнять 152 и разделить на 8 - и получите искомую цифру (грубо, но для этой задачи приемлемо).
i-mir вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация в AVR GCC alberio Микроконтроллеры, АЦП, память и т.д 45 02.03.2018 12:38
Бортовой компьютер для Chery Amulet alex28411 Микроконтроллеры, АЦП, память и т.д 6 28.10.2008 10:34
Помогите с PIC16F73 Viktor2004 Микроконтроллеры, АЦП, память и т.д 23 04.05.2007 09:51
А у нас тоже есть бортовой компьютер, и тоже "почти&quo bitkor Микроконтроллеры, АЦП, память и т.д 8 18.01.2007 16:44
Pic16f73 + Ibutton Hellka Микроконтроллеры, АЦП, память и т.д 0 12.12.2006 22:38


Часовой пояс GMT +4, время: 13:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot