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

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

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

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

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

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


 
Опции темы
Непрочитано 20.03.2011, 01:35  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
Понятно, что не специально. Логика примерно ясна.

Скромничаете?
Просто стараюсь быть объективным по отношению к себе.
Реклама:
Bill вне форума  
Непрочитано 23.03.2011, 12:35  
Dr_Watson
Прохожий
 
Регистрация: 06.05.2009
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dr_Watson на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Знакомый исходник ковыряете )
Сообщение от Bill Посмотреть сообщение
Чуть элегантнее (быстрее)
Код:
; unsigned int _lcd_putstr(unsigned char *s)
	xdef	__lcd_putstr
__lcd_putstr:	
	jra	__lcd_putstr1   ; Поехали!

_lcd_putstr_0:
	call	__lcd_putchar	; выводим символ
	incw	X		; смещаем указатель к следующему символу
_lcd_putstr_1:
	ld	A,(X)		; берем очередной символ строки
 	jrne	_lcd_putstr_0	; не ноль - на вывод

	ret
Или нет?
В ассемблере можно и так:
Код:
; unsigned int _lcd_putstr(unsigned char *s)
	xdef	__lcd_putstr
__lcd_putstr_0:
	call	__lcd_putchar	; выводим символ
	incw	X		; смещаем указатель к следующему
__lcd_putstr:	
	ld	A,(X)		; берем очередной символ строки
 	jrne	_lcd_putstr_0	; не ноль - на вывод
	ret
Не очень красиво, но минус один переход
__________________
To beer or not to beer?
That is a question...
Dr_Watson вне форума  
Непрочитано 23.03.2011, 13:21  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от Dr_Watson Посмотреть сообщение
Не очень красиво, но минус один переход
Очень некрасиво.
Там была процедура вывода форматированной строки. Признак конца строки - "0".
Ваш вариант пройдёт, если точно известно, что первый байт не "0". Такой подход неправилен потому, что Вы оставили возможность ошибочной работы процедуры. Например вывод строки бесконечной длины.
А переход сработает всего один раз при входе в процедуру - это вход в цикл.
omercury вне форума  
Непрочитано 25.03.2011, 01:19  
Dr_Watson
Прохожий
 
Регистрация: 06.05.2009
Сообщений: 4
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dr_Watson на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Ответ неверный, внимательнее надо быть.
__________________
To beer or not to beer?
That is a question...
Dr_Watson вне форума  
Непрочитано 25.03.2011, 01:24  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Dr_Watson, Извиняюсь , забыл уточнить , что это ваш исходник...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 02.04.2011, 10:42  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от Dr_Watson Посмотреть сообщение
Знакомый исходник ковыряете )


В ассемблере можно и так:
Код:
; unsigned int _lcd_putstr(unsigned char *s)
	xdef	__lcd_putstr
__lcd_putstr_0:
	call	__lcd_putchar	; выводим символ
	incw	X		; смещаем указатель к следующему
__lcd_putstr:	
	ld	A,(X)		; берем очередной символ строки
 	jrne	_lcd_putstr_0	; не ноль - на вывод
	ret
Не очень красиво, но минус один переход
Океюшки.
По строкам (без меток, ессно):
1. Вход в процедуру, загрузка адреса буфера.
2. Вызов подпрограммы собственно вывода символа.
3. Инкремент адреса буфера.
4. Загрузка в аккумулятор символа для вывода.
5. Проверка на окончание строки, цикл.
6. Выход из процедуры.

Вопросы:
1. Откуда в аккумуляторе взялся первый символ для вывода?
2. Как догадались, что строка ещё не закончилась?
omercury вне форума  
Непрочитано 02.04.2011, 11:13  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение

Вопросы:
1. Откуда в аккумуляторе взялся первый символ для вывода?
2. Как догадались, что строка ещё не закончилась?
Адрес строки - указатель в X . Передаем сами же .
Строка нультерминэйт.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 02.04.2011, 12:07  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Так в том-то и дело, что для первого символа их надо бы задать отдельно, без этого перехода их нету.... Также без него нет проверки первого символа на предмет окончания строки....

Кстати - ВСЕХ С ВОЗВРАЩЕНИЕМ!

ЗЫ.
Dosicus, рейтинг повышаешь - аж целых 3 сообщения одинаковых?
... тормознее всё стало.... и нету "цитаты выделенного" - неудобно. При клике на ник оппонента автоматом не вставляется в ответ. Борьба с вирями?

ЗЗЫ.
Компоненты в Нижнем

...вдруг интересно...
omercury вне форума  
Непрочитано 02.04.2011, 15:33  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
Так в том-то и дело, что для первого символа их надо бы задать отдельно, без этого перехода их нету.... Также без него нет проверки первого символа на предмет окончания строки....
Указатель , он именно и задает первый символ последовательности.
В данном случае указатель типа char на последовательность символов (строка char).
В процессе увеличиваем указатель ( адрес), пока (адрес)указатель не будет содержать 0 .
Код:
	incw	X		; увеличиваем адрес(перебираем строку)
__lcd_putstr:	
	ld	A,(X)		; берем очередной символ строки
 	jrne	_lcd_putstr_0	; пока  не 0  выводим 
	ret
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 02.04.2011 в 15:36.
dosikus вне форума  
Непрочитано 02.04.2011, 18:28  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
нету "цитаты выделенного" - неудобно.
Наоборот, стало удобнее. Выделил то, что надо, нажал на появившуюся кнопочку цитировать. И процитировал.
Someone вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


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


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