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

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

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

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

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

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


 
Опции темы
Непрочитано 10.02.2011, 20:51  
luxin
Частый гость
 
Регистрация: 29.04.2007
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 1 сообщении
luxin на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Завтра чего нибудь выложу. Библиотеку управления тактом точно.
Я пропустил или не выкладывалось?
Реклама:
luxin вне форума  
Непрочитано 10.02.2011, 23:22  
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Еще глюк - иногда компилер самовольно переставляет команды asm-a (оптимизирует под конвейер ?). Заметил по поведению в дебаггере - курсор проскакивал одну строку. Смотрю в листинг - нужная команда почему-то оказалась после следующей. Поменял местами соседние команды - все ок. Вот такие чудеса. Видимо для серъезных задач пока не годится (напоминает ситуацию с первыми версиями AVR-GCC).

Последний раз редактировалось qwerky; 10.02.2011 в 23:26.
qwerky вне форума  
Непрочитано 22.02.2011, 19:05  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Доброго всем вечера.

Возник тупой вопрос или я раньше не замечал или правда глюк какой-то.
Когда включаешь livewatch у вас показывает например переменную, которую обозначил глобально?
Например, int i=0xFF;
У меня на stm8l пишет что она всегда нулю, а на stm8s вообще пишет ошибку
mac0dee вне форума  
Непрочитано 22.02.2011, 22:56  
luxin
Частый гость
 
Регистрация: 29.04.2007
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 1 сообщении
luxin на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от mac0dee Посмотреть сообщение
Доброго всем вечера.

Возник тупой вопрос или я раньше не замечал или правда глюк какой-то.
Когда включаешь livewatch у вас показывает например переменную, которую обозначил глобально?
Например, int i=0xFF;
У меня на stm8l пишет что она всегда нулю, а на stm8s вообще пишет ошибку
В какой среде работаете?
luxin вне форума  
Непрочитано 23.02.2011, 11:25  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

sreda razrabotki IAR
mac0dee вне форума  
Непрочитано 23.02.2011, 13:00  
mac0dee
Частый гость
 
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
mac0dee на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

разобрался в чём дело, хотя для меня это всё-равно дико.
Раньше в цикле while, который идёт в main стояла такая строчка:
flag=EXTI_GetITStatus(EXTI_IT_Pin7);
когда из программы начал выкидывать ненужные строки выкинул и её.
В следствии был такой глюк.
Так осталось и непонятно. Глюк IAR, livewatch или глюк меня?
mac0dee вне форума  
Непрочитано 23.02.2011, 13:12  
vertexodessa
Прохожий
 
Регистрация: 02.05.2010
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vertexodessa на пути к лучшему
По умолчанию _delay_ms() _delay_us()

Кому нужно - ф-ции задержек для космика и резонанса без таймеров.
Работают при включенной оптимизации по размеру на частоте 16 МГц. Частоту можно поменять define'ом.


Видно, что Raisonance генерит код побольше и помедленней Cosmic.

Код:
#include "delay.h"
#include "stm8s.h"

#define F_CPU 16000000
#define F_CPU_MHZ 16

void _delay_ms(unsigned int ms){
		while(ms){
			
			_delay_us(1000);
			
			--ms;
		}
}

void _delay_us(unsigned int us){
	static u16 i;
		

	
#ifdef _COSMIC_
	
	i = (us-1)* F_CPU_MHZ / 7; //7 циклов выполняется while(--i), 2 цикла выполняется вычитание и деление

#else
	i = (us-2)* F_CPU_MHZ / 9; //9 циклов выполняется while(--i), 1 цикл выполняется вычитание и деление
#endif

	while(--i){
#ifdef _COSMIC_
		#asm 
			nop
		#endasm
#endif
		
	}
		
}

Хотя, есть ситуации, где Raisonance генерит код лучше.
Например,
Код:
#define GPIO_WriteReverse(x,y) (x)-›ODR ^= (y)
в Cosmic компилируется в
Код:
LD    A,0x500f 
XOR   A,#0x01 
LD    0x500f,A
в Raisonance компилируется в одну инструкцию - bcpl.



P.S. Кстати, помогите вделать define для Cosmic, чтобы WriteReverse компилировался в BCPL.

Я так предполагаю, что это будет что-то вроде
Код:
#define GPIO_WriteReverse(x,y) _asm("BCPL x-›ODR, y \n");
Соответственно помогите - как передать параметры в эту конструкцию, и она компилировалась в одну инструкцию? Или как по-другому заставить Cosmic вставлять BCPL?

Последний раз редактировалось vertexodessa; 23.02.2011 в 18:54.
vertexodessa вне форума  
Непрочитано 23.02.2011, 13:23  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Да уж лучше тогда всю функцию на асме переписать, чтоб не зависеть от настроек компилятора.
akimych вне форума  
Сказали "Спасибо" akimych
vertexodessa (23.02.2011)
Непрочитано 23.02.2011, 13:26  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от vertexodessa Посмотреть сообщение
Кому нужно - ф-ции задержек для космика и резонанса без таймеров.
Подставьте 1us и удивитесь. Кроме того это будет зависеть от оптимизации и на разных уровнях можно получить разный результат.
Выше qwerky удивлялся зачем я в дефайне наворотил довольно сложную конструкцию вычисляющую количество проходов по циклу. А это сделано для того, чтоб не получить максимальную задержку если нужна чуть меньше минимальной.
kison вне форума  
Непрочитано 23.02.2011, 13:29  
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

в чем кайф писать GPIO_WriteReverse(x,y) вместо Px_ODR ^= y ?
Цитата:
чтоб не получить максимальную задержку если нужна чуть меньше минимальной.
суб-микросекундную задержку наверно лучше сделать nop-ами чтобы не морочить голову с циклами/конвейером.

Последний раз редактировалось qwerky; 23.02.2011 в 13:40.
qwerky вне форума  
 

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

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

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


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