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

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

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

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

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

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


 
Опции темы
Непрочитано 25.12.2016, 19:23  
scorpi_0n
Прописка
 
Регистрация: 10.03.2016
Сообщений: 114
Сказал спасибо: 14
Сказали Спасибо 46 раз(а) в 41 сообщении(ях)
scorpi_0n на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Ivan Посмотреть сообщение
Можно, конечно, поисправлять stm8s.h
Не "можно", а нужно! Недостающее просто вписать ручками. Несовместимость с кем-то и чем-то меня вообще в этом случае мало интересует.
1. Так уж есть, разработчик поленился расписать полностью stm8s.h и тут уже ничего не поделать.
2. Работать как-то нужно, и работать не просто, а чтобы было самому всё понятно и удобно.
3. МК простой до не могу. Группового секса над ним не предвидится, не тот уровень. Поэтому и не стоит особо заморачиваться.
4. Лучше писать в стиле I2C-›CR2 |= ACK;, меньше геммора при перескакивании СТМ8‹-›СТМ32.
Реклама:
scorpi_0n вне форума  
Непрочитано 25.12.2016, 19:36  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Ivan Посмотреть сообщение
дошло время до I2C (ох и подзамучился я уже с ним ). При использовании stm8s.h бит ACK и регистр DR "не пишутся"
Я тоже когда-то помучился. И по форумам прошелся, в поисках решения. Но там тоже все хором взывали о помощи, а подсказок не было.
А потом попался мне файлик pdf, Errata. И, судя по написанному там, на I2C в этих процессорах можно было не рассчитывать. С таким количеством ошибок ему не взлететь.
Поэтому я не стал дальше париться, а сделал программный I2C.
Alex9797 вне форума  
Непрочитано 25.12.2016, 20:57  
Ivan
Прохожий
 
Регистрация: 25.12.2016
Сообщений: 2
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Ivan на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от scorpi_0n Посмотреть сообщение
4. Лучше писать в стиле I2C-›CR2 |= ACK;, меньше геммора при перескакивании СТМ8‹-›СТМ32.
Спасибо за совет. Действительно вовремя. Я пока не "трогал" STM32, но чувствую, что вот-вот до них доберусь. Просто сначала решил "потренироваться на кошках" (c) (STM.

Сообщение от Alex9797 Посмотреть сообщение
Я тоже когда-то помучился. И по форумам прошелся, в поисках решения. Но там тоже все хором взывали о помощи, а подсказок не было.
"Как я Вас понимаю" (с)
Пролистал не один километр лент форумов. И везде (почти везде) все что касалось I2C, в конце делался один вывод - забить на аппаратный, писать программный.
Я так-то уже, можно сказать, последовал этим советам, учел опыт других людей и пишу программный. Но как-то не дает он мне покоя (аппаратный), потому что он есть. А это (мои вопросы здесь), уже предсмертные конвульсии попыток заставить работать аппаратный I2C.
Ivan вне форума  
Непрочитано 25.12.2016, 23:17  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Alex9797 Посмотреть сообщение
Поэтому я не стал дальше париться, а сделал программный I2C.
А вот и зря. Нормально там I2C работает. Нафиг ногодрыг?
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Эти 2 пользователя(ей) сказали Спасибо eddy за это сообщение:
Alex9797 (25.12.2016), Ivan (26.12.2016)
Непрочитано 15.02.2017, 21:38  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: FAQ по STM8

Подскажите по таймерам. Мне надо генерить прерывание по переполнению таймера и ещё в середине периода. Прерывание в середине периода можно с помощью capture interrupt сделать, или оно только в режиме захвата работает?
tanq вне форума  
Непрочитано 15.02.2017, 21:46  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: FAQ по STM8

Можно. В референсе же всё есть.
==========
capture и есть захват. Вам нужен компарэ.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
tanq (15.02.2017)
Непрочитано 18.02.2017, 14:06  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: FAQ по STM8

Ещё вопрос вылез. Устройство я запустил. Но: очень странно ведут себя внешние прерывания. Мне надо ловить отрицательный фронт, для измерения RPM вентилятора. При этом вентиляторов несколько, все висят на одном порте (и перывании). Описываю поведение в зависимости от EXTI-›CR1:
0b00: счёт не полный, имею около 1450RPM
0b01: получаю 0 или 30 RPM, только эти 2 варианта
0b10: имею строго 0RPM, хотя вот этот вариант должен работать
0b11: работает правильно, имею около 4500RPM.

Проц STM8S, в обработчике прерывания я считываю состояние пинов, сравниваю с предыдущим и софтово выделяю отрицательный фронт. Поэтому никаких ложных счётов быть не может.

Я понять не могу, почему не работает 0b10, и почему начинает работать 0b11. Зачем нужно выбирать оба фронта, если мне надо только отрицательные?
tanq вне форума  
Непрочитано 18.02.2017, 14:41  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: FAQ по STM8

А вы уверены, что через внешние прерывания это хорошая мысль? Тут самые подходящие варианты - либо по ардуиновски, через таймер и порт (100-500мкС по таймеру вполне хватит), либо тупо через каналы таймеров, если каналов хватит.
А так - похоже что у вас сигнал не меандр, какие-то события тупо пролетают.
STM32F0 вне форума  
Непрочитано 18.02.2017, 15:09  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: FAQ по STM8

У меня используется 20-ногий корпус, все порты с таймером заняты. Я использовал PB4 и PB5, которые по-нормальному на выход работать не могут, и их ни под чего другое использовать не получается. Сигнал - не меандр. Положительный фронт пологий, отрицательный - нормальный. Это не обясняет, почему при прерывании по обеим фронтам всё начинает работать корректно, в то время как по отрицательному фронту - нет.
tanq вне форума  
Непрочитано 18.02.2017, 15:13  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: FAQ по STM8

Возможно, я где-то туплю. Вот код самой функции. Он вызывается из прерывания EXTI.
Код:
void rpm_poll(void)
{
	unsigned short time;
	unsigned char new_pin_state, pin_changed;

	time = TIM1-›CNTRH‹‹8 | TIM1-›CNTRL; 	//get timestamp

	new_pin_state = (GPIOA-›IDR & 0b1000) | (GPIOB-›IDR & 0b110000);
	pin_changed = ~new_pin_state & rpm_pin_state; //find 1-to-0 transitions
	rpm_pin_state = new_pin_state; //save current value
	if (pin_changed & 0b1000)
	{
		water_pulse_count++;
		water_pulse_timestamp = time;
	}
	if (pin_changed & 0b10000)
	{
		fan2_pulse_count++;
		fan2_pulse_timestamp = time;
	}
	if (pin_changed & 0b100000)
	{
		fan1_pulse_count++;
		fan1_pulse_timestamp = time;
	}
}
tanq вне форума  
 

Закладки

Метки
arm, cortex, stm32, stm8
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


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


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