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

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

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

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

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

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


 
Опции темы
Непрочитано 18.02.2017, 18:00  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от tanq Посмотреть сообщение
Это не обясняет, почему при прерывании по обеим фронтам всё начинает работать корректно, в то время как по отрицательному фронту - нет.
Глядя на вашу реализацию и код вообще трудно что-то объяснить.

1. PB4 и PB5 - In the open-drain output column, "T" defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDD are not implemented). Значит рискуете вообще убить оба входа.
2. Какие ещё функции в прерывании? Вам время девать некуда?
3. unsigned short time; - а почему не переопределения типа uint16_t?
4. time = TIM1-›CNTRH‹‹8 | TIM1-›CNTRL; - вы упорно продолжаете не верить в чудеса оптимизации? Почему не на две строки? Вы уверены, что TIM1-›CNTRH‹‹8 будет верным в плане оптимальности?
5. Никто вам ничего не подскажет, нет целостности картины. Возьмите логанализатор, заведите пару тестовых пинов и дрыгайте ими в прерывании. Тогда сравнивая входные сигналы с тестовым ногодрыгом в прерывании вы увидите что к чему, т.е. полную картину происходящего.
Реклама:
STM32F0 вне форума  
Непрочитано 18.02.2017, 18:34  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от STM32F0 Посмотреть сообщение
1. PB4 и PB5 - In the open-drain output column, "T" defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDD are not implemented). Значит рискуете вообще убить оба входа.
В схеме стабилитроны на 4.7В стоят. На случай замыкания этих линий на 12В питания вентилятора. В питании вентиляторов PTC. Подтягивающие резисторы 10К.

Сообщение от STM32F0 Посмотреть сообщение
2. Какие ещё функции в прерывании? Вам время девать некуда?
В этом прерывании - никакие. Вычисление RPM из временных меток делается в прерывании таймера TIM1, имеющего тот же приоритет. В этом устройстве время экономить нет смысла - это контроллер кулера. Там единственное критическое место - приём команд через uart. Дал ему наивысший приоритет.

Сообщение от STM32F0 Посмотреть сообщение
3. unsigned short time; - а почему не переопределения типа uint16_t?
А зачем? Мне так удобнее. Компилятор после препроцессора всё равно получит на вход unsigned short.

Сообщение от STM32F0 Посмотреть сообщение
4. time = TIM1-›CNTRH‹‹8 | TIM1-›CNTRL; - вы упорно продолжаете не верить в чудеса оптимизации? Почему не на две строки? Вы уверены, что TIM1-›CNTRH‹‹8 будет верным в плане оптимальности?
Про сдвиг на 8 бит - уверен. Листинг смотрел.

Сообщение от STM32F0 Посмотреть сообщение
5. Никто вам ничего не подскажет, нет целостности картины. Возьмите логанализатор, заведите пару тестовых пинов и дрыгайте ими в прерывании.
Пожалуй, так и сделаю. На плате много разъемов. У меня подозрение, что используемый чип слишком ранней ревизии - и в этом проблема.
tanq вне форума  
Непрочитано 05.04.2017, 12:59  
true71
Почётный гражданин KAZUS.RU
 
Аватар для true71
 
Регистрация: 23.09.2008
Адрес: Козьмодемьянск. Это на Волге.
Сообщений: 2,384
Сказал спасибо: 5,529
Сказали Спасибо 1,044 раз(а) в 601 сообщении(ях)
true71 на пути к лучшему
По умолчанию Re: FAQ по STM8

Люди!!!
Подскажите, плз, какая среда программирования сейчас наиболее адекватная?
Скорый пробег по гуглу результатов не дал, скорее дал, но слишком размыто.
Не хочется засорять компьютер, перебирая разные среды и компиляторы.

ЗЫ: Когда изучал программирование под АНДРОИД наустанавливал столько всего, что в итоге пришлось переустанавливать систему. Не хочется этого.
true71 вне форума  
Непрочитано 05.04.2017, 14:54  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: FAQ по STM8

ИАР или Космик. Я предпочитаю ИАР.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
true71 (05.04.2017)
Непрочитано 05.04.2017, 15:35  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от STM32F0 Посмотреть сообщение
Я предпочитаю ИАР.
+100
Правда редактор у него ну очень спартанский, но есть возможность прикрутить внешний. Я geany пользую.
__________________
Не ошибается лишь тот, кто ни чего не делает!
woroba вне форума  
Сказали "Спасибо" woroba
true71 (05.04.2017)
Непрочитано 05.04.2017, 15:54  
true71
Почётный гражданин KAZUS.RU
 
Аватар для true71
 
