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

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

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

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

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

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


 
Опции темы

STM8(S/L), первые впечатления

Непрочитано 21.12.2010, 23:46  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
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.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
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,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
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,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Вот, посмотрите
https://kazus.run/forums/showpost.ph...&postcount=857
st_1 вне форума  
Непрочитано 22.12.2010, 14:59  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
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, время: 18:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.