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

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

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

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

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

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


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

Счас потестим.
Не знал , что это считывание регистра в аккумулятор....

-

Подтверждаю процесс пошел . И без нопов.
kison, большое спасибо !!!

Код:
void ls020_wrcmd8(unsigned char cmd)
{
  RS=1; //Set RS
  CS=0; // select LCD
	SPI_DR;
  SPI_DR=cmd;
	while(!RXNe);
  CS=1; // deselect LCD
}
Хоть и смысла нет(хотя код меньше) , но и это то же так же работает :
Код:
void ls020_wrcmd8(unsigned char cmd)
{
  RS=1; //Set RS
  CS=0; // select LCD
	SPI_DR;
  SPI_DR=cmd;
	//while(!RXNe);
	#asm
1$:   BTJF _SPI_SR,#0,1$
	#endasm
  CS=1; // deselect LCD
}
Миниатюры:
Нажмите на изображение для увеличения
Название: SPI_DR_RXNe.png
Просмотров: 67
Размер:	39.7 Кб
ID:	16034  
Реклама:
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 22.12.2010 в 00:12.
dosikus вне форума  
Непрочитано 22.12.2010, 00:22  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Тогда уже лучше
Код:
void ls020_wrcmd8(unsigned char cmd)
{
  RS=1; //Set RS
  CS=0; // select LCD

  SPI_DR=cmd;

  while(!SPI_SR_bit.RXNE); 
  a=SPI_DR;

  CS=1; // deselect LCD
}
что-то вытолкнули, что-то прочитали, проверил, работает.
st_1 вне форума  
Сказали "Спасибо" st_1
dosikus (22.12.2010)
Непрочитано 22.12.2010, 14:16  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Доброго всем дня!

Сегодня начал разбираться в ассемблерном коде, после компиляции. Сразу возник вопрос по поводу записи "1" и "0" на выводе любого пина.
На СИ:
GPIO_SetBits(GPIOD, GPIO_Pin_1);
GPIOD-›ODR |= GPIO_Pin_1;
На ассемблере приведено на картинке.
Это же что получается, что выставить на пин "1" или "0" занимает чуть ли не 10 тактов?
Или можно же всё-таки написать ассемблерную вставку, чтобы выставить на пин "1" или "0" за один такт?
Миниатюры:
Нажмите на изображение для увеличения
Название: gpio.JPG
Просмотров: 69
Размер:	14.8 Кб
ID:	16052  
mac0dee вне форума  
Непрочитано 22.12.2010, 14:23  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от mac0dee Посмотреть сообщение
Доброго всем дня!
Сегодня начал разбираться в ассемблерном коде, после компиляции. Сразу возник вопрос по поводу записи "1" и "0" на выводе любого пина.
На СИ:
GPIO_SetBits(GPIOD, GPIO_Pin_1);
GPIOD-›ODR |= GPIO_Pin_1;
На ассемблере приведено на картинке.
Это же что получается, что выставить на пин "1" или "0" занимает чуть ли не 10 тактов?
Или можно же всё-таки написать ассемблерную вставку, чтобы выставить на пин "1" или "0" за один такт?
Вы бы компилятор используемый рассекретили. И уровень оптимизации. Первый Ваш вариант использует библиотеку, которой пользоваться НЕ ЖЕЛАТЕЛЬНО. Почитайте ветку сначала, там есть примеры смешных листингов при использовании библиотеки. Второй вариант с прямой записью в регистр ODR почему то у Вас криво скомпилился. Это зависит от компилятора и установленной оптимизации.
kison вне форума  
Непрочитано 22.12.2010, 14:33  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Ну а на ассемблере не меньше тактов уйдёт на вывод "0" или "1" ???
Можешь пример написать?
mac0dee вне форума  
Непрочитано 22.12.2010, 14:46  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

При правильном написании не меньше. Да вы ветку то сначала прочитайте.
st_1 вне форума  
Непрочитано 22.12.2010, 14:51  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Ну вот ты писал на первой странице вот такую запись:
bcpl 20495,#0
типа инвертируешь бит. Это то уже одна команда.
Значит и выставить 1 или 0 можно тоже одной командой?
mac0dee вне форума  
Непрочитано 22.12.2010, 14:58  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Вот, посмотрите
https://kazus.ru/forums/showpost.php...&postcount=857
st_1 вне форума  
Непрочитано 22.12.2010, 14:59  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от mac0dee Посмотреть сообщение
Ну вот ты писал на первой странице вот такую запись:
bcpl 20495,#0
типа инвертируешь бит. Это то уже одна команда.
Значит и выставить 1 или 0 можно тоже одной командой?
Можно. Команда bset - установка бита, bres - сброс бита, bcpl - инверсия бита. Именно это и дает нормальный компилятор с включенной оптимизацией.

Последний раз редактировалось Falconist; 14.04.2011 в 00:01.
kison вне форума  
Непрочитано 22.12.2010, 17:02  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Поставил новый ИАР
сразу всё поменялось
BSET, BRES
mac0dee вне форума  
 

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

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

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, время: 05:41.


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