Регистрация: 23.09.2008
Адрес: Козьмодемьянск. Это на Волге.
Сообщений: 2,384
Сказал спасибо: 5,529
Сказали Спасибо 1,044 раз(а) в 601 сообщении(ях)
true71 на пути к лучшему
По умолчанию Re: FAQ по STM8

А версия которая ?
Обычно последние версии грешат глюками.
true71 вне форума  
Непрочитано 05.04.2017, 16:46  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: FAQ по STM8

В последней вроде глюков не добавили. Старые глюки пофиксили, в основном.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
true71 (06.04.2017)
Непрочитано 11.04.2017, 09:34  
Full_zero
Прохожий
 
Регистрация: 11.04.2017
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Full_zero на пути к лучшему
По умолчанию Re: FAQ по STM8

Дррратуте всем. Люди добрые помогите, уже все волосы вырвал на голове. Перерыл все что можно. Мне необходимо реализовать счетчик внешних импульсов с помощью TIM1. Суть задачи: по импульсам от внешнего устройства прибавлять счет таймера на один, при достижении регистра сравнения генерировать прерывание. Счет не останавливать, счетчик обнулять автоматически. Например: считаем до 300, когда досчитали до 300 генерируем прерывание, обнуляем счетчик и считаем дальше. Камень STM8Sxx3. Cosmic. И если можно с помощью SPL. Спасибо.

Последний раз редактировалось Full_zero; 12.04.2017 в 08:05.
Full_zero вне форума  
Непрочитано 07.05.2017, 19:21  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: FAQ по STM8

Подскажите, как правильно использовать буферизацию в АЦП с одновременной сменой каналов. Проц STM8S003. Мне надо оцифровать 1 канал 10 раз и усреднить, оцифровать 2 канал 10 раз и тоже усреднить. Очевидный метод решения задачи не работает: если в обработчике прерывания тупо менять номер канала, то АЦП впадает в ступор. Если предварительно сбросить бит CONT, то он тоже впадает в ступор, потому что DBUF может использоваться только с флагом CONT. Если же сбрасывать DBUF перед сбросом CONT, а потом всё включать назад, то оцифровка идёт верно, но не совсем - в каких-то из 10 регистров оказываются не те значения. Как с этим бороться?
tanq вне форума  
Непрочитано 01.09.2017, 04:08  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: FAQ по STM8

Непонятку словил в IAR EW.

Есть структура,
Код:
struct key_unit
{
  uint32_t u32_number;
  uint16_t u16_counter;
  uint8_t  u8_buttons;          
  uint8_t  u8_state;            
};//8 байт
являющаяся членом другой структуры

Код:
struct eeprom_unit
{
  struct key_unit       st_keys[10];               
  struct phone_unit     st_phones[5];            
  uint8_t               lock_state[2];              
  uint16_t              u16_autoclose_time;     
  uint8_t               u8_alarm_time;             
  uint8_t               u8_open_button_mode;  
  
  uint8_t               CRC;                        
} //237 bytes (up to 299)
структура изначально объявлена в EEPROM, но для проверки перенес в RAM

struct eeprom_unit ST_EEPROM;

Есть переменная
uint8_t u8_last_command

Работаем с 8-битным членом структуры key_unit - u8_buttons

значение u8_last_command: 0x60
значение ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons: 0x24
эти значения вижу и в отладчике, но...

Код:
 
       if (u8_last_command == ((ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons ‹‹ 4 ) + (ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons & 0xF0)))
        {
            //do something...
        }
Результат проверки условия в if - "ложь", "do something" не выполняется.

А вот так выполняется:

Код:
        if (u8_last_command == (uint8_t)((ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons ‹‹ 4 ) + (ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons & 0xF0)))
        {
            //do something...
        }
и вот так тоже

Код:
        if (u8_last_command == ((uint8_t)(ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons ‹‹ 4 ) + (ST_EEPROM.st_keys[u8_serv_tmp].u8_buttons & 0xF0)))
        {
            //do something...
        }
Все члены выражения - 8-битные, операций, которые могут привести к их автоматическому расширению до 16 бит, нет, но на деле результат выражения 16-битный, и как минимум в одном месте 8-битный член структуры фактически расширяется до 16-битного, и 4 старших бита, которые, как я рассчитывал, при сдвиге влево будут выброшены, на деле никуда не деваются,

Глюк или нормальное поведение?

Когда структуры не было, и всё хранилось отдельными массивами, всё работало без приведения.

Последний раз редактировалось AR_Favorit; 01.09.2017 в 04:10.
AR_Favorit вне форума  
 

Закладки

Метки
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, время: 16:29.


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